< prev index next >
src/share/vm/ci/ciMethodData.hpp
Print this page
@@ -86,10 +86,21 @@
} 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,12 +114,12 @@
ciKlass* valid_type(int i) const {
return valid_ciklass(type(i));
}
- bool maybe_null(int i) const {
- return was_null_seen(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,12 +131,12 @@
ciKlass* valid_type() const {
return valid_ciklass(type());
}
- bool maybe_null() const {
- return was_null_seen(type());
+ ProfilePtrKind ptr_kind() const {
+ return ciTypeEntries::ptr_kind(type());
}
#ifndef PRODUCT
void print_data_on(outputStream* st) const;
#endif
@@ -165,16 +176,16 @@
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);
+ ProfilePtrKind argument_ptr_kind(int i) const {
+ return args()->ptr_kind(i);
}
- bool return_maybe_null() const {
- return ret()->maybe_null();
+ ProfilePtrKind return_ptr_kind() const {
+ return ret()->ptr_kind();
}
#ifndef PRODUCT
void print_data_on(outputStream* st, const char* extra = NULL) const;
#endif
@@ -279,16 +290,16 @@
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);
+ ProfilePtrKind argument_ptr_kind(int i) const {
+ return args()->ptr_kind(i);
}
- bool return_maybe_null() const {
- return ret()->maybe_null();
+ ProfilePtrKind return_ptr_kind() const {
+ return ret()->ptr_kind();
}
#ifndef PRODUCT
void print_data_on(outputStream* st, const char* extra = NULL) const;
#endif
@@ -332,12 +343,12 @@
ciKlass* valid_parameter_type(int i) const {
return parameters()->valid_type(i);
}
- bool parameter_maybe_null(int i) const {
- return parameters()->maybe_null(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 >