changeset 15620:c6ba248e9941

[inlining] moved processNextInvoke()
author Miguel Garcia <miguel.m.garcia@oracle.com>
date Tue, 13 May 2014 19:11:03 +0200
parents 610b064eb8f9
children 396a483ccaa5
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java
diffstat 1 files changed, 28 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java	Tue May 13 19:03:59 2014 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java	Tue May 13 19:11:03 2014 +0200
@@ -170,7 +170,7 @@
                 data.popGraphs(remainingGraphs);
                 data.popInvocation();
             } else if (graphInfo.hasRemainingInvokes() && inliningPolicy.continueInlining(graphInfo.graph())) {
-                processNextInvoke(data, graphInfo, context, maxMethodPerInlining, canonicalizer);
+                InliningData.processNextInvoke(data, graphInfo, context, maxMethodPerInlining, canonicalizer);
             } else {
                 data.popGraph();
                 if (!currentInvocation.isRoot()) {
@@ -193,33 +193,6 @@
         assert data.graphCount() == 0;
     }
 
-    /**
-     * Process the next invoke and enqueue all its graphs for processing.
-     */
-    private static void processNextInvoke(InliningData data, GraphInfo graphInfo, HighTierContext context, int maxMethodPerInlining, CanonicalizerPhase canonicalizer) {
-        Invoke invoke = graphInfo.popInvoke();
-        MethodInvocation callerInvocation = data.currentInvocation();
-        Assumptions parentAssumptions = callerInvocation.assumptions();
-        InlineInfo info = InliningUtil.getInlineInfo(data, invoke, maxMethodPerInlining, context.getReplacements(), parentAssumptions, context.getOptimisticOptimizations());
-
-        if (info != null) {
-            double invokeProbability = graphInfo.invokeProbability(invoke);
-            double invokeRelevance = graphInfo.invokeRelevance(invoke);
-            MethodInvocation calleeInvocation = data.pushInvocation(info, parentAssumptions, invokeProbability, invokeRelevance);
-
-            for (int i = 0; i < info.numberOfMethods(); i++) {
-                Inlineable elem = DepthSearchUtil.getInlineableElement(info.methodAt(i), info.invoke(), context.replaceAssumptions(calleeInvocation.assumptions()), canonicalizer);
-                info.setInlinableElement(i, elem);
-                if (elem instanceof InlineableGraph) {
-                    data.pushGraph(((InlineableGraph) elem).getGraph(), invokeProbability * info.probabilityAt(i), invokeRelevance * info.relevanceAt(i));
-                } else {
-                    assert elem instanceof InlineableMacroNode;
-                    data.pushDummyGraph();
-                }
-            }
-        }
-    }
-
     private void tryToInline(ToDoubleFunction<FixedNode> probabilities, GraphInfo callerGraphInfo, MethodInvocation calleeInfo, MethodInvocation parentInvocation, int inliningDepth,
                     HighTierContext context) {
         InlineInfo callee = calleeInfo.callee();
@@ -465,6 +438,33 @@
             pushGraph(rootGraph, 1.0, 1.0);
         }
 
+        /**
+         * Process the next invoke and enqueue all its graphs for processing.
+         */
+        private static void processNextInvoke(InliningData data, GraphInfo graphInfo, HighTierContext context, int maxMethodPerInlining, CanonicalizerPhase canonicalizer) {
+            Invoke invoke = graphInfo.popInvoke();
+            MethodInvocation callerInvocation = data.currentInvocation();
+            Assumptions parentAssumptions = callerInvocation.assumptions();
+            InlineInfo info = InliningUtil.getInlineInfo(data, invoke, maxMethodPerInlining, context.getReplacements(), parentAssumptions, context.getOptimisticOptimizations());
+
+            if (info != null) {
+                double invokeProbability = graphInfo.invokeProbability(invoke);
+                double invokeRelevance = graphInfo.invokeRelevance(invoke);
+                MethodInvocation calleeInvocation = data.pushInvocation(info, parentAssumptions, invokeProbability, invokeRelevance);
+
+                for (int i = 0; i < info.numberOfMethods(); i++) {
+                    Inlineable elem = DepthSearchUtil.getInlineableElement(info.methodAt(i), info.invoke(), context.replaceAssumptions(calleeInvocation.assumptions()), canonicalizer);
+                    info.setInlinableElement(i, elem);
+                    if (elem instanceof InlineableGraph) {
+                        data.pushGraph(((InlineableGraph) elem).getGraph(), invokeProbability * info.probabilityAt(i), invokeRelevance * info.relevanceAt(i));
+                    } else {
+                        assert elem instanceof InlineableMacroNode;
+                        data.pushDummyGraph();
+                    }
+                }
+            }
+        }
+
         public int graphCount() {
             return graphQueue.size();
         }