Skip to content

Commit 93b1b90

Browse files
committed
iv overflow detection: iv have ranges in entire trip count space
1 parent 41271d9 commit 93b1b90

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/nodes/loop/CountedLoopInfo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -636,8 +636,8 @@ public boolean ivCanNeverOverflow(InductionVariable iv) {
636636
if (iv.isConstantInit() && isConstantMaxTripCount() && iv.isConstantStride()) {
637637
try {
638638
final int bits = IntegerStamp.getBits(iv.valueNode().stamp(NodeView.DEFAULT));
639-
long tripCountMinus1 = LoopUtility.subtractExact(bits, LoopUtility.tripCountSignedExact(this), 1);
640-
long stripTimesTripCount = LoopUtility.multiplyExact(bits, iv.constantStride(), tripCountMinus1);
639+
final long signedTripCount = LoopUtility.tripCountSignedExact(this);
640+
final long stripTimesTripCount = LoopUtility.multiplyExact(bits, iv.constantStride(), signedTripCount);
641641
@SuppressWarnings("unused")
642642
long extremum = LoopUtility.addExact(bits, stripTimesTripCount, iv.initNode().asJavaConstant().asLong());
643643
return true;

0 commit comments

Comments
 (0)