# HG changeset patch # User Gilles Duboscq # Date 1380186945 -7200 # Node ID 73a886a9564a72dd8f7058d8e3f97c79accab2a9 # Parent 60f6d59399415622405a3c958a4097579c9ebe99 Make AbstractBeginNode a IterableNodeType and use this in ControlFlowGraph diff -r 60f6d5939941 -r 73a886a9564a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java --- 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; diff -r 60f6d5939941 -r 73a886a9564a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java --- 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.