# HG changeset patch # User Miguel Garcia # Date 1402758643 -7200 # Node ID c64c5f5913fd7add8af99e1a3a567f0ebafbdc9a # Parent 3bffcfbf23f529c006586d761bca88b6db3666ac [inliner] shorter argument list isWorthInlining() diff -r 3bffcfbf23f5 -r c64c5f5913fd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java --- 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 probabilities, Replacements replacements, InlineInfo info, int inliningDepth, double probability, double relevance, - boolean fullyProcessed) { + public boolean isWorthInlining(ToDoubleFunction 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; diff -r 3bffcfbf23f5 -r c64c5f5913fd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/InlineEverythingPolicy.java --- 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 probabilities, Replacements replacements, InlineInfo info, int inliningDepth, double probability, double relevance, - boolean fullyProcessed) { + public boolean isWorthInlining(ToDoubleFunction probabilities, Replacements replacements, MethodInvocation invocation, int inliningDepth, boolean fullyProcessed) { return true; } } diff -r 3bffcfbf23f5 -r c64c5f5913fd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/InliningPolicy.java --- 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 probabilities, Replacements replacements, InlineInfo info, int inliningDepth, double probability, double relevance, boolean fullyProcessed); + boolean isWorthInlining(ToDoubleFunction probabilities, Replacements replacements, MethodInvocation invocation, int inliningDepth, boolean fullyProcessed); } diff -r 3bffcfbf23f5 -r c64c5f5913fd 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: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;