src/share/vm/opto/library_call.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/opto/library_call.cpp
src/share/vm/opto/library_call.cpp
Print this page
rev 6139 : 8031755: Type speculation should be used to optimize explicit null checks
Summary: feed profiling data about reference nullness to type speculation.
Reviewed-by:
*** 4656,4674 ****
// Do we already have or could we have type information for dest
bool could_have_dest = has_dest;
ciKlass* src_k = NULL;
if (!has_src) {
! src_k = src_type->speculative_type();
if (src_k != NULL && src_k->is_array_klass()) {
could_have_src = true;
}
}
ciKlass* dest_k = NULL;
if (!has_dest) {
! dest_k = dest_type->speculative_type();
if (dest_k != NULL && dest_k->is_array_klass()) {
could_have_dest = true;
}
}
--- 4656,4674 ----
// Do we already have or could we have type information for dest
bool could_have_dest = has_dest;
ciKlass* src_k = NULL;
if (!has_src) {
! src_k = src_type->speculative_type_not_null();
if (src_k != NULL && src_k->is_array_klass()) {
could_have_src = true;
}
}
ciKlass* dest_k = NULL;
if (!has_dest) {
! dest_k = dest_type->speculative_type_not_null();
if (dest_k != NULL && dest_k->is_array_klass()) {
could_have_dest = true;
}
}
*** 4736,4752 ****
// Do we have the exact type of dest?
bool could_have_dest = dest_spec;
ciKlass* src_k = top_src->klass();
ciKlass* dest_k = top_dest->klass();
if (!src_spec) {
! src_k = src_type->speculative_type();
if (src_k != NULL && src_k->is_array_klass()) {
could_have_src = true;
}
}
if (!dest_spec) {
! dest_k = dest_type->speculative_type();
if (dest_k != NULL && dest_k->is_array_klass()) {
could_have_dest = true;
}
}
if (could_have_src && could_have_dest) {
--- 4736,4752 ----
// Do we have the exact type of dest?
bool could_have_dest = dest_spec;
ciKlass* src_k = top_src->klass();
ciKlass* dest_k = top_dest->klass();
if (!src_spec) {
! src_k = src_type->speculative_type_not_null();
if (src_k != NULL && src_k->is_array_klass()) {
could_have_src = true;
}
}
if (!dest_spec) {
! dest_k = dest_type->speculative_type_not_null();
if (dest_k != NULL && dest_k->is_array_klass()) {
could_have_dest = true;
}
}
if (could_have_src && could_have_dest) {
src/share/vm/opto/library_call.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File