Mercurial > hg > truffle
changeset 15597:a027048a2e5f
[inlining] the constructor of InliningIterator now takes only the data it needs
author | Miguel Garcia <miguel.m.garcia@oracle.com> |
---|---|
date | Mon, 12 May 2014 19:25:59 +0200 |
parents | 7903324bc739 |
children | 98dbd88812c6 |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningIterator.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java |
diffstat | 2 files changed, 7 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningIterator.java Mon May 12 19:10:50 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningIterator.java Mon May 12 19:25:59 2014 +0200 @@ -32,20 +32,20 @@ import java.util.LinkedList; /** - * Given a starting node, visit all fixed nodes in dominator-based order, collecting in the process - * the {@link Invoke} nodes with {@link MethodCallTargetNode}. Such list of callsites is returned by + * Given a graph, visit all fixed nodes in dominator-based order, collecting in the process the + * {@link Invoke} nodes with {@link MethodCallTargetNode}. Such list of callsites is returned by * {@link #apply()} */ class InliningIterator { - private final FixedNode start; + private final StartNode start; private final Deque<FixedNode> nodeQueue; private final NodeBitMap queuedNodes; - public InliningIterator(FixedNode start, NodeBitMap visitedFixedNodes) { - this.start = start; + public InliningIterator(StructuredGraph graph) { + this.start = graph.start(); this.nodeQueue = new ArrayDeque<>(); - this.queuedNodes = visitedFixedNodes; + this.queuedNodes = graph.createNodeBitMap(); assert start.isAlive(); }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java Mon May 12 19:10:50 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java Mon May 12 19:25:59 2014 +0200 @@ -508,8 +508,7 @@ public void pushGraph(StructuredGraph graph, double probability, double relevance) { assert !contains(graph); - NodeBitMap visitedFixedNodes = graph.createNodeBitMap(); - LinkedList<Invoke> invokes = new InliningIterator(graph.start(), visitedFixedNodes).apply(); + LinkedList<Invoke> invokes = new InliningIterator(graph).apply(); assert invokes.size() == count(graph.getInvokes()); graphQueue.push(new GraphInfo(graph, invokes, probability, relevance)); assert graphQueue.size() <= maxGraphs;