changeset 23044:17e704e362b5

Perform graph clean-up in GraphDecoder only at the very end of the decoding.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 20 Nov 2015 11:51:06 +0100
parents c00fc84509da
children 32b610195367
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java
diffstat 1 files changed, 1 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java	Fri Nov 20 06:42:41 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java	Fri Nov 20 11:51:06 2015 +0100
@@ -285,7 +285,6 @@
     }
 
     protected final void decode(MethodScope methodScope, FixedWithNextNode startNode) {
-        Graph.Mark start = methodScope.graph.getMark();
         LoopScope loopScope = new LoopScope(methodScope);
         FixedNode firstNode;
         if (startNode != null) {
@@ -321,13 +320,7 @@
         }
 
         if (methodScope.loopExplosion == LoopExplosionKind.MERGE_EXPLODE) {
-            /*
-             * The startNode can get deleted during graph cleanup, so we use its predecessor (if
-             * available) as the starting point for loop detection.
-             */
-            FixedNode detectLoopsStart = startNode.predecessor() != null ? (FixedNode) startNode.predecessor() : startNode;
-            cleanupGraph(methodScope, start);
-            detectLoops(methodScope.graph, detectLoopsStart);
+            detectLoops(methodScope.graph, startNode);
         }
     }