X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeflags.c;h=97905da5d10c3e1bc3c8af3888dd173b5013d825;hb=8d07d17eb2ade0b6b4aef0ebd68d6af3cc368b06;hp=6537ac79d7b194d948bcb84fa28f4ba76f4a5baa;hpb=5fb7bd3345a1e099ca4a85e3f80796eb3cf65d50;p=libfirm diff --git a/ir/be/beflags.c b/ir/be/beflags.c index 6537ac79d..97905da5d 100644 --- a/ir/be/beflags.c +++ b/ir/be/beflags.c @@ -176,7 +176,7 @@ static void rematerialize_or_move(ir_node *flags_needed, ir_node *node, get_nodes_block(node) != get_nodes_block(flags_needed)) { int i; - for (i = get_irn_arity(copy); i >= 0; --i) { + for (i = get_irn_arity(copy) - 1; i >= 0; --i) { be_liveness_update(lv, get_irn_n(copy, i)); } } @@ -301,9 +301,9 @@ void be_sched_fix_flags(be_irg_t *birg, const arch_register_class_t *flag_cls, if(remat == NULL) remat = &default_remat; - set_using_irn_link(irg); + ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK); irg_block_walk_graph(irg, fix_flags_walker, NULL, birg->lv); - clear_using_irn_link(irg); + ir_free_resources(irg, IR_RESOURCE_IRN_LINK); if(changed) { be_remove_dead_nodes_from_schedule(birg);