Mercurial > hg > graal-compiler
changeset 23227:2415a168a090
Simplify GraphUtil#isFloatingNode.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 01 Jan 2016 14:44:21 +0100 |
parents | 4dd5d43dea1e |
children | 2e3a5ffe5654 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractMergeNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeBlockState.java |
diffstat | 4 files changed, 8 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractMergeNode.java Thu Dec 31 00:25:19 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractMergeNode.java Fri Jan 01 14:44:21 2016 +0100 @@ -105,7 +105,7 @@ } ValueNode removedValue = phi.valueAt(predIndex); phi.removeInput(predIndex); - if (removedValue != null && removedValue.isAlive() && removedValue.hasNoUsages() && GraphUtil.isFloatingNode().apply(removedValue)) { + if (removedValue != null && removedValue.isAlive() && removedValue.hasNoUsages() && GraphUtil.isFloatingNode(removedValue)) { GraphUtil.killWithUnusedFloatingInputs(removedValue); } }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Thu Dec 31 00:25:19 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Fri Jan 01 14:44:21 2016 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,6 @@ import com.oracle.graal.graph.Node; import com.oracle.graal.graph.NodeWorkList; import com.oracle.graal.graph.iterators.NodeIterable; -import com.oracle.graal.graph.iterators.NodePredicate; import com.oracle.graal.graph.spi.SimplifierTool; import com.oracle.graal.nodes.AbstractBeginNode; import com.oracle.graal.nodes.AbstractEndNode; @@ -60,14 +59,6 @@ public class GraphUtil { - private static final NodePredicate FLOATING = new NodePredicate() { - - @Override - public final boolean apply(Node n) { - return !(n instanceof FixedNode); - } - }; - public static void killCFG(Node node, SimplifierTool tool) { assert node.isAlive(); if (node instanceof AbstractEndNode) { @@ -133,8 +124,8 @@ } } - public static NodePredicate isFloatingNode() { - return FLOATING; + public static boolean isFloatingNode(Node n) { + return !(n instanceof FixedNode); } private static void propagateKill(Node node) { @@ -496,7 +487,7 @@ } public static boolean tryKillUnused(Node node) { - if (node.isAlive() && isFloatingNode().apply(node) && node.hasNoUsages()) { + if (node.isAlive() && isFloatingNode(node) && node.hasNoUsages()) { killWithUnusedFloatingInputs(node); return true; }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java Thu Dec 31 00:25:19 2015 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java Fri Jan 01 14:44:21 2016 +0100 @@ -54,6 +54,7 @@ * This Phase processes the graph in post order, assigning the {@link FrameState} from the last * {@link StateSplit} node to {@link DeoptimizingNode DeoptimizingNodes}. */ +@SuppressWarnings("unused") public class FrameStateAssignmentPhase extends Phase { private static class FrameStateAssignmentClosure extends NodeIteratorClosure<FrameState> { @@ -125,9 +126,8 @@ } private static boolean checkFixedDeopts(StructuredGraph graph) { - NodePredicate isFloatingNode = GraphUtil.isFloatingNode(); for (Node n : graph.getNodes().filterInterface(DeoptimizingNode.class)) { - if (((DeoptimizingNode) n).canDeoptimize() && isFloatingNode.apply(n)) { + if (((DeoptimizingNode) n).canDeoptimize() && GraphUtil.isFloatingNode(n)) { return false; } }
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeBlockState.java Thu Dec 31 00:25:19 2015 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeBlockState.java Fri Jan 01 14:44:21 2016 +0100 @@ -150,6 +150,7 @@ List<ValueNode> otherAllocations = new ArrayList<>(2); List<Boolean> ensureVirtual = new ArrayList<>(2); materializeWithCommit(fixed, virtual, objects, locks, values, ensureVirtual, otherAllocations); + assert fixed != null; materializeEffects.add("materializeBefore", (graph, obsoleteNodes) -> { for (ValueNode otherAllocation : otherAllocations) {