# HG changeset patch # User Christian Wimmer # Date 1453316065 28800 # Node ID b2223a89bd229cde66133132fe30a809af7ed5bf # Parent e781b762e1663931a3d94b1f660149e1ea23905c GraphPE: keep state of MergeNode when creating LoopBeginNode diff -r e781b762e166 -r b2223a89bd22 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java --- 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);