src/share/vm/oops/methodData.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/oops/methodData.cpp

src/share/vm/oops/methodData.cpp

Print this page
rev 6132 : 8037970: make PrintMethodData a diagnostic options
Summary: make PrintMethodData a diagnostic options for performance investigation
Reviewed-by:

*** 112,122 **** void ProfileData::print_data_on(outputStream* st, const MethodData* md) const { print_data_on(st, print_data_on_helper(md)); } - #ifndef PRODUCT void ProfileData::print_shared(outputStream* st, const char* name, const char* extra) const { st->print("bci: %d", bci()); st->fill_to(tab_width_one); st->print("%s", name); tab(st); --- 112,121 ----
*** 135,170 **** } void ProfileData::tab(outputStream* st, bool first) const { st->fill_to(first ? tab_width_one : tab_width_two); } - #endif // !PRODUCT // ================================================================== // BitData // // A BitData corresponds to a one-bit flag. This is used to indicate // whether a checkcast bytecode has seen a null value. - #ifndef PRODUCT void BitData::print_data_on(outputStream* st, const char* extra) const { print_shared(st, "BitData", extra); } - #endif // !PRODUCT // ================================================================== // CounterData // // A CounterData corresponds to a simple counter. - #ifndef PRODUCT void CounterData::print_data_on(outputStream* st, const char* extra) const { print_shared(st, "CounterData", extra); st->print_cr("count(%u)", count()); } - #endif // !PRODUCT // ================================================================== // JumpData // // A JumpData is used to access profiling information for a direct --- 134,164 ----
*** 185,200 **** int target_di = mdo->bci_to_di(target); int offset = target_di - my_di; set_displacement(offset); } - #ifndef PRODUCT void JumpData::print_data_on(outputStream* st, const char* extra) const { print_shared(st, "JumpData", extra); st->print_cr("taken(%u) displacement(%d)", taken(), displacement()); } - #endif // !PRODUCT int TypeStackSlotEntries::compute_cell_count(Symbol* signature, bool include_receiver, int max) { // Parameter profiling include the receiver int args_count = include_receiver ? 1 : 0; ResourceMark rm; --- 179,192 ----
*** 339,349 **** bool TypeEntriesAtCall::arguments_profiling_enabled() { return MethodData::profile_arguments(); } - #ifndef PRODUCT void TypeEntries::print_klass(outputStream* st, intptr_t k) { if (is_type_none(k)) { st->print("none"); } else if (is_type_unknown(k)) { st->print("unknown"); --- 331,340 ----
*** 395,405 **** tab(st, true); st->print("return type"); _ret.print_data_on(st); } } - #endif // ================================================================== // ReceiverTypeData // // A ReceiverTypeData is used to access profiling information about a --- 386,395 ----
*** 414,424 **** clear_row(row); } } } - #ifndef PRODUCT void ReceiverTypeData::print_receiver_data_on(outputStream* st) const { uint row; int entries = 0; for (row = 0; row < row_limit(); row++) { if (receiver(row) != NULL) entries++; --- 404,413 ----
*** 444,454 **** } void VirtualCallData::print_data_on(outputStream* st, const char* extra) const { print_shared(st, "VirtualCallData", extra); print_receiver_data_on(st); } - #endif // !PRODUCT // ================================================================== // RetData // // A RetData is used to access profiling information for a ret bytecode. --- 433,442 ----
*** 496,506 **** DataLayout* RetData::advance(MethodData *md, int bci) { return (DataLayout*) md->bci_to_dp(bci); } #endif // CC_INTERP - #ifndef PRODUCT void RetData::print_data_on(outputStream* st, const char* extra) const { print_shared(st, "RetData", extra); uint row; int entries = 0; for (row = 0; row < row_limit(); row++) { --- 484,493 ----
*** 513,523 **** st->print_cr("bci(%d: count(%u) displacement(%d))", bci(row), bci_count(row), bci_displacement(row)); } } } - #endif // !PRODUCT // ================================================================== // BranchData // // A BranchData is used to access profiling data for a two-way branch. --- 500,509 ----
*** 531,549 **** int target_di = mdo->bci_to_di(target); int offset = target_di - my_di; set_displacement(offset); } - #ifndef PRODUCT void BranchData::print_data_on(outputStream* st, const char* extra) const { print_shared(st, "BranchData", extra); st->print_cr("taken(%u) displacement(%d)", taken(), displacement()); tab(st); st->print_cr("not taken(%u)", not_taken()); } - #endif // ================================================================== // MultiBranchData // // A MultiBranchData is used to access profiling information for --- 517,533 ----
*** 605,615 **** offset = target_di - my_di; set_default_displacement(offset); } } - #ifndef PRODUCT void MultiBranchData::print_data_on(outputStream* st, const char* extra) const { print_shared(st, "MultiBranchData", extra); st->print_cr("default_count(%u) displacement(%d)", default_count(), default_displacement()); int cases = number_of_cases(); --- 589,598 ----
*** 617,640 **** tab(st); st->print_cr("count(%u) displacement(%d)", count_at(i), displacement_at(i)); } } - #endif - #ifndef PRODUCT void ArgInfoData::print_data_on(outputStream* st, const char* extra) const { print_shared(st, "ArgInfoData", extra); int nargs = number_of_args(); for (int i = 0; i < nargs; i++) { st->print(" 0x%x", arg_modified(i)); } st->cr(); } - #endif - int ParametersTypeData::compute_cell_count(Method* m) { if (!MethodData::profile_parameters_for_method(m)) { return 0; } int max = TypeProfileParmsLimit == -1 ? INT_MAX : TypeProfileParmsLimit; --- 600,619 ----
*** 651,661 **** bool ParametersTypeData::profiling_enabled() { return MethodData::profile_parameters(); } - #ifndef PRODUCT void ParametersTypeData::print_data_on(outputStream* st, const char* extra) const { st->print("parameter types", extra); _parameters.print_data_on(st); } --- 630,639 ----
*** 663,673 **** print_shared(st, "SpeculativeTrapData", extra); tab(st); method()->print_short_name(st); st->cr(); } - #endif // ================================================================== // MethodData* // // A MethodData* holds information which has been collected about --- 641,650 ----
*** 1339,1367 **** return NULL; } // Printing - #ifndef PRODUCT - void MethodData::print_on(outputStream* st) const { assert(is_methodData(), "should be method data"); st->print("method data for "); method()->print_value_on(st); st->cr(); print_data_on(st); } - #endif //PRODUCT - void MethodData::print_value_on(outputStream* st) const { assert(is_methodData(), "should be method data"); st->print("method data for "); method()->print_value_on(st); } - #ifndef PRODUCT void MethodData::print_data_on(outputStream* st) const { ResourceMark rm; ProfileData* data = first_data(); if (_parameters_type_data_di != -1) { parameters_type_data()->print_data_on(st); --- 1316,1339 ----
*** 1398,1408 **** st->fill_to(6); data->print_data_on(st); if (dp >= end) return; } } - #endif #if INCLUDE_SERVICES // Size Statistics void MethodData::collect_statistics(KlassSizeStats *sz) const { int n = sz->count(this); --- 1370,1379 ----
src/share/vm/oops/methodData.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File