}
}
- assert(!is_Proj(before) && !be_is_Keep(before));
+ assert(!be_is_Keep(before));
/* put reload into list */
rel = OALLOC(&env->obst, reloader_t);
*/
ir_node *perm = get_Proj_pred(arg);
ir_node *dupl = be_new_Copy(arg_block, arg);
- ir_node *ins;
set_irn_n(phi, i, dupl);
arch_set_irn_register(dupl, phi_reg);
- /* skip the Perm's Projs and insert the copies behind. */
- for (ins = sched_next(perm); is_Proj(ins); ins = sched_next(ins)) {
- }
- sched_add_before(ins, dupl);
+ sched_add_after(perm, dupl);
pin_irn(dupl, phi_block);
be_liveness_introduce(lv, dupl);
be_liveness_update(lv, arg);
int i, arity;
ir_node *need_val = NULL;
- /* projs are handled with the tuple value.
- * Phis are no real instr (see insert_starters()) */
- if (is_Proj(node) || is_Phi(node)) {
+ /* Phis are no real instr (see insert_starters()) */
+ if (is_Phi(node))
continue;
- }
/* check which state is desired for the node */
arity = get_irn_arity(node);
cfchange_found = node;
}
} else if (cfchange_found != NULL) {
- /* proj and keepany aren't real instructions... */
- if (!is_Proj(node) && !be_is_Keep(node)) {
+ /* keepany isn't a real instruction. */
+ if (!be_is_Keep(node)) {
ir_fprintf(stderr, "Verify Warning: Node %+F scheduled after control flow changing node in block %+F (%s)\n",
node, block, get_irg_name(env->irg));
env->problem_found = true;