< prev index next >

src/hotspot/share/opto/type.cpp

Print this page

        

@@ -264,11 +264,16 @@
   case T_ADDRESS:
     assert(type->is_return_address(), "");
     return TypeRawPtr::make((address)(intptr_t)type->as_return_address()->bci());
 
   case T_VALUETYPE:
+    if (type->as_value_klass()->is_scalarizable()) {
     return TypeValueType::make(type->as_value_klass());
+    } else {
+      // Value types cannot be null
+      return TypeOopPtr::make_from_klass(type->as_klass())->join_speculative(TypePtr::NOTNULL);
+    }
 
   default:
     // make sure we did not mix up the cases:
     assert(type != ciTypeFlow::StateVector::bottom_type(), "");
     assert(type != ciTypeFlow::StateVector::top_type(), "");
< prev index next >