{
ir_graph *irg = get_irn_irg(perm);
ir_node *bl = get_nodes_block(perm);
- ir_node *node;
int arity = get_irn_arity(perm);
int *map;
int *proj_map;
DB((dbg_permmove, LEVEL_2, "\tfrontier: %+F\n", frontier));
- node = sched_prev(perm);
n_moved = 0;
- while (!sched_is_begin(node)) {
+ for (;;) {
+ ir_node *const node = sched_prev(perm);
+ if (node == frontier)
+ break;
+
const arch_register_req_t *req;
int input = -1;
ir_node *proj = NULL;
/* it wasn't an input to the perm, we can't do anything more */
if (input < 0)
break;
- if (!sched_comes_after(frontier, node))
- break;
if (arch_irn_is(node, modify_flags))
break;
req = arch_get_irn_register_req(node);
bitset_set(moved, input);
n_moved++;
-
- node = sched_prev(node);
}
/* well, we could not push anything through the perm */