X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgwalk.c;h=e393fa38e8d0f1421c9ffa75ddb79ac3ce89a3db;hb=8eea5eff43cbc4cc012f87645e738566e8a7d48f;hp=35abd5b48fc4facd1b4d354219141dc038db3ccd;hpb=559372dcf2e6712ce1b8a26d64c308f15b7491de;p=libfirm diff --git a/ir/ir/irgwalk.c b/ir/ir/irgwalk.c index 35abd5b48..e393fa38e 100644 --- a/ir/ir/irgwalk.c +++ b/ir/ir/irgwalk.c @@ -3,10 +3,10 @@ * File name: ir/ir/irgwalk.c * Purpose: * Author: Boris Boesler - * Modified by: Goetz Lindenmaier + * Modified by: Goetz Lindenmaier, Michael Beck * Created: * CVS-ID: $Id$ - * Copyright: (c) 1999-2003 Universität Karlsruhe + * Copyright: (c) 1999-20036Universität Karlsruhe * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. */ @@ -138,19 +138,20 @@ static unsigned irg_walk_2_pre(ir_node *node, irg_walk_func *pre, void * env) { int i; unsigned cnt = 1; + ir_graph *irg = current_ir_graph; - set_irn_visited(node, current_ir_graph->visited); + set_irn_visited(node, irg->visited); pre(node, env); if (node->op != op_Block) { ir_node *pred = get_irn_n(node, -1); - if (pred->visited < current_ir_graph->visited) + if (pred->visited < irg->visited) cnt += irg_walk_2_pre(pred, pre, env); } for (i = get_irn_arity(node) - 1; i >= 0; --i) { ir_node *pred = get_irn_n(node, i); - if (pred->visited < current_ir_graph->visited) + if (pred->visited < irg->visited) cnt += irg_walk_2_pre(pred, pre, env); } return cnt; @@ -165,17 +166,18 @@ static unsigned irg_walk_2_post(ir_node *node, irg_walk_func *post, void * env) { int i; unsigned cnt = 1; + ir_graph *irg = current_ir_graph; - set_irn_visited(node, current_ir_graph->visited); + set_irn_visited(node, irg->visited); if (node->op != op_Block) { ir_node *pred = get_irn_n(node, -1); - if (pred->visited < current_ir_graph->visited) + if (pred->visited < irg->visited) cnt += irg_walk_2_post(pred, post, env); } for (i = get_irn_arity(node) - 1; i >= 0; --i) { ir_node *pred = get_irn_n(node, i); - if (pred->visited < current_ir_graph->visited) + if (pred->visited < irg->visited) cnt += irg_walk_2_post(pred, post, env); } @@ -193,19 +195,20 @@ static unsigned irg_walk_2_both(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void * env) { int i; unsigned cnt = 1; + ir_graph *irg = current_ir_graph; - set_irn_visited(node, current_ir_graph->visited); + set_irn_visited(node, irg->visited); pre(node, env); if (node->op != op_Block) { ir_node *pred = get_irn_n(node, -1); - if (pred->visited < current_ir_graph->visited) + if (pred->visited < irg->visited) cnt += irg_walk_2_both(pred, pre, post, env); } for (i = get_irn_arity(node) - 1; i >= 0; --i) { ir_node *pred = get_irn_n(node, i); - if (pred->visited < current_ir_graph->visited) + if (pred->visited < irg->visited) cnt += irg_walk_2_both(pred, pre, post, env); }