diff graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java @ 19306:a0a760b0fb5f

pulled method evolution dependencies out of Assumptions and directly into StructuredGraph
author Doug Simon <doug.simon@oracle.com>
date Thu, 12 Feb 2015 01:54:05 +0100
parents 313f9a9647e5
children 2b392a92e27b
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java	Wed Feb 11 21:51:26 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java	Thu Feb 12 01:54:05 2015 +0100
@@ -22,14 +22,13 @@
  */
 package com.oracle.graal.truffle;
 
-import static com.oracle.graal.api.code.Assumptions.*;
 import static com.oracle.graal.api.code.CodeUtil.*;
 import static com.oracle.graal.compiler.GraalCompiler.*;
 
 import java.util.*;
 
+import com.oracle.graal.api.code.Assumptions.Assumption;
 import com.oracle.graal.api.code.*;
-import com.oracle.graal.api.code.Assumptions.Assumption;
 import com.oracle.graal.api.code.CallingConvention.Type;
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.api.replacements.*;
@@ -43,6 +42,7 @@
 import com.oracle.graal.lir.asm.*;
 import com.oracle.graal.lir.phases.*;
 import com.oracle.graal.nodes.*;
+import com.oracle.graal.nodes.StructuredGraph.AllowAssumptions;
 import com.oracle.graal.nodes.java.*;
 import com.oracle.graal.nodes.spi.*;
 import com.oracle.graal.phases.*;
@@ -123,7 +123,7 @@
             GraphBuilderSuiteInfo info = createGraphBuilderSuite();
 
             try (TimerCloseable a = PartialEvaluationTime.start(); Closeable c = PartialEvaluationMemUse.start()) {
-                graph = partialEvaluator.createGraph(compilable, ALLOW_OPTIMISTIC_ASSUMPTIONS, info.plugins);
+                graph = partialEvaluator.createGraph(compilable, AllowAssumptions.YES, info.plugins);
             }
 
             if (Thread.currentThread().isInterrupted()) {
@@ -166,6 +166,13 @@
 
         compilationNotify.notifyCompilationGraalTierFinished((OptimizedCallTarget) predefinedInstalledCode, graph);
 
+        if (graph.isMethodRecordingEnabled()) {
+            Set<ResolvedJavaMethod> methods = graph.getMethods();
+            result.setMethods(methods.toArray(new ResolvedJavaMethod[methods.size()]));
+        } else {
+            assert result.getMethods() == null;
+        }
+
         List<AssumptionValidAssumption> validAssumptions = new ArrayList<>();
         Set<Assumption> newAssumptions = new HashSet<>();
         for (Assumption assumption : graph.getAssumptions()) {