# HG changeset patch # User Tom Rodriguez # Date 1427138449 25200 # Node ID 8ea3dde07ff710ba0ed177aa9d4985c02157a709 # Parent 9a3c19db3015971e3a1dd2d89f140d96924abae9 Transfer proxies when splitting IfNode diff -r 9a3c19db3015 -r 8ea3dde07ff7 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Mon Mar 23 10:29:15 2015 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Mon Mar 23 12:20:49 2015 -0700 @@ -781,6 +781,8 @@ } } } + transferProxies(trueSuccessor(), trueMerge); + transferProxies(falseSuccessor(), falseMerge); cleanupMerge(tool, merge); cleanupMerge(tool, trueMerge); @@ -789,6 +791,14 @@ return true; } + private static void transferProxies(AbstractBeginNode successor, MergeNode falseMerge) { + if (falseMerge != null) { + for (ProxyNode proxy : successor.proxies().snapshot()) { + proxy.replaceFirstInput(successor, falseMerge); + } + } + } + private void cleanupMerge(SimplifierTool tool, MergeNode merge) { if (merge != null && merge.isAlive()) { if (merge.forwardEndCount() == 0) {