Mercurial > hg > truffle
changeset 15720:0b363d4ceb84
[inlining] behavior becomes less argument-dependent, arguments become redundant
author | Miguel Garcia <miguel.m.garcia@oracle.com> |
---|---|
date | Fri, 16 May 2014 16:36:07 +0200 |
parents | a508335e5ee8 |
children | 1e3f19292a32 |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java |
diffstat | 2 files changed, 22 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Fri May 16 16:29:50 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Fri May 16 16:36:07 2014 +0200 @@ -142,20 +142,18 @@ } } - public static void logInlinedMethod(InlineInfo info, int inliningDepth, boolean allowLogging, String msg, Object... args) { - logInliningDecision(info, inliningDepth, allowLogging, true, msg, args); + public static void logInlinedMethod(InlineInfo info, int inliningDepth, String msg, Object... args) { + logInliningDecision(info, inliningDepth, true, msg, args); } public static void logNotInlinedMethod(InlineInfo info, int inliningDepth, String msg, Object... args) { - logInliningDecision(info, inliningDepth, true, false, msg, args); + logInliningDecision(info, inliningDepth, false, msg, args); } - public static void logInliningDecision(InlineInfo info, int inliningDepth, boolean allowLogging, boolean success, String msg, final Object... args) { - if (allowLogging) { - printInlining(info, inliningDepth, success, msg, args); - if (shouldLogInliningDecision()) { - logInliningDecision(methodName(info), success, msg, args); - } + public static void logInliningDecision(InlineInfo info, int inliningDepth, boolean success, String msg, final Object... args) { + printInlining(info, inliningDepth, success, msg, args); + if (shouldLogInliningDecision()) { + logInliningDecision(methodName(info), success, msg, args); } }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java Fri May 16 16:29:50 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java Fri May 16 16:36:07 2014 +0200 @@ -60,17 +60,23 @@ public boolean isWorthInlining(ToDoubleFunction<FixedNode> probabilities, Replacements replacements, InlineInfo info, int inliningDepth, double probability, double relevance, boolean fullyProcessed) { if (InlineEverything.getValue()) { - logInlinedMethod(info, inliningDepth, fullyProcessed, "inline everything"); + if (fullyProcessed) { + logInlinedMethod(info, inliningDepth, "inline everything"); + } return true; } if (isIntrinsic(replacements, info)) { - logInlinedMethod(info, inliningDepth, fullyProcessed, "intrinsic"); + if (fullyProcessed) { + logInlinedMethod(info, inliningDepth, "intrinsic"); + } return true; } if (info.shouldInline()) { - logInlinedMethod(info, inliningDepth, fullyProcessed, "forced inlining"); + if (fullyProcessed) { + logInlinedMethod(info, inliningDepth, "forced inlining"); + } return true; } @@ -85,7 +91,9 @@ } if (nodes < TrivialInliningSize.getValue() * inliningBonus) { - logInlinedMethod(info, inliningDepth, fullyProcessed, "trivial (relevance=%f, probability=%f, bonus=%f, nodes=%d)", relevance, probability, inliningBonus, nodes); + if (fullyProcessed) { + logInlinedMethod(info, inliningDepth, "trivial (relevance=%f, probability=%f, bonus=%f, nodes=%d)", relevance, probability, inliningBonus, nodes); + } return true; } @@ -104,8 +112,9 @@ double maximumNodes = computeMaximumSize(relevance, (int) (MaximumInliningSize.getValue() * inliningBonus)); if (nodes <= maximumNodes) { - logInlinedMethod(info, inliningDepth, fullyProcessed, "relevance-based (relevance=%f, probability=%f, bonus=%f, nodes=%d <= %f)", relevance, probability, inliningBonus, nodes, - maximumNodes); + if (fullyProcessed) { + logInlinedMethod(info, inliningDepth, "relevance-based (relevance=%f, probability=%f, bonus=%f, nodes=%d <= %f)", relevance, probability, inliningBonus, nodes, maximumNodes); + } return true; }