irg_walk_cg(node, visited, irg_set, pre, post, env);
eset_destroy(irg_set);
} else {
+ assert(! inside_irg_walk(current_ir_graph)); /* we must not already be inside an irg walk */
+ set_inside_irg_walk(current_ir_graph);
inc_irg_visited(current_ir_graph);
nodes_touched = irg_walk_2(node, pre, post, env);
+ clear_inside_irg_walk(current_ir_graph);
}
return;
}
if (get_interprocedural_view()) {
assert(0 && "This is not yet implemented.");
} else {
+ assert(! inside_irg_walk(current_ir_graph)); /* we must not already be inside an irg walk */
+ set_inside_irg_walk(current_ir_graph);
inc_irg_visited(current_ir_graph);
nodes_touched = irg_walk_in_or_dep_2(node, pre, post, env);
+ clear_inside_irg_walk(current_ir_graph);
}
return;
}
assert(node);
assert(!get_interprocedural_view()); /* interprocedural_view not implemented, because it
* interleaves with irg_walk */
+ assert(! inside_irg_walk(current_ir_graph)); /* we must not already be in a block walk */
inc_irg_block_visited(current_ir_graph);
- if (is_no_Block(node)) block = get_nodes_block(node); else block = node;
+ set_inside_block_walk(current_ir_graph);
+ block = is_Block(node) ? node : get_nodes_block(node);
assert(get_irn_op(block) == op_Block);
irg_block_walk_2(block, pre, post, env);
}
}
+ clear_inside_block_walk(current_ir_graph);
return;
}
int old_view = get_interprocedural_view();
block_entry_t *entry;
+ assert(! inside_irg_walk(irg)); /* we must not already be inside an irg walk */
+ set_inside_irg_walk(irg);
+
/* switch off interprocedural view */
set_interprocedural_view(0);
obstack_free(&blks.obst, NULL);
set_interprocedural_view(old_view);
+ clear_inside_irg_walk(irg);
}
void irg_walk_blkwise_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env)