{
ir_node *irn;
sched_info_t *inf;
- sched_timestep_t step = 0;
+ sched_timestep_t step = SCHED_INITIAL_GRANULARITY;
sched_foreach(block, irn) {
inf = get_irn_sched_info(irn);
static void remove_dead_nodes_walker(ir_node *block, void *data)
{
remove_dead_nodes_env_t *env = (remove_dead_nodes_env_t*) data;
- ir_node *node;
+ ir_node *node, *next;
- for(node = sched_first(block); !sched_is_end(node); ) {
- // get next node now, as after calling sched_remove it will be invalid
- ir_node* next = sched_next(node);
+ for(node = sched_first(block); !sched_is_end(node); node = next) {
int i, arity;
- if(bitset_is_set(env->reachable, get_irn_idx(node))) {
- node = next;
+ // get next node now, as after calling sched_remove it will be invalid
+ next = sched_next(node);
+
+ if(bitset_is_set(env->reachable, get_irn_idx(node)))
continue;
- }
- sched_remove(node);
arity = get_irn_arity(node);
for(i = 0; i < arity; ++i)
set_irn_n(node, i, new_r_Bad(env->irg));
- node = next;
+ sched_remove(node);
}
}