- last = current_node;
- func(current_node);
- /* was the current node replaced? */
- if(current_node != last) {
- set_uses(current_node);
- }
- }
-}
-
-/**
- * Walk through the block schedule and skip all barrier nodes.
- */
-static void skip_barrier(ir_node *ret_blk, ir_graph *irg) {
- ir_node *irn;
-
- sched_foreach_reverse(ret_blk, irn) {
- if (be_is_Barrier(irn)) {
- const ir_edge_t *edge, *next;
-
- foreach_out_edge_safe(irn, edge, next) {
- ir_node *proj = get_edge_src_irn(edge);
- int pn = (int)get_Proj_proj(proj);
- ir_node *pred = get_irn_n(irn, pn);
-
- edges_reroute_kind(proj, pred, EDGE_KIND_NORMAL, irg);
- edges_reroute_kind(proj, pred, EDGE_KIND_DEP, irg);
- }
- sched_remove(irn);
- kill_node(irn);
- break;
- }
+ DB((dbg, LEVEL_2, "optimize %+F\n", current_node));
+ peephole_node(current_node);
+ assert(!is_Bad(current_node));