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;
         }