# HG changeset patch # User Lukas Stadler # Date 1398241579 -7200 # Node ID 2a6897a82a7ebb74f0253bab1cc0c1637ede6d93 # Parent e3b5fdeb304abeadd4b3cc268e96e666b9db4e30 loosen restrictions a bit in GraphOrder diff -r e3b5fdeb304a -r 2a6897a82a7e graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java Wed Apr 23 10:26:19 2014 +0200 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java Wed Apr 23 10:26:19 2014 +0200 @@ -30,6 +30,7 @@ import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.VirtualState.NodeClosure; import com.oracle.graal.nodes.cfg.*; +import com.oracle.graal.nodes.virtual.*; import com.oracle.graal.phases.graph.*; import com.oracle.graal.phases.graph.ReentrantBlockIterator.BlockIteratorClosure; import com.oracle.graal.phases.schedule.*; @@ -164,7 +165,8 @@ if (pendingStateAfter != null && node instanceof FixedNode) { pendingStateAfter.applyToNonVirtual(new NodeClosure() { public void apply(Node usage, Node nonVirtualNode) { - assert currentState.isMarked(nonVirtualNode) : nonVirtualNode + " not available at virtualstate " + usage + " before " + node + " in block " + block + " \n" + list; + assert currentState.isMarked(nonVirtualNode) || nonVirtualNode instanceof VirtualObjectNode : nonVirtualNode + " not available at virtualstate " + usage + + " before " + node + " in block " + block + " \n" + list; } }); pendingStateAfter = null; @@ -199,7 +201,7 @@ assert currentState.isMarked(nonVirtual) : nonVirtual + " not available at " + node + " in block " + block + "\n" + list; }); } else { - assert currentState.isMarked(input) : input + " not available at " + node + " in block " + block + "\n" + list; + assert currentState.isMarked(input) || input instanceof VirtualObjectNode : input + " not available at " + node + " in block " + block + "\n" + list; } } }