< prev index next >
src/hotspot/share/opto/parse1.cpp
Print this page
@@ -2375,25 +2375,15 @@
// Handle exact value type to Object return
assert(tr->isa_instptr()->klass()->is_java_lang_Object(), "must be java.lang.Object");
ValueTypeNode* vt = value->as_ValueType()->allocate(this)->as_ValueType();
value = ValueTypePtrNode::make_from_value_type(_gvn, vt);
} else if (phi->bottom_type()->isa_valuetype() && !value->is_ValueType()) {
- Node* null_ctl = top();
- Node* not_null_obj = null_check_common(value, T_VALUETYPE, false, &null_ctl, false);
- if (null_ctl != top()) {
- // TODO For now, we just deoptimize if value type is NULL
- PreserveJVMState pjvms(this);
- set_control(null_ctl);
- replace_in_map(value, null());
+ assert(value->bottom_type()->remove_speculative() == TypePtr::NULL_PTR, "Anything other than null?");
inc_sp(1);
uncommon_trap(Deoptimization::Reason_null_check, Deoptimization::Action_none);
- }
- if (stopped()) {
- value = null();
- } else {
- value = ValueTypeNode::make_from_oop(this, not_null_obj, phi->bottom_type()->isa_valuetype()->value_klass());
- }
+ dec_sp(1);
+ return;
} else {
// Handle returns of oop-arrays to an arrays-of-interface return
const TypeInstPtr* phi_tip;
const TypeInstPtr* val_tip;
Type::get_arrays_base_elements(phi->bottom_type(), value->bottom_type(), &phi_tip, &val_tip);
< prev index next >