Mercurial > hg > truffle
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() {