# HG changeset patch # User Gilles Duboscq # Date 1310289697 -7200 # Node ID 8f51f58506522b8de466c72bcd5b99ba58f23a88 # Parent ccae0eb6c652052180895c3798aef67e54e29e47 Fix for vector tree in splitting diff -r ccae0eb6c652 -r 8f51f5850652 graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/GraphUtil.java --- 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; }