changeset 3204:8f51f5850652

Fix for vector tree in splitting
author Gilles Duboscq <gilles.duboscq@oracle.com>
date Sun, 10 Jul 2011 11:21:37 +0200
parents ccae0eb6c652
children ca968e2cf7cb
files graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/GraphUtil.java
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/GraphUtil.java	Fri Jul 08 18:35:51 2011 +0200
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/GraphUtil.java	Sun Jul 10 11:21:37 2011 +0200
@@ -100,7 +100,7 @@
                     break;
                 }
                 colors.set(current, color);
-                if (current instanceof FixedNodeWithNext && !(current instanceof Invoke && ((Invoke) current).exceptionEdge() != null)) {
+                if (current instanceof FixedNodeWithNext && !(current instanceof AbstractVectorNode) && !(current instanceof Invoke && ((Invoke) current).exceptionEdge() != null)) {
                     current = ((FixedNodeWithNext) current).next();
                 } else if (current instanceof EndNode) {
                     current = ((EndNode) current).merge();
@@ -113,6 +113,11 @@
                         Invoke invoke = (Invoke) current;
                         work.add(invoke.next());
                         work.add(invoke.exceptionEdge());
+                    } else if (current instanceof AbstractVectorNode) {
+                        for (Node usage : current.usages()) {
+                            work.add(usage);
+                        }
+                        work.add(((AbstractVectorNode) current).next());
                     }
                     current = null;
                 }