# HG changeset patch # User Thomas Wuerthinger # Date 1420921114 -3600 # Node ID c9d5decf4c2741379469186fc148d09f17e0bf30 # Parent d2ec5f50dcd0b3bf098ab9d9e6edfcbd5275d21e Remove GuardNode from iterable node types. diff -r d2ec5f50dcd0 -r c9d5decf4c27 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardNode.java Sat Jan 10 13:44:47 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardNode.java Sat Jan 10 21:18:34 2015 +0100 @@ -42,7 +42,7 @@ * control flow would have reached the guarded node (without taking exceptions into account). */ @NodeInfo(nameTemplate = "Guard(!={p#negated}) {p#reason/s}", allowedUsageTypes = {InputType.Guard}) -public class GuardNode extends FloatingAnchoredNode implements Canonicalizable, IterableNodeType, GuardingNode { +public class GuardNode extends FloatingAnchoredNode implements Canonicalizable, GuardingNode { @Input(InputType.Condition) protected LogicNode condition; protected final DeoptimizationReason reason; diff -r d2ec5f50dcd0 -r c9d5decf4c27 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Sat Jan 10 13:44:47 2015 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Sat Jan 10 21:18:34 2015 +0100 @@ -203,7 +203,16 @@ graph.setGuardsStage(GuardsStage.FIXED_DEOPTS); } - assert graph.getNodes(GuardNode.class).isEmpty(); + assert checkNoGuardsLeft(graph); + } + + private static boolean checkNoGuardsLeft(StructuredGraph graph) { + for (Node n : graph.getNodes()) { + if (n instanceof GuardNode) { + assert false : n; + } + } + return true; } private static void processBlock(Block block, SchedulePhase schedule, int implicitNullCheckLimit) {