Mercurial > hg > graal-jvmci-8
changeset 5354:a704936a25b7
Fix : in peeling, while merging early exits, transfer all anchored nodes from the exit to the merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 04 May 2012 12:08:00 +0200 |
parents | 85103daaf504 |
children | eafa1f3ad48f |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java |
diffstat | 1 files changed, 5 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java Thu May 03 15:43:03 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java Fri May 04 12:08:00 2012 +0200 @@ -174,6 +174,11 @@ FrameState exitState = earlyExit.stateAfter(); FrameState state = exitState.duplicate(); merge.setStateAfter(state); + + for (Node anchored : earlyExit.anchored().snapshot()) { + anchored.replaceFirstInput(earlyExit, merge); + } + for (ValueProxyNode vpn : earlyExit.proxies().snapshot()) { ValueNode replaceWith; ValueProxyNode newVpn = (ValueProxyNode) duplicates.get(vpn);