diff src/share/vm/oops/methodData.hpp @ 7154:5d0bb7d52783

changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
author Doug Simon <doug.simon@oracle.com>
date Wed, 12 Dec 2012 21:36:40 +0100
parents e522a00b91aa
children 5fc51c1ecdeb
line wrap: on
line diff
--- a/src/share/vm/oops/methodData.hpp	Wed Dec 12 15:46:11 2012 +0100
+++ b/src/share/vm/oops/methodData.hpp	Wed Dec 12 21:36:40 2012 +0100
@@ -625,7 +625,14 @@
 class ReceiverTypeData : public CounterData {
 protected:
   enum {
+#ifdef GRAAL
+    // Graal is interested in knowing the percentage of type checks
+    // involving a type not explicitly in the profile
+    nonprofiled_receiver_count_off_set = counter_cell_count,
+    receiver0_offset,
+#else
     receiver0_offset = counter_cell_count,
+#endif
     count0_offset,
     receiver_type_row_cell_count = (count0_offset + 1) - receiver0_offset
   };
@@ -639,7 +646,7 @@
   virtual bool is_ReceiverTypeData() { return true; }
 
   static int static_cell_count() {
-    return counter_cell_count + (uint) TypeProfileWidth * receiver_type_row_cell_count;
+    return counter_cell_count + (uint) TypeProfileWidth * receiver_type_row_cell_count GRAAL_ONLY(+ 1);
   }
 
   virtual int cell_count() {
@@ -710,6 +717,11 @@
   static ByteSize receiver_count_offset(uint row) {
     return cell_offset(receiver_count_cell_index(row));
   }
+#ifdef GRAAL
+  static ByteSize nonprofiled_receiver_count_offset() {
+    return cell_offset(nonprofiled_receiver_count_off_set);
+  }
+#endif
   static ByteSize receiver_type_data_size() {
     return cell_offset(static_cell_count());
   }
@@ -1168,11 +1180,7 @@
 
   // Whole-method sticky bits and flags
   enum {
-#ifdef GRAAL
-    _trap_hist_limit    = 13,   // decoupled from Deoptimization::Reason_LIMIT
-#else
     _trap_hist_limit    = 17,   // decoupled from Deoptimization::Reason_LIMIT
-#endif
     _trap_hist_mask     = max_jubyte,
     _extra_data_count   = 4     // extra DataLayout headers, for trap history
   }; // Public flag values