Mercurial > hg > truffle
changeset 17037:ff0ec169843b
Fixed loop phis with itself as single back value did not canonicalize. (contributed by Lukas Stadler)
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Wed, 03 Sep 2014 14:58:53 +0200 |
parents | 7b45e33b7986 |
children | 3b3e768a2b92 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PhiNode.java |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PhiNode.java Wed Sep 03 14:58:53 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PhiNode.java Wed Sep 03 14:58:53 2014 +0200 @@ -193,7 +193,13 @@ @Override public void simplify(SimplifierTool tool) { - ValueNode singleValue = singleValue(); + ValueNode singleValue; + + if (isLoopPhi() && singleBackValue() == this) { + singleValue = firstValue(); + } else { + singleValue = singleValue(); + } if (singleValue != MULTIPLE_VALUES) { for (Node node : usages().snapshot()) {