src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopTransformations.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopTransformations.java Tue Sep 24 08:54:08 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopTransformations.java Tue Sep 24 12:47:15 2019 -0400
@@ -62,10 +62,10 @@
import org.graalvm.compiler.nodes.calc.AddNode;
import org.graalvm.compiler.nodes.calc.CompareNode;
import org.graalvm.compiler.nodes.calc.ConditionalNode;
-import org.graalvm.compiler.nodes.calc.IntegerLessThanNode;
import org.graalvm.compiler.nodes.extended.OpaqueNode;
import org.graalvm.compiler.nodes.extended.SwitchNode;
import org.graalvm.compiler.nodes.spi.CoreProviders;
+import org.graalvm.compiler.nodes.util.IntegerHelper;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
public abstract class LoopTransformations {
@@ -359,11 +359,12 @@
ValueNode newLimit = AddNode.add(preCounted.getStart(), preCounted.getCounter().strideNode(), NodeView.DEFAULT);
// Fetch the variable we are not replacing and configure the one we are
ValueNode ub = preCounted.getLimit();
+ IntegerHelper helper = preCounted.getCounterIntegerHelper();
LogicNode entryCheck;
if (preCounted.getDirection() == Direction.Up) {
- entryCheck = IntegerLessThanNode.create(newLimit, ub, NodeView.DEFAULT);
+ entryCheck = helper.createCompareNode(newLimit, ub, NodeView.DEFAULT);
} else {
- entryCheck = IntegerLessThanNode.create(ub, newLimit, NodeView.DEFAULT);
+ entryCheck = helper.createCompareNode(ub, newLimit, NodeView.DEFAULT);
}
newLimit = ConditionalNode.create(entryCheck, newLimit, ub, NodeView.DEFAULT);
// Re-wire the condition with the new limit