changeset 11805:73a886a9564a

Make AbstractBeginNode a IterableNodeType and use this in ControlFlowGraph
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 26 Sep 2013 11:15:45 +0200
parents 60f6d5939941
children 14904566a4b2 ec90fc830e45
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java
diffstat 2 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java	Thu Sep 26 08:50:55 2013 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java	Thu Sep 26 11:15:45 2013 +0200
@@ -32,7 +32,7 @@
 import com.oracle.graal.nodes.spi.*;
 import com.oracle.graal.nodes.type.*;
 
-public abstract class AbstractBeginNode extends FixedWithNextNode implements StateSplit, LIRLowerable, Simplifiable, GuardingNode {
+public abstract class AbstractBeginNode extends FixedWithNextNode implements StateSplit, LIRLowerable, Simplifiable, GuardingNode, IterableNodeType {
 
     @Input(notDataflow = true) private FrameState stateAfter;
 
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java	Thu Sep 26 08:50:55 2013 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java	Thu Sep 26 11:15:45 2013 +0200
@@ -154,12 +154,10 @@
     private void identifyBlocks() {
         // Find all block headers
         int numBlocks = 0;
-        for (Node node : graph.getNodes()) {
-            if (node instanceof AbstractBeginNode) {
-                Block block = new Block((AbstractBeginNode) node);
-                numBlocks++;
-                identifyBlock(block);
-            }
+        for (AbstractBeginNode begin : graph.getNodes(AbstractBeginNode.class)) {
+            Block block = new Block(begin);
+            numBlocks++;
+            identifyBlock(block);
         }
 
         // Compute postorder.