# HG changeset patch # User Roland Schatz # Date 1375434057 -7200 # Node ID e2333d8c72b1abd8d5735689fa6041e024dc1728 # Parent 9878214a00933dabec981a62d120fc915166f63d Make InliningPhase reentrant. diff -r 9878214a0093 -r e2333d8c72b1 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java --- 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 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; } diff -r 9878214a0093 -r e2333d8c72b1 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java --- 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.