src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragmentInside.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragmentInside.java Thu Oct 31 14:23:06 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragmentInside.java Thu Oct 31 16:54:16 2019 -0700
@@ -233,7 +233,7 @@
}
}
mainLoopBegin.setUnrollFactor(mainLoopBegin.getUnrollFactor() * 2);
- mainLoopBegin.setLoopFrequency(mainLoopBegin.loopFrequency() / 2);
+ mainLoopBegin.setLoopFrequency(Math.max(1.0, mainLoopBegin.loopFrequency() / 2));
graph.getDebug().dump(DebugContext.DETAILED_LEVEL, graph, "LoopPartialUnroll %s", loop);
mainLoopBegin.getDebug().dump(DebugContext.VERBOSE_LEVEL, mainLoopBegin.graph(), "After insertWithinAfter %s", mainLoopBegin);
@@ -438,7 +438,7 @@
for (int i = 0; i < phi.valueCount(); i++) {
ValueNode v = phi.valueAt(i);
if (loopBegin.isPhiAtMerge(v)) {
- PhiNode newV = peel.getDuplicatedNode((ValuePhiNode) v);
+ PhiNode newV = peel.getDuplicatedNode((PhiNode) v);
if (newV != null) {
phi.setValueAt(i, newV);
}