X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgwalk.c;h=22feaeba36d904d1f4ac55ec91e1b060680fbeb3;hb=357886575cb0becb5bd9be376fde49b57edd5385;hp=df0af385d2a75bb7b58ea528cb61d157cfd17445;hpb=1e61d6d6eb14c93df7bd5449e33ccfd40ef92b8a;p=libfirm diff --git a/ir/ir/irgwalk.c b/ir/ir/irgwalk.c index df0af385d..22feaeba3 100644 --- a/ir/ir/irgwalk.c +++ b/ir/ir/irgwalk.c @@ -393,12 +393,7 @@ void irg_block_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, int i; for (i = 0; i < arity; i++) { ir_node *pred = get_irn_n(node, i); - if (!is_Block(pred)) { - pred = get_nodes_block(pred); - } - /* this walker is also used during optimize_graph_df where we can - * temporarily have Bad as block inputs */ - if (is_Bad(pred)) + if (!is_Block(pred)) continue; irg_block_walk_2(pred, pre, post, env); } @@ -427,8 +422,10 @@ void irg_walk_anchors(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, vo ir_graph * rem = current_ir_graph; current_ir_graph = irg; + ir_reserve_resources(irg, IR_RESOURCE_IRN_VISITED); inc_irg_visited(irg); irg_walk_2(irg->anchor, pre, post, env); + ir_free_resources(irg, IR_RESOURCE_IRN_VISITED); current_ir_graph = rem; }