changeset 6421:d855dd01629f

fix to PostOrderBlockIterator: deal with unnecessary BeginNodes
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 19 Sep 2012 12:12:00 +0200
parents 58d9297b8575
children 316b45fa86bc
files graal/com.oracle.graal.compiler.virtual/src/com/oracle/graal/compiler/phases/ea/PostOrderBlockIterator.java
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.virtual/src/com/oracle/graal/compiler/phases/ea/PostOrderBlockIterator.java	Tue Sep 18 20:54:46 2012 +0200
+++ b/graal/com.oracle.graal.compiler.virtual/src/com/oracle/graal/compiler/phases/ea/PostOrderBlockIterator.java	Wed Sep 19 12:12:00 2012 +0200
@@ -74,8 +74,14 @@
                         current = successor;
                         continue;
                     } else {
-                        assert successor.getPredecessors().size() > 1 : "invalid block schedule at " + successor.getBeginNode();
-                        queueMerge((EndNode) current.getEndNode(), successor);
+                        if (current.getEndNode() instanceof EndNode) {
+                            assert successor.getPredecessors().size() > 1 : "invalid block schedule at " + successor.getBeginNode();
+                            queueMerge((EndNode) current.getEndNode(), successor);
+                        } else {
+                            assert successor.getPredecessors().size() == 1 : "invalid block schedule at " + successor.getBeginNode();
+                            current = successor;
+                            continue;
+                        }
                     }
                 }
             } else {