Mercurial > hg > truffle
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,