diff src/share/vm/oops/methodData.hpp @ 8616:d343737786fe

changed profiling of exceptions so that the ExceptionSeen flag also works without GRAALVM
author Christian Haeubl <haeubl@ssw.jku.at>
date Thu, 28 Mar 2013 17:11:06 +0100
parents 6c4db417385a
children 89e4d67fdd2a
line wrap: on
line diff
--- a/src/share/vm/oops/methodData.hpp	Thu Mar 28 13:38:47 2013 +0100
+++ b/src/share/vm/oops/methodData.hpp	Thu Mar 28 17:11:06 2013 +0100
@@ -461,7 +461,11 @@
   enum {
     // null_seen:
     //  saw a null operand (cast/aastore/instanceof)
-    null_seen_flag              = DataLayout::first_flag + 0
+      null_seen_flag              = DataLayout::first_flag + 0
+#ifdef GRAAL
+    // bytecode threw any exception
+    , exception_seen_flag         = null_seen_flag + 1
+#endif
   };
   enum { bit_cell_count = 0 };  // no additional data fields needed.
 public:
@@ -484,7 +488,11 @@
   // Consulting it allows the compiler to avoid setting up null_check traps.
   bool null_seen()     { return flag_at(null_seen_flag); }
   void set_null_seen()    { set_flag_at(null_seen_flag); }
-
+#ifdef GRAAL
+  // true if an exception was thrown at the specific BCI
+  bool exception_seen() { return flag_at(exception_seen_flag); }
+  void set_exception_seen() { set_flag_at(exception_seen_flag); }
+#endif
 
   // Code generation support
   static int null_seen_byte_constant() {