# HG changeset patch # User Miguel Garcia # Date 1400590126 -7200 # Node ID d475c2841f0973651dccbfd2d38d1e352249c9c6 # Parent 5656cfe349790d50f90ea98148de215659bd884a [inline-info] step 1 of de-aliasing MethodInvocation assumptions diff -r 5656cfe34979 -r d475c2841f09 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 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() {