Mercurial > hg > graal-compiler
changeset 6585:5c1787a0be00
removing intermediate materializations is disabled when the compare input to an if has more than one usage
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 29 Oct 2012 14:44:53 +0100 |
parents | a3eb814ea564 |
children | cfd5c59df26a |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java |
diffstat | 1 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Mon Oct 29 14:41:20 2012 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Mon Oct 29 14:44:53 2012 +0100 @@ -224,6 +224,10 @@ } CompareNode compare = (CompareNode) condition(); + if (compare.usages().count() != 1) { + return false; + } + if (!(predecessor() instanceof MergeNode)) { return false; } @@ -287,6 +291,12 @@ connectEnds(trueEnds, phiValues, trueSuccessor, merge, tool); GraphUtil.killCFG(merge); + + assert !merge.isAlive() : merge; + assert !phi.isAlive() : phi; + assert !compare.isAlive() : compare; + assert !this.isAlive() : this; + return true; }