Mercurial > hg > graal-compiler
diff src/share/vm/runtime/deoptimization.cpp @ 13216:51e97f88c771
Profile deoptimizations of OSR methods separately.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Tue, 03 Dec 2013 11:25:40 +0100 |
parents | 6b2d8d20ecbd |
children | 2b43fcc68add |
line wrap: on
line diff
--- a/src/share/vm/runtime/deoptimization.cpp Tue Dec 03 11:10:16 2013 +0100 +++ b/src/share/vm/runtime/deoptimization.cpp Tue Dec 03 11:25:40 2013 +0100 @@ -1618,6 +1618,9 @@ bool maybe_prior_trap = false; bool maybe_prior_recompile = false; pdata = query_update_method_data(trap_mdo, trap_bci, reason, true, +#ifdef GRAAL + nm->is_compiled_by_graal() && nm->is_osr_method(), +#endif //outputs: this_trap_count, maybe_prior_trap, @@ -1752,6 +1755,9 @@ int trap_bci, Deoptimization::DeoptReason reason, bool update_total_trap_count, +#ifdef GRAAL + bool is_osr, +#endif //outputs: uint& ret_this_trap_count, bool& ret_maybe_prior_trap, @@ -1760,8 +1766,14 @@ bool maybe_prior_recompile = false; uint this_trap_count = 0; if (update_total_trap_count) { - uint prior_trap_count = trap_mdo->trap_count(reason); - this_trap_count = trap_mdo->inc_trap_count(reason); + uint idx = reason; +#ifdef GRAAL + if (is_osr) { + idx += Reason_LIMIT; + } +#endif + uint prior_trap_count = trap_mdo->trap_count(idx); + this_trap_count = trap_mdo->inc_trap_count(idx); // If the runtime cannot find a place to store trap history, // it is estimated based on the general condition of the method. @@ -1826,6 +1838,9 @@ query_update_method_data(trap_mdo, trap_bci, (DeoptReason)reason, update_total_counts, +#ifdef GRAAL + false, +#endif ignore_this_trap_count, ignore_maybe_prior_trap, ignore_maybe_prior_recompile);