hotspot/src/share/vm/ci/ciMethod.hpp
changeset 46542 73dd19b96b5d
parent 44738 11431bbc9549
child 46727 6e4a84748e2c
--- a/hotspot/src/share/vm/ci/ciMethod.hpp	Thu Jun 15 09:52:44 2017 +0200
+++ b/hotspot/src/share/vm/ci/ciMethod.hpp	Fri Jun 09 10:51:52 2017 +0200
@@ -40,6 +40,14 @@
 class BCEscapeAnalyzer;
 class InlineTree;
 
+// Whether profiling found an oop to be always, never or sometimes
+// null
+enum ProfilePtrKind {
+  ProfileAlwaysNull,
+  ProfileNeverNull,
+  ProfileMaybeNull
+};
+
 // ciMethod
 //
 // This class represents a Method* in the HotSpot virtual
@@ -248,9 +256,9 @@
   int           interpreter_call_site_count(int bci);
 
   // Does type profiling provide any useful information at this point?
-  bool          argument_profiled_type(int bci, int i, ciKlass*& type, bool& maybe_null);
-  bool          parameter_profiled_type(int i, ciKlass*& type, bool& maybe_null);
-  bool          return_profiled_type(int bci, ciKlass*& type, bool& maybe_null);
+  bool          argument_profiled_type(int bci, int i, ciKlass*& type, ProfilePtrKind& ptr_kind);
+  bool          parameter_profiled_type(int i, ciKlass*& type, ProfilePtrKind& ptr_kind);
+  bool          return_profiled_type(int bci, ciKlass*& type, ProfilePtrKind& ptr_kind);
 
   ciField*      get_field_at_bci( int bci, bool &will_link);
   ciMethod*     get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature);