changeset 15809:d475c2841f09

[inline-info] step 1 of de-aliasing MethodInvocation assumptions
author Miguel Garcia <miguel.m.garcia@oracle.com>
date Tue, 20 May 2014 14:48:46 +0200
parents 5656cfe34979
children 64deb577ff5c
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java	Tue May 20 14:39:42 2014 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java	Tue May 20 14:48:46 2014 +0200
@@ -408,10 +408,11 @@
         if (info != null) {
             double invokeProbability = callsiteHolder.invokeProbability(invoke);
             double invokeRelevance = callsiteHolder.invokeRelevance(invoke);
-            MethodInvocation calleeInvocation = pushInvocation(info, parentAssumptions, invokeProbability, invokeRelevance);
+            Assumptions calleeAssumptions = new Assumptions(parentAssumptions.useOptimisticAssumptions());
+            pushInvocation(info, calleeAssumptions, invokeProbability, invokeRelevance);
 
             for (int i = 0; i < info.numberOfMethods(); i++) {
-                Inlineable elem = Inlineable.getInlineableElement(info.methodAt(i), info.invoke(), context.replaceAssumptions(calleeInvocation.assumptions()), canonicalizer);
+                Inlineable elem = Inlineable.getInlineableElement(info.methodAt(i), info.invoke(), context.replaceAssumptions(calleeAssumptions), canonicalizer);
                 info.setInlinableElement(i, elem);
                 if (elem instanceof InlineableGraph) {
                     pushGraph(((InlineableGraph) elem).getGraph(), invokeProbability * info.probabilityAt(i), invokeRelevance * info.relevanceAt(i));
@@ -484,12 +485,11 @@
         return invocationQueue.peekFirst();
     }
 
-    private MethodInvocation pushInvocation(InlineInfo info, Assumptions assumptions, double probability, double relevance) {
-        MethodInvocation methodInvocation = new MethodInvocation(info, new Assumptions(assumptions.useOptimisticAssumptions()), probability, relevance);
+    private void pushInvocation(InlineInfo info, Assumptions calleeAssumptions, double probability, double relevance) {
+        MethodInvocation methodInvocation = new MethodInvocation(info, calleeAssumptions, probability, relevance);
         invocationQueue.addFirst(methodInvocation);
         maxGraphs += info.numberOfMethods();
         assert graphQueue.size() <= maxGraphs;
-        return methodInvocation;
     }
 
     private void popInvocation() {