< 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 >