- /* the memory Proj can only be removed if we divide by a
- real constant, but the node never produce a new memory */
- if (value_of(b) != tarval_bad) {
- /* this is a DivMod by a const, we can remove the memory edge */
- set_DivMod_mem(n, get_irg_no_mem(current_ir_graph));
+ ir_node *new_mem = get_irg_no_mem(current_ir_graph);
+
+ if (confirm) {
+ /* This node can only float up to the Confirm block */
+ new_mem = new_r_Pin(current_ir_graph, get_nodes_block(confirm), new_mem);