Commit b0521aab authored by Christoph Mallon's avatar Christoph Mallon
Browse files

Handle if-conversion within endless loops properly by stopping the recursion...

Handle if-conversion within endless loops properly by stopping the recursion when reaching the block with the conditional jump.
parent 2436bdde
...@@ -261,7 +261,7 @@ static void prepare_path(ir_node* block, int i, const ir_node* dependency) ...@@ -261,7 +261,7 @@ static void prepare_path(ir_node* block, int i, const ir_node* dependency)
for (j = 0; j < pred_arity; ++j) { for (j = 0; j < pred_arity; ++j) {
ir_node* pred_pred = get_nodes_block(get_irn_n(pred, j)); ir_node* pred_pred = get_nodes_block(get_irn_n(pred, j));
if (is_cdep_on(pred_pred, dependency)) { if (pred_pred != dependency && is_cdep_on(pred_pred, dependency)) {
prepare_path(pred, j, dependency); prepare_path(pred, j, dependency);
split_block(block, i, j); split_block(block, i, j);
break; break;
...@@ -294,8 +294,6 @@ restart: ...@@ -294,8 +294,6 @@ restart:
ir_node* cond; ir_node* cond;
int j; int j;
if (dependency == block) continue;
if (projx0 == NULL) continue; if (projx0 == NULL) continue;
cond = get_Proj_pred(projx0); cond = get_Proj_pred(projx0);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment