# HG changeset patch # User Miguel Garcia # Date 1400234616 -7200 # Node ID 619b194bb2a30f5ba6b281fabf3e053ab3a6ee40 # Parent c5ff0e1e53cf7932293ad39a3eea8e5d98028810 [inlining] consumer becomes initializer of the probabilities map diff -r c5ff0e1e53cf -r 619b194bb2a3 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java --- 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 probabilities = new FixedNodeProbabilityCache(); while (data.hasUnprocessedGraphs()) { - boolean wasInlined = data.moveForward(probabilities); + boolean wasInlined = data.moveForward(); if (wasInlined) { inliningCount++; } diff -r c5ff0e1e53cf -r 619b194bb2a3 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 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 graphQueue = new ArrayDeque<>(); private final ArrayDeque invocationQueue = new ArrayDeque<>(); + private final ToDoubleFunction 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 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 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); }