Mercurial > hg > graal-compiler
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) {