changeset 10934:e2333d8c72b1

Make InliningPhase reentrant.
author Roland Schatz <roland.schatz@oracle.com>
date Fri, 02 Aug 2013 11:00:57 +0200
parents 9878214a0093
children 2da7f2efe6e2
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java
diffstat 2 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java	Fri Aug 02 10:57:20 2013 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java	Fri Aug 02 11:00:57 2013 +0200
@@ -60,7 +60,7 @@
     }
 
     private final InliningPolicy inliningPolicy;
-    private CustomCanonicalizer customCanonicalizer;
+    private final CustomCanonicalizer customCanonicalizer;
 
     private int inliningCount;
     private int maxMethodPerInlining = Integer.MAX_VALUE;
@@ -72,18 +72,23 @@
     private static final DebugMetric metricInliningRuns = Debug.metric("Runs");
 
     public InliningPhase() {
-        this(new GreedyInliningPolicy(null));
+        this(new GreedyInliningPolicy(null), null);
+    }
+
+    public InliningPhase(CustomCanonicalizer canonicalizer) {
+        this(new GreedyInliningPolicy(null), canonicalizer);
     }
 
     public InliningPhase(Map<Invoke, Double> hints) {
-        this(new GreedyInliningPolicy(hints));
+        this(new GreedyInliningPolicy(hints), null);
     }
 
     public InliningPhase(InliningPolicy policy) {
-        this.inliningPolicy = policy;
+        this(policy, null);
     }
 
-    public void setCustomCanonicalizer(CustomCanonicalizer customCanonicalizer) {
+    private InliningPhase(InliningPolicy policy, CustomCanonicalizer customCanonicalizer) {
+        this.inliningPolicy = policy;
         this.customCanonicalizer = customCanonicalizer;
     }
 
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java	Fri Aug 02 10:57:20 2013 +0200
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java	Fri Aug 02 11:00:57 2013 +0200
@@ -161,8 +161,7 @@
                 new DeadCodeEliminationPhase().apply(graph);
 
                 HighTierContext context = new HighTierContext(metaAccessProvider, assumptions, replacements, cache, plan, OptimisticOptimizations.NONE);
-                InliningPhase inliningPhase = new InliningPhase();
-                inliningPhase.setCustomCanonicalizer(customCanonicalizer);
+                InliningPhase inliningPhase = new InliningPhase(customCanonicalizer);
                 inliningPhase.apply(graph, context);
 
                 // Convert deopt to guards.