X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Flower%2Flower_copyb.c;h=c76d258484f82e2fa3cf62327b4b707b9f6fa53a;hb=158e3e9a7f3972c6e6a993591e87f42112b6b5e5;hp=b8591cae574ace18dd8407f74684ab8811f721d8;hpb=1a3b7d363474ab544c13093a2f0b578718d37c7a;p=libfirm diff --git a/ir/lower/lower_copyb.c b/ir/lower/lower_copyb.c index b8591cae5..c76d25848 100644 --- a/ir/lower/lower_copyb.c +++ b/ir/lower/lower_copyb.c @@ -66,7 +66,7 @@ static ir_mode *get_ir_mode(unsigned bytes) */ static void lower_copyb_nodes(ir_node *irn, unsigned mode_bytes) { - ir_graph *irg = current_ir_graph; + ir_graph *irg = get_irn_irg(irn); unsigned size; unsigned offset; ir_mode *mode; @@ -167,10 +167,8 @@ static void find_copyb_nodes(ir_node *irn, void *ctx) void lower_CopyB(ir_graph *irg, unsigned max_size, unsigned native_mode_bytes) { walk_env_t env; - entry_t *entry; - ir_graph *rem = current_ir_graph; - - current_ir_graph = irg; + entry_t *entry; + bool changed = false; obstack_init(&env.obst); env.max_size = max_size; @@ -179,8 +177,12 @@ void lower_CopyB(ir_graph *irg, unsigned max_size, unsigned native_mode_bytes) list_for_each_entry(entry_t, entry, &env.list, list) { lower_copyb_nodes(entry->copyb, native_mode_bytes); + changed = true; + } + + if (changed) { + set_irg_outs_inconsistent(irg); } obstack_free(&env.obst, NULL); - current_ir_graph = rem; }