Mercurial > hg > truffle
changeset 16450:b650d0a98146
new GraphUtil.unlinkFixedNode utility method
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Thu, 10 Jul 2014 14:04:01 +0200 |
parents | d8d4120c62ae |
children | 394b949fec5a |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java |
diffstat | 5 files changed, 13 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Thu Jul 10 13:42:41 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Thu Jul 10 14:04:01 2014 +0200 @@ -224,9 +224,7 @@ if (nodeClass.inputsEqual(trueNext, falseNext) && nodeClass.valueEqual(trueNext, falseNext)) { falseNext.replaceAtUsages(trueNext); graph().removeFixed(falseNext); - FixedNode next = trueNext.next(); - trueNext.setNext(null); - trueNext.replaceAtPredecessor(next); + GraphUtil.unlinkFixedNode(trueNext); graph().addBeforeFixed(this, trueNext); for (Node usage : trueNext.usages().snapshot()) { if (usage.isAlive()) {
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Thu Jul 10 13:42:41 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Thu Jul 10 14:04:01 2014 +0200 @@ -259,9 +259,7 @@ ((BeginNode) node).prepareDelete(); } assert node.usages().isEmpty() : node + " " + node.usages(); - FixedNode next = node.next(); - node.setNext(null); - node.replaceAtPredecessor(next); + GraphUtil.unlinkFixedNode(node); node.safeDelete(); } @@ -288,9 +286,7 @@ public void replaceFixedWithFloating(FixedWithNextNode node, FloatingNode replacement) { assert node != null && replacement != null && node.isAlive() && replacement.isAlive() : "cannot replace " + node + " with " + replacement; - FixedNode next = node.next(); - node.setNext(null); - node.replaceAtPredecessor(next); + GraphUtil.unlinkFixedNode(node); node.replaceAtUsages(replacement); node.safeDelete(); }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Thu Jul 10 13:42:41 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Thu Jul 10 14:04:01 2014 +0200 @@ -157,10 +157,15 @@ killWithUnusedFloatingInputs(stateAfter); } } + unlinkFixedNode(fixed); + killWithUnusedFloatingInputs(fixed); + } + + public static void unlinkFixedNode(FixedWithNextNode fixed) { + assert fixed.next() != null && fixed.predecessor() != null && fixed.isAlive(); FixedNode next = fixed.next(); fixed.setNext(null); fixed.replaceAtPredecessor(next); - killWithUnusedFloatingInputs(fixed); } public static void checkRedundantPhi(PhiNode phiNode) {
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java Thu Jul 10 13:42:41 2014 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java Thu Jul 10 14:04:01 2014 +0200 @@ -347,9 +347,7 @@ for (Node checkCastUsage : checkCastNode.usages().snapshot()) { checkCheckCastUsage(graph, newInstance, checkCastNode, checkCastUsage); } - FixedNode next = checkCastNode.next(); - checkCastNode.setNext(null); - checkCastNode.replaceAtPredecessor(next); + GraphUtil.unlinkFixedNode(checkCastNode); GraphUtil.killCFG(checkCastNode); } }
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java Thu Jul 10 13:42:41 2014 +0200 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java Thu Jul 10 14:04:01 2014 +0200 @@ -29,6 +29,7 @@ import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.debug.*; import com.oracle.graal.nodes.java.*; +import com.oracle.graal.nodes.util.*; import com.oracle.graal.nodes.virtual.*; import com.oracle.graal.phases.common.*; @@ -206,9 +207,7 @@ @Override public void apply(StructuredGraph graph, ArrayList<Node> obsoleteNodes) { assert node.isAlive(); - FixedNode next = node.next(); - node.setNext(null); - node.replaceAtPredecessor(next); + GraphUtil.unlinkFixedNode(node); assert obsoleteNodes.add(node); } }); @@ -241,9 +240,7 @@ } node.replaceAtUsages(replacement); if (node instanceof FixedWithNextNode) { - FixedNode next = ((FixedWithNextNode) node).next(); - ((FixedWithNextNode) node).setNext(null); - node.replaceAtPredecessor(next); + GraphUtil.unlinkFixedNode((FixedWithNextNode) node); assert obsoleteNodes.add(node); } }