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;