diff src/share/vm/ci/ciMethodData.hpp @ 12966:b2ee5dc63353

8024070: C2 needs some form of type speculation Summary: record unused type profile information with type system, propagate and use it. Reviewed-by: kvn, twisti
author roland
date Wed, 23 Oct 2013 12:40:23 +0200
parents 5ccbab1c69f3
children 6e1826d5c23e
line wrap: on
line diff
--- a/src/share/vm/ci/ciMethodData.hpp	Wed Oct 23 10:00:39 2013 +0200
+++ b/src/share/vm/ci/ciMethodData.hpp	Wed Oct 23 12:40:23 2013 +0200
@@ -100,6 +100,10 @@
     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
@@ -113,6 +117,10 @@
     return valid_ciklass(type());
   }
 
+  bool maybe_null() const {
+    return was_null_seen(type());
+  }
+
 #ifndef PRODUCT
   void print_data_on(outputStream* st) const;
 #endif
@@ -154,6 +162,14 @@
     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;
 #endif
@@ -260,6 +276,14 @@
     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;
 #endif
@@ -305,6 +329,10 @@
     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;
 #endif