changeset 15705:619b194bb2a3

[inlining] consumer becomes initializer of the probabilities map
author Miguel Garcia <miguel.m.garcia@oracle.com>
date Fri, 16 May 2014 12:03:36 +0200
parents c5ff0e1e53cf
children 8e2ed3a0812a
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java
diffstat 2 files changed, 6 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java	Fri May 16 11:59:12 2014 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java	Fri May 16 12:03:36 2014 +0200
@@ -23,7 +23,6 @@
 package com.oracle.graal.phases.common.inlining;
 
 import java.util.*;
-import java.util.function.*;
 
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.options.*;
@@ -33,7 +32,6 @@
 import com.oracle.graal.phases.common.inlining.walker.CallsiteHolder;
 import com.oracle.graal.phases.common.inlining.walker.InliningData;
 import com.oracle.graal.phases.common.inlining.walker.MethodInvocation;
-import com.oracle.graal.phases.graph.*;
 import com.oracle.graal.phases.tiers.*;
 
 public class InliningPhase extends AbstractInliningPhase {
@@ -141,10 +139,9 @@
     @Override
     protected void run(final StructuredGraph graph, final HighTierContext context) {
         final InliningData data = new InliningData(graph, context, maxMethodPerInlining, canonicalizer, inliningPolicy);
-        ToDoubleFunction<FixedNode> probabilities = new FixedNodeProbabilityCache();
 
         while (data.hasUnprocessedGraphs()) {
-            boolean wasInlined = data.moveForward(probabilities);
+            boolean wasInlined = data.moveForward();
             if (wasInlined) {
                 inliningCount++;
             }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java	Fri May 16 11:59:12 2014 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java	Fri May 16 12:03:36 2014 +0200
@@ -37,6 +37,7 @@
 import com.oracle.graal.phases.common.inlining.InliningUtil;
 import com.oracle.graal.phases.common.inlining.info.InlineInfo;
 import com.oracle.graal.phases.common.inlining.policy.InliningPolicy;
+import com.oracle.graal.phases.graph.FixedNodeProbabilityCache;
 import com.oracle.graal.phases.tiers.HighTierContext;
 import com.oracle.graal.phases.util.Providers;
 
@@ -63,6 +64,7 @@
      */
     private final ArrayDeque<CallsiteHolder> graphQueue = new ArrayDeque<>();
     private final ArrayDeque<MethodInvocation> invocationQueue = new ArrayDeque<>();
+    private final ToDoubleFunction<FixedNode> probabilities = new FixedNodeProbabilityCache();
 
     private final HighTierContext context;
     private final int maxMethodPerInlining;
@@ -124,7 +126,7 @@
     /**
      * @return true iff inlining was actually performed
      */
-    private boolean tryToInline(ToDoubleFunction<FixedNode> probabilities, CallsiteHolder callerCallsiteHolder, MethodInvocation calleeInfo, MethodInvocation parentInvocation, int inliningDepth) {
+    private boolean tryToInline(CallsiteHolder callerCallsiteHolder, MethodInvocation calleeInfo, MethodInvocation parentInvocation, int inliningDepth) {
         InlineInfo callee = calleeInfo.callee();
         Assumptions callerAssumptions = parentInvocation.assumptions();
         metricInliningConsidered.increment();
@@ -288,7 +290,7 @@
     /**
      * @return true iff inlining was actually performed
      */
-    public boolean moveForward(ToDoubleFunction<FixedNode> probabilities) {
+    public boolean moveForward() {
 
         final MethodInvocation currentInvocation = currentInvocation();
 
@@ -320,7 +322,7 @@
             popInvocation();
             final MethodInvocation parentInvoke = currentInvocation();
             try (Debug.Scope s = Debug.scope("Inlining", inliningContext())) {
-                return tryToInline(probabilities, currentGraph(), currentInvocation, parentInvoke, inliningDepth() + 1);
+                return tryToInline(currentGraph(), currentInvocation, parentInvoke, inliningDepth() + 1);
             } catch (Throwable e) {
                 throw Debug.handle(e);
             }