< prev index next >

src/hotspot/share/opto/parse1.cpp

Print this page

        

*** 611,631 **** for (uint i = 0; i < (uint)arg_size_sig; i++) { Node* parm = map()->in(i); const Type* t = _gvn.type(parm); if (t->is_valuetypeptr()) { // Create ValueTypeNode from the oop and replace the parameter ! Node* null_ctl = top(); ! Node* not_null_obj = null_check_common(parm, 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(parm, null()); ! uncommon_trap(Deoptimization::Reason_null_check, Deoptimization::Action_none); ! } ! // Value type oop may point to the TLVB ! Node* vt = ValueTypeNode::make_from_oop(this, not_null_obj, t->value_klass(), /* null_check */ false, /* buffer_check */ true); map()->replace_edge(parm, vt); } } entry_map = map(); // capture any changes performed by method setup code --- 611,621 ---- for (uint i = 0; i < (uint)arg_size_sig; i++) { Node* parm = map()->in(i); const Type* t = _gvn.type(parm); if (t->is_valuetypeptr()) { // Create ValueTypeNode from the oop and replace the parameter ! Node* vt = ValueTypeNode::make_from_oop(this, parm, t->value_klass(), /* null_check */ false, /* buffer_check */ true); map()->replace_edge(parm, vt); } } entry_map = map(); // capture any changes performed by method setup code
< prev index next >