void NonTieredCompPolicy::trace_frequency_counter_overflow(const methodHandle& m, int branch_bci, int bci) { if (TraceInvocationCounterOverflow) { MethodCounters* mcs = m->method_counters(); assert(mcs != NULL, "MethodCounters cannot be NULL for profiling"); InvocationCounter* ic = mcs->invocation_counter(); InvocationCounter* bc = mcs->backedge_counter(); ResourceMark rm; if (bci == InvocationEntryBci) { tty->print("comp-policy cntr ovfl @ %d in entry of ", bci); } else { tty->print("comp-policy cntr ovfl @ %d in loop of ", bci); } m->print_value(); tty->cr(); ic->print(); bc->print(); if (ProfileInterpreter) { if (bci != InvocationEntryBci) { MethodData* mdo = m->method_data(); if (mdo != NULL) { int count = mdo->bci_to_data(branch_bci)->as_JumpData()->taken(); tty->print_cr("back branch count = %d", count); } } } } }
void BytecodePrinter::bytecode_epilog(int bci, outputStream* st) { MethodData* mdo = method()->method_data(); if (mdo != NULL) { ProfileData* data = mdo->bci_to_data(bci); if (data != NULL) { st->print(" %d", mdo->dp_to_di(data->dp())); st->fill_to(6); data->print_data_on(st); } } }
void ciMethodData::set_return_type(int bci, ciKlass* k) { VM_ENTRY_MARK; MethodData* mdo = get_MethodData(); if (mdo != NULL) { ProfileData* data = mdo->bci_to_data(bci); if (data->is_CallTypeData()) { data->as_CallTypeData()->set_return_type(k->get_Klass()); } else { assert(data->is_VirtualCallTypeData(), "no arguments!"); data->as_VirtualCallTypeData()->set_return_type(k->get_Klass()); } } }