void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post,
void *env)
{
- ir_reserve_resources(current_ir_graph, IR_RESOURCE_IRN_VISITED);
- inc_irg_visited(current_ir_graph);
- assert(current_ir_graph == get_irn_irg(node));
+ ir_graph *irg = get_irn_irg(node);
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ ir_reserve_resources(irg, IR_RESOURCE_IRN_VISITED);
+ inc_irg_visited(irg);
irg_walk_core(node, pre, post, env);
- ir_free_resources(current_ir_graph, IR_RESOURCE_IRN_VISITED);
+ ir_free_resources(irg, IR_RESOURCE_IRN_VISITED);
+ current_ir_graph = rem;
}
/*
my_env.env = env;
/* Walk all types that can contain constant entities. */
- for (s = IR_SEGMENT_FIRST; s <= IR_SEGMENT_LAST; s++)
+ for (s = IR_SEGMENT_FIRST; s <= IR_SEGMENT_LAST; ++s)
walk_types_entities(get_segment_type(s), &walk_entity, &my_env);
n_types = get_irp_n_types();
for (i = 0; i < n_types; i++)