# HG changeset patch # User Roland Schatz # Date 1434033942 -7200 # Node ID 2ee70257c9c4dad458107a4327565968a296d349 # Parent 882bfe9a2f9d47b5789d486ad74bacf72322fbb5 Don't create IsNull guard for values with a nonNull stamp. diff -r 882bfe9a2f9d -r 2ee70257c9c4 graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Thu Jun 11 13:19:51 2015 +0200 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Thu Jun 11 16:45:42 2015 +0200 @@ -2974,6 +2974,13 @@ } private ValueNode appendNullCheck(ValueNode object) { + if (object.stamp() instanceof AbstractPointerStamp) { + AbstractPointerStamp stamp = (AbstractPointerStamp) object.stamp(); + if (stamp.nonNull()) { + return object; + } + } + IsNullNode isNull = append(new IsNullNode(object)); FixedGuardNode fixedGuard = append(new FixedGuardNode(isNull, DeoptimizationReason.NullCheckException, DeoptimizationAction.InvalidateReprofile, true)); return append(new PiNode(object, object.stamp().join(StampFactory.objectNonNull()), fixedGuard));