changeset 13597:565bf188d39b

Fix graph mark comparison in TruffleCache
author Andreas Woess <andreas.woess@jku.at>
date Sun, 12 Jan 2014 20:25:33 +0100
parents dd0ba029bf34
children 82fc603fcc05
files graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCache.java
diffstat 2 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java	Sun Jan 12 18:43:35 2014 +0000
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java	Sun Jan 12 20:25:33 2014 +0100
@@ -141,7 +141,6 @@
                 new DebugHistogramAsciiPrinter(TTY.out().out()).print(histogram);
             }
 
-            // Additional inlining.
             canonicalizer.apply(graph, baseContext);
             HighTierContext tierContext = new HighTierContext(providers, assumptions, cache, new PhaseSuite<HighTierContext>(), OptimisticOptimizations.NONE);
 
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCache.java	Sun Jan 12 18:43:35 2014 +0000
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCache.java	Sun Jan 12 20:25:33 2014 +0100
@@ -94,7 +94,8 @@
         try (Scope s = Debug.scope("TruffleCache", new Object[]{providers.getMetaAccess(), method})) {
 
             final StructuredGraph graph = new StructuredGraph(method);
-            PhaseContext phaseContext = new PhaseContext(providers, new Assumptions(false));
+            final PhaseContext phaseContext = new PhaseContext(providers, new Assumptions(false));
+            Mark mark = graph.getMark();
             new GraphBuilderPhase.Instance(phaseContext.getMetaAccess(), config, optimisticOptimizations).apply(graph);
 
             for (LocalNode l : graph.getNodes(LocalNode.class)) {
@@ -113,7 +114,6 @@
             CanonicalizerPhase canonicalizerPhase = new CanonicalizerPhase(!ImmutableCode.getValue());
             PartialEscapePhase partialEscapePhase = new PartialEscapePhase(false, canonicalizerPhase);
 
-            Mark mark = null;
             while (true) {
 
                 partialEscapePhase.apply(graph, phaseContext);
@@ -127,7 +127,7 @@
 
                 boolean inliningProgress = false;
                 for (MethodCallTargetNode methodCallTarget : graph.getNodes(MethodCallTargetNode.class)) {
-                    if (graph.getMark().equals(mark)) {
+                    if (!graph.getMark().equals(mark)) {
                         // Make sure macro substitutions such as
                         // CompilerDirectives.transferToInterpreter get processed first.
                         for (Node newNode : graph.getNewNodes(mark)) {