Mercurial > hg > graal-compiler
changeset 20013:8ea3dde07ff7
Transfer proxies when splitting IfNode
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Mon, 23 Mar 2015 12:20:49 -0700 |
parents | 9a3c19db3015 |
children | dab7f071220a |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java |
diffstat | 1 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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) {