- if (bitset_is_set(env->reachable, get_irn_idx(node)))
- continue;
-
- if (env->lv)
- be_liveness_remove(env->lv, node);
- sched_remove(node);
- kill_node(node);
- }
-}
-
-void be_remove_dead_nodes_from_schedule(be_irg_t *birg)
-{
- ir_graph *irg = be_get_birg_irg(birg);
-
- remove_dead_nodes_env_t env;
- env.reachable = bitset_alloca(get_irg_last_idx(irg));
- env.lv = be_get_irg_liveness(irg);
- env.irg = irg;
-
- // mark all reachable nodes
- irg_walk_graph(irg, mark_dead_nodes_walker, NULL, &env);
-
- // walk schedule and remove non-marked nodes
- irg_block_walk_graph(irg, remove_dead_nodes_walker, NULL, &env);
-}
-
-int (sched_get_time_step)(const ir_node *node)
-{
- return _sched_get_time_step(node);
-}
-
-int (sched_has_next)(const ir_node *node)
-{
- return _sched_has_next(node);
-}
-
-int (sched_has_prev)(const ir_node *node)
-{
- return _sched_has_prev(node);
-}
-
-ir_node *(sched_next)(const ir_node *node)
-{
- return _sched_next(node);