Mercurial > hg > graal-compiler
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.