Mercurial > hg > truffle
changeset 16149:c64c5f5913fd
[inliner] shorter argument list isWorthInlining()
author | Miguel Garcia <miguel.m.garcia@oracle.com> |
---|---|
date | Sat, 14 Jun 2014 17:10:43 +0200 |
parents | 3bffcfbf23f5 |
children | f98b033b6050 |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/InlineEverythingPolicy.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/InliningPolicy.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java |
diffstat | 4 files changed, 13 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java Fri Jun 13 19:24:11 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java Sat Jun 14 17:10:43 2014 +0200 @@ -30,6 +30,7 @@ import com.oracle.graal.nodes.spi.Replacements; import com.oracle.graal.phases.common.inlining.InliningUtil; import com.oracle.graal.phases.common.inlining.info.InlineInfo; +import com.oracle.graal.phases.common.inlining.walker.MethodInvocation; import java.util.Map; import java.util.function.ToDoubleFunction; @@ -54,8 +55,12 @@ } @Override - public boolean isWorthInlining(ToDoubleFunction<FixedNode> probabilities, Replacements replacements, InlineInfo info, int inliningDepth, double probability, double relevance, - boolean fullyProcessed) { + public boolean isWorthInlining(ToDoubleFunction<FixedNode> probabilities, Replacements replacements, MethodInvocation invocation, int inliningDepth, boolean fullyProcessed) { + + final InlineInfo info = invocation.callee(); + final double probability = invocation.probability(); + final double relevance = invocation.relevance(); + if (InlineEverything.getValue()) { InliningUtil.logInlinedMethod(info, inliningDepth, fullyProcessed, "inline everything"); return true;
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/InlineEverythingPolicy.java Fri Jun 13 19:24:11 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/InlineEverythingPolicy.java Sat Jun 14 17:10:43 2014 +0200 @@ -26,7 +26,7 @@ import com.oracle.graal.nodes.FixedNode; import com.oracle.graal.nodes.StructuredGraph; import com.oracle.graal.nodes.spi.Replacements; -import com.oracle.graal.phases.common.inlining.info.InlineInfo; +import com.oracle.graal.phases.common.inlining.walker.MethodInvocation; import java.util.function.ToDoubleFunction; @@ -41,8 +41,7 @@ return true; } - public boolean isWorthInlining(ToDoubleFunction<FixedNode> probabilities, Replacements replacements, InlineInfo info, int inliningDepth, double probability, double relevance, - boolean fullyProcessed) { + public boolean isWorthInlining(ToDoubleFunction<FixedNode> probabilities, Replacements replacements, MethodInvocation invocation, int inliningDepth, boolean fullyProcessed) { return true; } }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/InliningPolicy.java Fri Jun 13 19:24:11 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/InliningPolicy.java Sat Jun 14 17:10:43 2014 +0200 @@ -25,7 +25,7 @@ import com.oracle.graal.nodes.FixedNode; import com.oracle.graal.nodes.StructuredGraph; import com.oracle.graal.nodes.spi.Replacements; -import com.oracle.graal.phases.common.inlining.info.InlineInfo; +import com.oracle.graal.phases.common.inlining.walker.MethodInvocation; import java.util.function.ToDoubleFunction; @@ -33,5 +33,5 @@ boolean continueInlining(StructuredGraph graph); - boolean isWorthInlining(ToDoubleFunction<FixedNode> probabilities, Replacements replacements, InlineInfo info, int inliningDepth, double probability, double relevance, boolean fullyProcessed); + boolean isWorthInlining(ToDoubleFunction<FixedNode> probabilities, Replacements replacements, MethodInvocation invocation, int inliningDepth, boolean fullyProcessed); }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Fri Jun 13 19:24:11 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Sat Jun 14 17:10:43 2014 +0200 @@ -419,7 +419,7 @@ Assumptions callerAssumptions = parentInvocation.assumptions(); metricInliningConsidered.increment(); - if (inliningPolicy.isWorthInlining(probabilities, context.getReplacements(), calleeInfo, inliningDepth, calleeInvocation.probability(), calleeInvocation.relevance(), true)) { + if (inliningPolicy.isWorthInlining(probabilities, context.getReplacements(), calleeInvocation, inliningDepth, true)) { doInline(callerCallsiteHolder, calleeInvocation, callerAssumptions); return true; } @@ -634,8 +634,7 @@ final MethodInvocation currentInvocation = currentInvocation(); - final boolean backtrack = (!currentInvocation.isRoot() && !inliningPolicy.isWorthInlining(probabilities, context.getReplacements(), currentInvocation.callee(), inliningDepth(), - currentInvocation.probability(), currentInvocation.relevance(), false)); + final boolean backtrack = (!currentInvocation.isRoot() && !inliningPolicy.isWorthInlining(probabilities, context.getReplacements(), currentInvocation, inliningDepth(), false)); if (backtrack) { int remainingGraphs = currentInvocation.totalGraphs() - currentInvocation.processedGraphs(); assert remainingGraphs > 0;