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