# HG changeset patch # User Miguel Garcia # Date 1402680251 -7200 # Node ID 3bffcfbf23f529c006586d761bca88b6db3666ac # Parent f75c23a505e1b3d58fcc45b4f3c589736967323c [inliner] moved buildCallsiteHolderForElement() to MethodInvocation diff -r f75c23a505e1 -r 3bffcfbf23f5 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java Fri Jun 13 19:12:48 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java Fri Jun 13 19:24:11 2014 +0200 @@ -33,9 +33,6 @@ import com.oracle.graal.phases.common.inlining.info.elem.Inlineable; import com.oracle.graal.phases.common.inlining.info.elem.InlineableMacroNode; import com.oracle.graal.phases.common.inlining.info.elem.InlineableGraph; -import com.oracle.graal.phases.common.inlining.walker.CallsiteHolder; -import com.oracle.graal.phases.common.inlining.walker.CallsiteHolderDummy; -import com.oracle.graal.phases.common.inlining.walker.CallsiteHolderExplorable; import com.oracle.graal.phases.tiers.HighTierContext; public abstract class AbstractInlineInfo implements InlineInfo { @@ -93,17 +90,6 @@ } } - public final CallsiteHolder buildCallsiteHolderForElement(int index, double invokeProbability, double invokeRelevance) { - Inlineable elem = inlineableElementAt(index); - if (elem instanceof InlineableGraph) { - InlineableGraph ig = (InlineableGraph) elem; - return new CallsiteHolderExplorable(ig.getGraph(), invokeProbability * probabilityAt(index), invokeRelevance * relevanceAt(index)); - } else { - assert elem instanceof InlineableMacroNode; - return CallsiteHolderDummy.DUMMY_CALLSITE_HOLDER; - } - } - public final int determineNodeCount() { int nodes = 0; for (int i = 0; i < numberOfMethods(); i++) { diff -r f75c23a505e1 -r 3bffcfbf23f5 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/InlineInfo.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/InlineInfo.java Fri Jun 13 19:12:48 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/InlineInfo.java Fri Jun 13 19:24:11 2014 +0200 @@ -32,7 +32,6 @@ import com.oracle.graal.nodes.StructuredGraph; import com.oracle.graal.phases.common.CanonicalizerPhase; import com.oracle.graal.phases.common.inlining.info.elem.Inlineable; -import com.oracle.graal.phases.common.inlining.walker.CallsiteHolder; import com.oracle.graal.phases.tiers.HighTierContext; import com.oracle.graal.phases.util.Providers; @@ -88,7 +87,5 @@ void populateInlinableElements(HighTierContext context, Assumptions calleeAssumptions, CanonicalizerPhase canonicalizer); - CallsiteHolder buildCallsiteHolderForElement(int index, double invokeProbability, double invokeRelevance); - int determineNodeCount(); } diff -r f75c23a505e1 -r 3bffcfbf23f5 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Fri Jun 13 19:12:48 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Fri Jun 13 19:24:11 2014 +0200 @@ -523,10 +523,8 @@ InlineInfo info = methodInvocation.callee(); maxGraphs += info.numberOfMethods(); assert graphQueue.size() <= maxGraphs; - double invokeProbability = methodInvocation.probability(); - double invokeRelevance = methodInvocation.relevance(); for (int i = 0; i < info.numberOfMethods(); i++) { - CallsiteHolder ch = info.buildCallsiteHolderForElement(i, invokeProbability, invokeRelevance); + CallsiteHolder ch = methodInvocation.buildCallsiteHolderForElement(i); assert (ch == DUMMY_CALLSITE_HOLDER) || !contains(ch.graph()); graphQueue.push(ch); assert graphQueue.size() <= maxGraphs; diff -r f75c23a505e1 -r 3bffcfbf23f5 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/MethodInvocation.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/MethodInvocation.java Fri Jun 13 19:12:48 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/MethodInvocation.java Fri Jun 13 19:24:11 2014 +0200 @@ -28,6 +28,9 @@ import com.oracle.graal.nodes.CallTargetNode; import com.oracle.graal.nodes.java.MethodCallTargetNode; import com.oracle.graal.phases.common.inlining.info.InlineInfo; +import com.oracle.graal.phases.common.inlining.info.elem.Inlineable; +import com.oracle.graal.phases.common.inlining.info.elem.InlineableGraph; +import com.oracle.graal.phases.common.inlining.info.elem.InlineableMacroNode; /** *

@@ -90,6 +93,17 @@ return callee == null; } + public CallsiteHolder buildCallsiteHolderForElement(int index) { + Inlineable elem = callee.inlineableElementAt(index); + if (elem instanceof InlineableGraph) { + InlineableGraph ig = (InlineableGraph) elem; + return new CallsiteHolderExplorable(ig.getGraph(), probability * callee.probabilityAt(index), relevance * callee.relevanceAt(index)); + } else { + assert elem instanceof InlineableMacroNode; + return CallsiteHolderDummy.DUMMY_CALLSITE_HOLDER; + } + } + @Override public String toString() { if (isRoot()) {