# HG changeset patch # User Thomas Wuerthinger # Date 1451656357 -3600 # Node ID 2e3a5ffe5654722eb61a44931dfad08147ac9a5b # Parent 2415a168a090c09d39e4b00acd9d4fc7f50363e2 Clean up FrameStateAssignmentPhase#checkFixedDeopts. diff -r 2415a168a090 -r 2e3a5ffe5654 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java Fri Jan 01 14:44:21 2016 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java Fri Jan 01 14:52:37 2016 +0100 @@ -117,7 +117,7 @@ @Override protected void run(StructuredGraph graph) { - assert !graph.getGuardsStage().allowsFloatingGuards() && checkFixedDeopts(graph); + assert !graph.getGuardsStage().allowsFloatingGuards() && !hasFloatingDeopts(graph); if (graph.getGuardsStage().areFrameStatesAtSideEffects()) { ReentrantNodeIterator.apply(new FrameStateAssignmentClosure(), graph.start(), null); graph.setGuardsStage(GuardsStage.AFTER_FSA); @@ -125,13 +125,16 @@ } } - private static boolean checkFixedDeopts(StructuredGraph graph) { - for (Node n : graph.getNodes().filterInterface(DeoptimizingNode.class)) { - if (((DeoptimizingNode) n).canDeoptimize() && GraphUtil.isFloatingNode(n)) { - return false; + private static boolean hasFloatingDeopts(StructuredGraph graph) { + for (Node n : graph.getNodes()) { + if (n instanceof DeoptimizingNode) { + DeoptimizingNode deoptimizingNode = (DeoptimizingNode) n; + if (deoptimizingNode.canDeoptimize()) { + return true; + } } } - return true; + return false; } private static FrameState singleFrameState(List states) {