changeset 22103:6772b63f4dac

Empty object stamps should always be nonNull, assert it.
author Gilles Duboscq <gilles.m.duboscq@oracle.com>
date Mon, 22 Jun 2015 15:00:10 +0200
parents 4918409846d8
children 5e13c10edc1b cb7d2d509b01
files graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractObjectStamp.java graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractPointerStamp.java
diffstat 2 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractObjectStamp.java	Fri Jun 26 12:24:47 2015 +0200
+++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractObjectStamp.java	Mon Jun 22 15:00:10 2015 +0200
@@ -225,12 +225,12 @@
             joinExactType = false;
         }
         if (joinExactType && joinType == null) {
-            return StampFactory.empty(Kind.Object);
+            return empty();
         }
         if (joinAlwaysNull && joinNonNull) {
-            return StampFactory.empty(Kind.Object);
+            return empty();
         } else if (joinExactType && !isConcreteType(joinType)) {
-            return StampFactory.empty(Kind.Object);
+            return empty();
         }
         if (Objects.equals(joinType, type) && joinExactType == exactType && joinNonNull == nonNull() && joinAlwaysNull == alwaysNull()) {
             return this;
--- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractPointerStamp.java	Fri Jun 26 12:24:47 2015 +0200
+++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractPointerStamp.java	Mon Jun 22 15:00:10 2015 +0200
@@ -38,7 +38,8 @@
     }
 
     public boolean nonNull() {
-        return nonNull || this.isEmpty();
+        assert !this.isEmpty() || nonNull;
+        return nonNull;
     }
 
     public boolean alwaysNull() {