src/share/vm/runtime/deoptimization.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hs-comp-code-aging Cdiff src/share/vm/runtime/deoptimization.cpp

src/share/vm/runtime/deoptimization.cpp

Print this page

        

*** 1338,1348 **** class_name = constants->symbol_at(unloaded_class_index); } if (xtty != NULL) xtty->name(class_name); } ! if (xtty != NULL && trap_mdo != NULL) { // Dump the relevant MDO state. // This is the deopt count for the current reason, any previous // reasons or recompiles seen at this point. int dcnt = trap_mdo->trap_count(reason); if (dcnt != 0) --- 1338,1348 ---- class_name = constants->symbol_at(unloaded_class_index); } if (xtty != NULL) xtty->name(class_name); } ! if (xtty != NULL && trap_mdo != NULL && (int)reason < (int)MethodData::_trap_hist_limit) { // Dump the relevant MDO state. // This is the deopt count for the current reason, any previous // reasons or recompiles seen at this point. int dcnt = trap_mdo->trap_count(reason); if (dcnt != 0)
*** 1816,1826 **** return buf; } //--------------------------------statics-------------------------------------- ! const char* Deoptimization::_trap_reason_name[Reason_LIMIT] = { // Note: Keep this in sync. with enum DeoptReason. "none", "null_check", "null_assert", "range_check", --- 1816,1826 ---- return buf; } //--------------------------------statics-------------------------------------- ! const char* Deoptimization::_trap_reason_name[] = { // Note: Keep this in sync. with enum DeoptReason. "none", "null_check", "null_assert", "range_check",
*** 1837,1866 **** "age", "predicate", "loop_limit_check", "speculate_class_check", "speculate_null_check", ! "rtm_state_change" }; ! const char* Deoptimization::_trap_action_name[Action_LIMIT] = { // Note: Keep this in sync. with enum DeoptAction. "none", "maybe_recompile", "reinterpret", "make_not_entrant", "make_not_compilable" }; const char* Deoptimization::trap_reason_name(int reason) { if (reason == Reason_many) return "many"; if ((uint)reason < Reason_LIMIT) return _trap_reason_name[reason]; static char buf[20]; sprintf(buf, "reason%d", reason); return buf; } const char* Deoptimization::trap_action_name(int action) { if ((uint)action < Action_LIMIT) return _trap_action_name[action]; static char buf[20]; sprintf(buf, "action%d", action); return buf; --- 1837,1873 ---- "age", "predicate", "loop_limit_check", "speculate_class_check", "speculate_null_check", ! "rtm_state_change", ! "tenured" }; ! const char* Deoptimization::_trap_action_name[] = { // Note: Keep this in sync. with enum DeoptAction. "none", "maybe_recompile", "reinterpret", "make_not_entrant", "make_not_compilable" }; const char* Deoptimization::trap_reason_name(int reason) { + // Check that every reason has a name + STATIC_ASSERT(sizeof(_trap_reason_name)/sizeof(const char*) == Reason_LIMIT); + if (reason == Reason_many) return "many"; if ((uint)reason < Reason_LIMIT) return _trap_reason_name[reason]; static char buf[20]; sprintf(buf, "reason%d", reason); return buf; } const char* Deoptimization::trap_action_name(int action) { + // Check that every action has a name + STATIC_ASSERT(sizeof(_trap_action_name)/sizeof(const char*) == Action_LIMIT); + if ((uint)action < Action_LIMIT) return _trap_action_name[action]; static char buf[20]; sprintf(buf, "action%d", action); return buf;
src/share/vm/runtime/deoptimization.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File