src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java Wed Dec 13 11:59:55 2017 -0800
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java Wed Dec 13 12:28:22 2017 -0800
@@ -60,7 +60,8 @@
// Assigning canDeopt during constructor, because it must never change during lifetime of
// the node.
- this.canDeopt = ((IntegerStamp) getY().stamp(NodeView.DEFAULT)).contains(0);
+ IntegerStamp yStamp = (IntegerStamp) getY().stamp(NodeView.DEFAULT);
+ this.canDeopt = yStamp.contains(0) || yStamp.contains(-1);
}
public final Op getOp() {