src/share/vm/opto/doCall.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/doCall.cpp	Mon Mar 28 02:09:14 2011
--- new/src/share/vm/opto/doCall.cpp	Mon Mar 28 02:09:14 2011

*** 1,7 **** --- 1,7 ---- /* ! * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 25,34 **** --- 25,35 ---- #include "precompiled.hpp" #include "ci/ciCPCache.hpp" #include "ci/ciCallSite.hpp" #include "ci/ciMethodHandle.hpp" #include "classfile/vmSymbols.hpp" + #include "compiler/compileBroker.hpp" #include "compiler/compileLog.hpp" #include "interpreter/linkResolver.hpp" #include "opto/addnode.hpp" #include "opto/callGenerator.hpp" #include "opto/cfgnode.hpp"
*** 41,61 **** --- 42,62 ---- #include "runtime/sharedRuntime.hpp" #ifndef PRODUCT void trace_type_profile(ciMethod *method, int depth, int bci, ciMethod *prof_method, ciKlass *prof_klass, int site_count, int receiver_count) { if (TraceTypeProfile || PrintInlining || PrintOptoInlining) { tty->print(" "); for( int i = 0; i < depth; i++ ) tty->print(" "); if (!PrintOpto) { + if (!PrintInlining) { + if (!PrintOpto && !PrintCompilation) { method->print_short_name(); ! tty->print(" ->"); ! tty->cr(); + } + CompileTask::print_inlining(prof_method, depth, bci); } ! tty->print(" @ %d ", bci); ! prof_method->print_short_name(); tty->print(" >>TypeProfile (%d/%d counts) = ", receiver_count, site_count); ! CompileTask::print_inline_indent(depth); ! tty->print(" \\-> TypeProfile (%d/%d counts) = ", receiver_count, site_count); prof_klass->name()->print_symbol(); ! tty->print_cr(" (%d bytes)", prof_method->code_size()); } } #endif CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, bool call_is_virtual,
*** 267,283 **** --- 268,284 ---- // in case of polymorphic virtual call site. miss_cg = CallGenerator::for_virtual_call(call_method, vtable_index); } if (miss_cg != NULL) { if (next_hit_cg != NULL) { ! NOT_PRODUCT(trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), next_receiver_method, profile.receiver(1), site_count, profile.receiver_count(1))); // We don't need to record dependency on a receiver here and below. // Whenever we inline, the dependency is added by Parse::Parse(). miss_cg = CallGenerator::for_predicted_call(profile.receiver(1), miss_cg, next_hit_cg, PROB_MAX); } if (miss_cg != NULL) { ! NOT_PRODUCT(trace_type_profile(jvms->method(), jvms->depth() - 1, jvms->bci(), receiver_method, profile.receiver(0), site_count, receiver_count)); cg = CallGenerator::for_predicted_call(profile.receiver(0), miss_cg, hit_cg, profile.receiver_prob(0)); if (cg != NULL) return cg; } } }

src/share/vm/opto/doCall.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File