Mercurial > hg > graal-compiler
changeset 19918:c278c8c727aa
More checks that InductionVariable.direction is valid
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Mon, 16 Mar 2015 15:51:43 -0700 |
parents | 6575b4e3f629 |
children | df0608c34899 |
files | graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java |
diffstat | 2 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java Mon Mar 16 15:46:28 2015 -0700 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java Mon Mar 16 15:51:43 2015 -0700 @@ -60,6 +60,7 @@ if (iv.direction() == Direction.Up) { range = add(graph, range, ConstantNode.forIntegerStamp(stamp, 1, graph)); } else { + assert iv.direction() == Direction.Down; range = sub(graph, range, ConstantNode.forIntegerStamp(stamp, 1, graph)); } } @@ -76,6 +77,7 @@ } public long constantMaxTripCount() { + assert iv.direction() != null; long off = oneOff ? iv.direction() == Direction.Up ? 1 : -1 : 0; long max = (((ConstantNode) end).asJavaConstant().asLong() + off - iv.constantInit()) / iv.constantStride(); return Math.max(0, max);
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Mon Mar 16 15:46:28 2015 -0700 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Mon Mar 16 15:51:43 2015 -0700 @@ -218,11 +218,12 @@ if (initStamp.upperBound() > limitStamp.lowerBound()) { return false; } - } else { - assert iv.direction() == Direction.Down; + } else if (iv.direction() == Direction.Down) { if (initStamp.lowerBound() < limitStamp.upperBound()) { return false; } + } else { + return false; } oneOff = true; break;