< prev index next >
src/hotspot/share/opto/type.cpp
Print this page
*** 2033,2049 ****
// Use get_const_type here because it respects UseUniqueSubclasses:
if (vt_fields_for_recv) {
ciValueKlass* vk = (ciValueKlass*)recv;
collect_value_fields(vk, field_array, pos);
} else {
- if (recv->is_valuetype()) {
- // TODO For now, we just deoptimize if the value type receiver is null
- field_array[pos++] = get_const_type(recv);
- } else {
field_array[pos++] = get_const_type(recv)->join_speculative(TypePtr::NOTNULL);
}
- }
} else {
field_array = fields(arg_cnt + vt_extra);
}
int i = 0;
--- 2033,2044 ----
*** 2076,2088 ****
if (vt_fields_as_args) {
ciValueKlass* vk = (ciValueKlass*)type;
collect_value_fields(vk, field_array, pos);
} else {
// Value types arguments cannot be NULL
! // field_array[pos++] = get_const_type(type)->join_speculative(TypePtr::NOTNULL);
! // TODO they can be NULL in LWorld
! field_array[pos++] = get_const_type(type);
}
break;
}
default:
ShouldNotReachHere();
--- 2071,2081 ----
if (vt_fields_as_args) {
ciValueKlass* vk = (ciValueKlass*)type;
collect_value_fields(vk, field_array, pos);
} else {
// Value types arguments cannot be NULL
! field_array[pos++] = get_const_type(type)->join_speculative(TypePtr::NOTNULL);
}
break;
}
default:
ShouldNotReachHere();
< prev index next >