changeset 23228:2e3a5ffe5654

Clean up FrameStateAssignmentPhase#checkFixedDeopts.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 01 Jan 2016 14:52:37 +0100
parents 2415a168a090
children 9c2976c7d96a
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java
diffstat 1 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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<FrameState> states) {