bytecodeInfo.cpp revision 0
0N/A#include "incls/_bytecodeInfo.cpp.incl"
0N/A// These variables are declared in parse1.cpp
0N/Aextern int explicit_null_checks_inserted;
0N/Aextern int explicit_null_checks_elided;
0N/Aextern int explicit_null_checks_inserted_old;
0N/Aextern int explicit_null_checks_elided_old;
0N/Aextern int nodes_created_old;
0N/Aextern int nodes_created;
0N/Aextern int methods_parsed_old;
0N/Aextern int methods_parsed;
0N/Aextern int methods_seen;
0N/Aextern int methods_seen_old;
0N/AInlineTree::InlineTree( Compile* c, const InlineTree *caller_tree, ciMethod* callee, JVMState* caller_jvms, int caller_bci, float site_invoke_ratio )
0N/A assert((caller_tree == NULL ? 0 : caller_tree->inline_depth() + 1) == inline_depth(), "correct (redundant) depth parameter");
0N/A if (UseOldInlining) {
InlineTree::InlineTree(Compile* c, ciMethod* callee_method, JVMState* caller_jvms, float site_invoke_ratio)
const char* InlineTree::shouldInline(ciMethod* callee_method, int caller_bci, ciCallProfile& profile, WarmCallInfo* wci_result) const {
return NULL;
tty->print_cr("Inlined method with many throws (throws=%d):", callee_method->interpreter_throwout_count());
return NULL;
if (!UseOldInlining) {
return NULL;
if (!UseOldInlining) {
if (fail) {
return fail;
return NULL;
return NULL;
if (!callee_method->has_compiled_code() && !callee_method->was_executed_more_than(0)) return "never executed";
if (!callee_method->was_executed_more_than(MIN2(MinInliningThreshold, CompileThreshold >> 1))) return "executed < MinInliningThreshold times";
return NULL;
const char* InlineTree::try_to_inline(ciMethod* callee_method, int caller_bci, ciCallProfile& profile, WarmCallInfo* wci_result) {
return NULL;
#ifndef PRODUCT
void InlineTree::print_inlining(ciMethod *callee_method, int caller_bci, const char *failure_msg) const {
tty->print(" bcs: %d+%d invoked: %d", top->count_inline_bcs(), callee_method->code_size(), callee_method->interpreter_invocation_count());
WarmCallInfo* InlineTree::ok_to_inline(ciMethod* callee_method, JVMState* jvms, ciCallProfile& profile, WarmCallInfo* initial_wci) {
#ifdef ASSERT
if( PrintInlining ) {
return NULL;
#ifndef PRODUCT
if (UseOldInlining) {
if (!InlineWarmCalls) {
if (UseOldInlining)
return NULL;
return freq;
InlineTree *InlineTree::build_inline_tree_for_callee( ciMethod* callee_method, JVMState* caller_jvms, int caller_bci) {
return old_ilt;
InlineTree *ilt = new InlineTree( C, this, callee_method, caller_jvms, caller_bci, recur_frequency );
return ilt;
return sub;
return NULL;
return ilt;
InlineTree* InlineTree::find_subtree_from_root(InlineTree* root, JVMState* jvms, ciMethod* callee, bool create_if_not_found) {
if (!sub) {
return NULL;
return iltp;
#ifndef PRODUCT
static void per_method_stats() {
if( explicit_null_checks_cur )
if( elided_null_checks_cur )