X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgwalk.c;h=a972a02a857fe46edfbb845152a149247404309a;hb=e5e3c31f1b9be90e1a7d4214b9d6656d9b75fe97;hp=af8f22345aed988f2519e96b33c657bdebf2f923;hpb=b519dd6a1e6d85e843eff533be787d1f138a07ff;p=libfirm diff --git a/ir/ir/irgwalk.c b/ir/ir/irgwalk.c index af8f22345..a972a02a8 100644 --- a/ir/ir/irgwalk.c +++ b/ir/ir/irgwalk.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -153,7 +153,7 @@ irg_walk_2_pre(ir_node *node, irg_walk_func *pre, void * env) { pre(node, env); if (node->op != op_Block) { - ir_node *pred = get_nodes_block(node); + ir_node *pred = get_irn_n(node, -1); if (pred->visited < irg->visited) cnt += irg_walk_2_pre(pred, pre, env); } @@ -179,7 +179,7 @@ irg_walk_2_post(ir_node *node, irg_walk_func *post, void * env) { set_irn_visited(node, irg->visited); if (node->op != op_Block) { - ir_node *pred = get_nodes_block(node); + ir_node *pred = get_irn_n(node, -1); if (pred->visited < irg->visited) cnt += irg_walk_2_post(pred, post, env); } @@ -210,7 +210,7 @@ irg_walk_2_both(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void * e pre(node, env); if (node->op != op_Block) { - ir_node *pred = get_nodes_block(node); + ir_node *pred = get_irn_n(node, -1); if (pred->visited < irg->visited) cnt += irg_walk_2_both(pred, pre, post, env); } @@ -251,6 +251,7 @@ void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env) { assert(is_ir_node(node)); +#ifdef INTERPROCEDURAL_VIEW if (get_interprocedural_view()) { pset_new_t irg_set; pset_new_iterator_t iter; @@ -271,11 +272,14 @@ void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env) irg_walk_cg(node, visited, &irg_set, pre, post, env); pset_new_destroy(&irg_set); } else { +#endif set_using_visited(current_ir_graph); inc_irg_visited(current_ir_graph); nodes_touched = irg_walk_2(node, pre, post, env); clear_using_visited(current_ir_graph); +#ifdef INTERPROCEDURAL_VIEW } +#endif return; } @@ -323,7 +327,7 @@ irg_walk_in_or_dep_2_pre(ir_node *node, irg_walk_func *pre, void *env) { pre(node, env); if (node->op != op_Block) { - ir_node *pred = get_nodes_block(node); + ir_node *pred = get_irn_n(node, -1); if (pred->visited < irg->visited) cnt += irg_walk_in_or_dep_2_pre(pred, pre, env); } @@ -349,7 +353,7 @@ irg_walk_in_or_dep_2_post(ir_node *node, irg_walk_func *post, void *env) { set_irn_visited(node, irg->visited); if (node->op != op_Block) { - ir_node *pred = get_nodes_block(node); + ir_node *pred = get_irn_n(node, -1); if (pred->visited < irg->visited) cnt += irg_walk_in_or_dep_2_post(pred, post, env); } @@ -380,7 +384,7 @@ irg_walk_in_or_dep_2_both(ir_node *node, irg_walk_func *pre, irg_walk_func *post pre(node, env); if (node->op != op_Block) { - ir_node *pred = get_nodes_block(node); + ir_node *pred = get_irn_n(node, -1); if (pred->visited < irg->visited) cnt += irg_walk_in_or_dep_2_both(pred, pre, post, env); } @@ -493,7 +497,7 @@ cg_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void * env) return; } - +#ifdef INTERPROCEDURAL_VIEW /* Walks all irgs in interprocedural view. Visits each node only once. */ void cg_walk(irg_walk_func *pre, irg_walk_func *post, void *env) { int i; @@ -552,6 +556,7 @@ void cg_walk(irg_walk_func *pre, irg_walk_func *post, void *env) { set_interprocedural_view(rem_view); current_ir_graph = rem; } +#endif /***************************************************************************/