Mercurial > hg > truffle
diff graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java @ 16056:61cf8b61ee4e
[inliner] added a factory method in InlineInfo to make code uniform elsewhere
author | Miguel Garcia <miguel.m.garcia@oracle.com> |
---|---|
date | Fri, 06 Jun 2014 11:41:10 +0200 |
parents | 1461d7627707 |
children | 83efd0e68a4a |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java Fri Jun 06 11:24:43 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java Fri Jun 06 11:41:10 2014 +0200 @@ -33,6 +33,9 @@ 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.CallsiteHolderExplorable; +import com.oracle.graal.phases.common.inlining.walker.InliningData; import com.oracle.graal.phases.tiers.HighTierContext; public abstract class AbstractInlineInfo implements InlineInfo { @@ -89,4 +92,15 @@ setInlinableElement(i, elem); } } + + 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 InliningData.DUMMY_CALLSITE_HOLDER; + } + } }