Mercurial > hg > truffle
changeset 16148:3bffcfbf23f5
[inliner] moved buildCallsiteHolderForElement() to MethodInvocation
author | Miguel Garcia <miguel.m.garcia@oracle.com> |
---|---|
date | Fri, 13 Jun 2014 19:24:11 +0200 |
parents | f75c23a505e1 |
children | c64c5f5913fd |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/InlineInfo.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/MethodInvocation.java |
diffstat | 4 files changed, 15 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- 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++) {
--- 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(); }
--- 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;
--- 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; /** * <p> @@ -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()) {