--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IsNullNode.java 2017-11-03 23:57:10.599527928 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IsNullNode.java 2017-11-03 23:57:10.272513294 -0700 @@ -121,7 +121,8 @@ @Override public Stamp getSucceedingStampForValue(boolean negated) { - AbstractPointerStamp pointerStamp = (AbstractPointerStamp) getValue().stamp(); + // Ignore any more precise input stamp since canonicalization will skip through PiNodes + AbstractPointerStamp pointerStamp = (AbstractPointerStamp) getValue().stamp().unrestricted(); return negated ? pointerStamp.asNonNull() : pointerStamp.asAlwaysNull(); }