diff src/share/vm/runtime/deoptimization.hpp @ 5114:dad1ac9dba7d

finished first implementation of disabling runtime feedback selectively based on deoptimization history
author Christian Haeubl <christian.haeubl@oracle.com>
date Mon, 19 Mar 2012 14:43:15 -0700
parents 0ebca2e35ca5
children b6d1ba51d163
line wrap: on
line diff
--- a/src/share/vm/runtime/deoptimization.hpp	Thu Mar 15 17:01:44 2012 -0700
+++ b/src/share/vm/runtime/deoptimization.hpp	Mon Mar 19 14:43:15 2012 -0700
@@ -42,7 +42,13 @@
 #ifdef GRAAL
     Reason_many = -1,             // indicates presence of several reasons
     Reason_none = 0,              // indicates absence of a relevant deopt.
-    // Next 7 reasons are recorded per bytecode in DataLayout::trap_bits
+    // Next 7 reasons are recorded per bytecode in DataLayout::trap_bits.
+    // This is more complicated for Graal as Graal may deoptimize to *some* bytecode before the
+    // bytecode that actually caused the deopt (with inlining, Graal may even deoptimize to a
+    // bytecode in another method):
+    //  - bytecode y in method b() causes deopt
+    //  - Graal deoptimizes to bytecode x in method a()
+    // -> the deopt reason will be recorded for method a() at bytecode x
     Reason_null_check,
     Reason_range_check,
     Reason_class_check,
@@ -382,6 +388,7 @@
   static ProfileData* query_update_method_data(methodDataHandle trap_mdo,
                                                int trap_bci,
                                                DeoptReason reason,
+                                               bool update_total_trap_count,
                                                //outputs:
                                                uint& ret_this_trap_count,
                                                bool& ret_maybe_prior_trap,