< prev index next >
src/share/vm/ci/ciMethodData.hpp
Print this page
*** 86,95 ****
--- 86,106 ----
} else {
return NULL;
}
}
+ static ProfilePtrKind ptr_kind(intptr_t v) {
+ bool maybe_null = TypeEntries::was_null_seen(v);
+ if (!maybe_null) {
+ return ProfileNeverNull;
+ } else if (TypeEntries::is_type_none(v)) {
+ return ProfileAlwaysNull;
+ } else {
+ return ProfileMaybeNull;
+ }
+ }
+
static intptr_t with_status(ciKlass* k, intptr_t in) {
return TypeEntries::with_status((intptr_t)k, in);
}
#ifndef PRODUCT
*** 103,114 ****
ciKlass* valid_type(int i) const {
return valid_ciklass(type(i));
}
! bool maybe_null(int i) const {
! return was_null_seen(type(i));
}
#ifndef PRODUCT
void print_data_on(outputStream* st) const;
#endif
--- 114,125 ----
ciKlass* valid_type(int i) const {
return valid_ciklass(type(i));
}
! ProfilePtrKind ptr_kind(int i) const {
! return ciTypeEntries::ptr_kind(type(i));
}
#ifndef PRODUCT
void print_data_on(outputStream* st) const;
#endif
*** 120,131 ****
ciKlass* valid_type() const {
return valid_ciklass(type());
}
! bool maybe_null() const {
! return was_null_seen(type());
}
#ifndef PRODUCT
void print_data_on(outputStream* st) const;
#endif
--- 131,142 ----
ciKlass* valid_type() const {
return valid_ciklass(type());
}
! ProfilePtrKind ptr_kind() const {
! return ciTypeEntries::ptr_kind(type());
}
#ifndef PRODUCT
void print_data_on(outputStream* st) const;
#endif
*** 165,180 ****
ciKlass* valid_return_type() const {
assert(has_return(), "no ret type profiling data");
return ret()->valid_type();
}
! bool argument_maybe_null(int i) const {
! return args()->maybe_null(i);
}
! bool return_maybe_null() const {
! return ret()->maybe_null();
}
#ifndef PRODUCT
void print_data_on(outputStream* st, const char* extra = NULL) const;
#endif
--- 176,191 ----
ciKlass* valid_return_type() const {
assert(has_return(), "no ret type profiling data");
return ret()->valid_type();
}
! ProfilePtrKind argument_ptr_kind(int i) const {
! return args()->ptr_kind(i);
}
! ProfilePtrKind return_ptr_kind() const {
! return ret()->ptr_kind();
}
#ifndef PRODUCT
void print_data_on(outputStream* st, const char* extra = NULL) const;
#endif
*** 279,294 ****
ciKlass* valid_return_type() const {
assert(has_return(), "no ret type profiling data");
return ret()->valid_type();
}
! bool argument_maybe_null(int i) const {
! return args()->maybe_null(i);
}
! bool return_maybe_null() const {
! return ret()->maybe_null();
}
#ifndef PRODUCT
void print_data_on(outputStream* st, const char* extra = NULL) const;
#endif
--- 290,305 ----
ciKlass* valid_return_type() const {
assert(has_return(), "no ret type profiling data");
return ret()->valid_type();
}
! ProfilePtrKind argument_ptr_kind(int i) const {
! return args()->ptr_kind(i);
}
! ProfilePtrKind return_ptr_kind() const {
! return ret()->ptr_kind();
}
#ifndef PRODUCT
void print_data_on(outputStream* st, const char* extra = NULL) const;
#endif
*** 332,343 ****
ciKlass* valid_parameter_type(int i) const {
return parameters()->valid_type(i);
}
! bool parameter_maybe_null(int i) const {
! return parameters()->maybe_null(i);
}
#ifndef PRODUCT
void print_data_on(outputStream* st, const char* extra = NULL) const;
#endif
--- 343,354 ----
ciKlass* valid_parameter_type(int i) const {
return parameters()->valid_type(i);
}
! ProfilePtrKind parameter_ptr_kind(int i) const {
! return parameters()->ptr_kind(i);
}
#ifndef PRODUCT
void print_data_on(outputStream* st, const char* extra = NULL) const;
#endif
< prev index next >