# HG changeset patch # User Miguel Garcia # Date 1400698147 -7200 # Node ID 3f735cec823e395616b20489315a32f11630041d # Parent 1a8a294318728ec2ddc679614a096bbc2157b38c [inlining] operation that pushes invocation goes ahead and pushes graphs too diff -r 1a8a29431872 -r 3f735cec823e 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 Wed May 21 20:04:33 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Wed May 21 20:49:07 2014 +0200 @@ -410,17 +410,7 @@ double invokeProbability = callsiteHolder.invokeProbability(invoke); double invokeRelevance = callsiteHolder.invokeRelevance(invoke); MethodInvocation methodInvocation = new MethodInvocation(info, calleeAssumptions, invokeProbability, invokeRelevance); - pushInvocation(methodInvocation); - - for (int i = 0; i < info.numberOfMethods(); i++) { - Inlineable elem = info.inlineableElementAt(i); - if (elem instanceof InlineableGraph) { - pushGraph(((InlineableGraph) elem).getGraph(), invokeProbability * info.probabilityAt(i), invokeRelevance * info.relevanceAt(i)); - } else { - assert elem instanceof InlineableMacroNode; - pushDummyGraph(); - } - } + pushInvocationAndGraphs(methodInvocation); } } @@ -492,10 +482,22 @@ return invocationQueue.peekFirst(); } - private void pushInvocation(MethodInvocation methodInvocation) { + private void pushInvocationAndGraphs(MethodInvocation methodInvocation) { invocationQueue.addFirst(methodInvocation); - maxGraphs += methodInvocation.callee().numberOfMethods(); + InlineInfo info = methodInvocation.callee(); + maxGraphs += info.numberOfMethods(); assert graphQueue.size() <= maxGraphs; + double invokeProbability = methodInvocation.probability(); + double invokeRelevance = methodInvocation.relevance(); + for (int i = 0; i < info.numberOfMethods(); i++) { + Inlineable elem = info.inlineableElementAt(i); + if (elem instanceof InlineableGraph) { + pushGraph(((InlineableGraph) elem).getGraph(), invokeProbability * info.probabilityAt(i), invokeRelevance * info.relevanceAt(i)); + } else { + assert elem instanceof InlineableMacroNode; + pushDummyGraph(); + } + } } private void popInvocation() {