Mercurial > hg > graal-compiler
changeset 21922:2ee70257c9c4
Don't create IsNull guard for values with a nonNull stamp.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Thu, 11 Jun 2015 16:45:42 +0200 |
parents | 882bfe9a2f9d |
children | 1b695a36c4d5 |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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));