Mercurial > hg > graal-compiler
changeset 13794:2eb56f87b01e
add GraphUtil.removeFixedWithUnusedInputs
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 29 Jan 2014 10:45:43 +0100 |
parents | e99fccb03926 |
children | cfe85a075924 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.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/LockEliminationPhase.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java |
diffstat | 4 files changed, 11 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java Tue Jan 28 21:37:29 2014 -0500 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java Wed Jan 29 10:45:43 2014 +0100 @@ -78,10 +78,7 @@ ProxyNode proxy = (ProxyNode) usage; proxy.replaceAndDelete(proxy.value()); } - FixedNode next = osr.next(); - osr.setNext(null); - ((FixedWithNextNode) osr.predecessor()).setNext(next); - GraphUtil.killWithUnusedFloatingInputs(osr); + GraphUtil.removeFixedWithUnusedInputs(osr); Debug.dump(graph, "OnStackReplacement loop peeling result"); } while (true);
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Tue Jan 28 21:37:29 2014 -0500 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Wed Jan 29 10:45:43 2014 +0100 @@ -137,6 +137,13 @@ } } + public static void removeFixedWithUnusedInputs(FixedWithNextNode fixed) { + FixedNode next = fixed.next(); + fixed.setNext(null); + fixed.replaceAtPredecessor(next); + killWithUnusedFloatingInputs(fixed); + } + public static void checkRedundantPhi(PhiNode phiNode) { if (phiNode.isDeleted() || phiNode.valueCount() == 1) { return;
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LockEliminationPhase.java Tue Jan 28 21:37:29 2014 -0500 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LockEliminationPhase.java Wed Jan 29 10:45:43 2014 +0100 @@ -36,19 +36,8 @@ if (next instanceof MonitorEnterNode) { MonitorEnterNode monitorEnterNode = (MonitorEnterNode) next; if (monitorEnterNode.object() == node.object()) { - FixedNode monitorEnterSuccessor = monitorEnterNode.next(); - monitorEnterNode.setNext(null); - ((FixedWithNextNode) node.predecessor()).setNext(monitorEnterSuccessor); - FrameState stateAfterFirst = node.stateAfter(); - FrameState stateAfterSecond = monitorEnterNode.stateAfter(); - node.safeDelete(); - monitorEnterNode.safeDelete(); - if (stateAfterFirst.usages().isEmpty()) { - GraphUtil.killWithUnusedFloatingInputs(stateAfterFirst); - } - if (stateAfterSecond.usages().isEmpty()) { - GraphUtil.killWithUnusedFloatingInputs(stateAfterSecond); - } + GraphUtil.removeFixedWithUnusedInputs(monitorEnterNode); + GraphUtil.removeFixedWithUnusedInputs(node); } } }
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Tue Jan 28 21:37:29 2014 -0500 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Wed Jan 29 10:45:43 2014 +0100 @@ -569,11 +569,7 @@ LoopTransformations.fullUnroll(loop, phaseContext, new CanonicalizerPhase(true)); new CanonicalizerPhase(true).applyIncremental(snippetCopy, phaseContext, mark); } - FixedNode explodeLoopNext = explodeLoop.next(); - explodeLoop.clearSuccessors(); - explodeLoop.replaceAtPredecessor(explodeLoopNext); - explodeLoop.replaceAtUsages(null); - GraphUtil.killCFG(explodeLoop); + GraphUtil.removeFixedWithUnusedInputs(explodeLoop); exploded = true; } } while (exploded);