Mercurial > hg > graal-jvmci-8
changeset 17046:c72182ae4476
Remove redundant Begin nodes before LoopExit.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Thu, 04 Sep 2014 13:44:45 +0200 |
parents | 7c12f8aae0c9 |
children | e8c37988a819 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopExitNode.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopExitNode.java Thu Sep 04 13:33:04 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopExitNode.java Thu Sep 04 13:44:45 2014 +0200 @@ -46,6 +46,11 @@ @Override public void simplify(SimplifierTool tool) { - // + Node prev = this.predecessor(); + while (prev.getNodeClass().is(BeginNode.class) && prev.usages().isEmpty()) { + BeginNode begin = (BeginNode) prev; + prev = prev.predecessor(); + graph().removeFixed(begin); + } } }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java Thu Sep 04 13:33:04 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java Thu Sep 04 13:44:45 2014 +0200 @@ -147,11 +147,11 @@ } } } - survivingSuccessor.simplify(simplifierTool); Debug.log("Converting deopt on %-5s branch of %s to guard for remaining branch %s.", deoptBegin == ifNode.trueSuccessor() ? "true" : "false", ifNode, otherBegin); FixedNode next = pred.next(); pred.setNext(guard); guard.setNext(next); + survivingSuccessor.simplify(simplifierTool); return; }