# HG changeset patch # User Doug Simon # Date 1376410697 -7200 # Node ID ee5ef0e132cee247e271ee63905212d79614713b # Parent 1bdb4a3ffdc6bf4be8423f3db888137ad210e439 made instanceof lowering happen after guard lowering diff -r 1bdb4a3ffdc6 -r ee5ef0e132ce graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue Aug 13 18:17:45 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue Aug 13 18:18:17 2013 +0200 @@ -795,9 +795,13 @@ } else if (n instanceof CheckCastDynamicNode) { checkcastDynamicSnippets.lower((CheckCastDynamicNode) n); } else if (n instanceof InstanceOfNode) { - instanceofSnippets.lower((InstanceOfNode) n, tool); + if (tool.getLoweringType() == LoweringType.AFTER_GUARDS) { + instanceofSnippets.lower((InstanceOfNode) n, tool); + } } else if (n instanceof InstanceOfDynamicNode) { - instanceofSnippets.lower((InstanceOfDynamicNode) n, tool); + if (tool.getLoweringType() == LoweringType.AFTER_GUARDS) { + instanceofSnippets.lower((InstanceOfDynamicNode) n, tool); + } } else if (n instanceof NewInstanceNode) { if (tool.getLoweringType() == LoweringType.AFTER_FSA) { newObjectSnippets.lower((NewInstanceNode) n); diff -r 1bdb4a3ffdc6 -r ee5ef0e132ce graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Tue Aug 13 18:17:45 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Tue Aug 13 18:18:17 2013 +0200 @@ -23,7 +23,6 @@ package com.oracle.graal.nodes.java; import com.oracle.graal.api.meta.*; -import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.spi.*; @@ -119,15 +118,6 @@ } @Override - public boolean verify() { - for (Node usage : usages()) { - assertTrue(usage instanceof IfNode || usage instanceof FixedGuardNode || usage instanceof GuardingPiNode || usage instanceof ConditionalNode || usage instanceof ShortCircuitBooleanNode, - "unsupported usage: %s", usage); - } - return super.verify(); - } - - @Override public void virtualize(VirtualizerTool tool) { State state = tool.getObjectState(object); if (state != null) {