# HG changeset patch # User Gilles Duboscq # Date 1336126080 -7200 # Node ID a704936a25b727dcb05888aec18a60af2a3cc5d5 # Parent 85103daaf504ba264127ac4d5e215b196c141427 Fix : in peeling, while merging early exits, transfer all anchored nodes from the exit to the merge diff -r 85103daaf504 -r a704936a25b7 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java --- 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);