new_node = new_ir_node(dbgi, irg, block, op, mode, arity, ins);
}
- copy_node_attr(node, new_node);
+ copy_node_attr(irg, node, new_node);
be_duplicate_deps(node, new_node);
new_node->node_nr = node->node_nr;
return new_node;
}
-/**
- * Calls transformation function for given node and marks it visited.
- */
ir_node *be_transform_node(ir_node *node)
{
ir_op *op;
return new_node;
}
-/**
- * enqueue all inputs into the transform queue.
- */
void be_enqueue_preds(ir_node *node)
{
int i, arity;
block = new_ir_node(dbgi, irg, NULL, get_irn_op(node), get_irn_mode(node),
get_irn_arity(node), get_irn_in(node) + 1);
- copy_node_attr(node, block);
+ copy_node_attr(irg, node, block);
block->node_nr = node->node_nr;
if (node == macroblock) {
ir_node *new_end;
new_end = new_ir_node(dbgi, irg, block, op_End, mode_X, -1, NULL);
- copy_node_attr(node, new_end);
+ copy_node_attr(irg, node, new_end);
be_duplicate_deps(node, new_end);
set_irg_end(irg, new_end);
irg->obst = new_obst;
irg->last_node_idx = 0;
+ /* invalidate phase info as (at least vrp info) is used inside the
+ * equivalent/compute_value functions and might replace our newly
+ * created nodes with middleend nodes */
+ irg_invalidate_phases(irg);
+
/* create new value table for CSE */
del_identities(irg->value_table);
irg->value_table = new_identities();