changeset 23343:b2223a89bd22

GraphPE: keep state of MergeNode when creating LoopBeginNode
author Christian Wimmer <christian.wimmer@oracle.com>
date Wed, 20 Jan 2016 10:54:25 -0800
parents e781b762e166
children 5538acafd12f
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java
diffstat 1 files changed, 1 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java	Wed Jan 20 12:16:37 2016 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java	Wed Jan 20 10:54:25 2016 -0800
@@ -1167,9 +1167,8 @@
         merge.removeEnd(endNode);
         FixedNode afterMerge = merge.next();
         if (!(afterMerge instanceof EndNode) || !(((EndNode) afterMerge).merge() instanceof LoopBeginNode)) {
-            FrameState stateAfter = merge.stateAfter();
+            FrameState stateAfter = merge.stateAfter().duplicate();
             merge.setNext(null);
-            merge.setStateAfter(null);
             EndNode preLoopEnd = methodScope.graph.add(new EndNode());
             LoopBeginNode newLoopBegin = methodScope.graph.add(new LoopBeginNode());
             merge.setNext(preLoopEnd);