Commit fa3fbb2f authored by Matthias Braun's avatar Matthias Braun
Browse files

fix last fix (+ optimisation: don't do anything if copy and orig are the same)

[r22552]
parent 7f0c0545
......@@ -85,12 +85,6 @@ static ir_node *search_def_and_create_phis(ir_node *block, ir_mode *mode,
if(is_Bad(block))
return new_Bad();
/* already processed this block? */
if(irn_visited(block)) {
ir_node *value = (ir_node*) get_irn_link(block);
return value;
}
/* the other defs can't be marked for cases where a user of the original
* value is in the same block as the alternative definition.
* In this case we mustn't use the alternative definition.
......@@ -100,6 +94,12 @@ static ir_node *search_def_and_create_phis(ir_node *block, ir_mode *mode,
return ssa_second_def;
}
/* already processed this block? */
if(irn_visited(block)) {
ir_node *value = (ir_node*) get_irn_link(block);
return value;
}
irg = get_irn_irg(block);
assert(block != get_irg_start_block(irg));
......@@ -147,6 +147,10 @@ static void construct_ssa(ir_node *orig_block, ir_node *orig_val,
const ir_edge_t *edge;
const ir_edge_t *next;
/* no need to do anything */
if (orig_val == second_val)
return;
irg = get_irn_irg(orig_val);
inc_irg_visited(irg);
......
Markdown is supported
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