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.
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));
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);