479 if ( callee->is_native()) return "native method"; 480 if ( callee->is_abstract()) return "abstract method"; 481 if (!callee->can_be_compiled()) return "not compilable (disabled)"; 482 if (!callee->has_balanced_monitors()) return "not compilable (unbalanced monitors)"; 483 if ( callee->get_flow_analysis()->failing()) return "not compilable (flow analysis failed)"; 484 return NULL; 485 } 486 487 //------------------------------print_inlining--------------------------------- 488 void InlineTree::print_inlining(ciMethod* callee_method, int caller_bci, 489 ciMethod* caller_method, bool success) const { 490 const char* inline_msg = msg(); 491 assert(inline_msg != NULL, "just checking"); 492 if (C->log() != NULL) { 493 if (success) { 494 C->log()->inline_success(inline_msg); 495 } else { 496 C->log()->inline_fail(inline_msg); 497 } 498 } 499 if (C->print_inlining()) { 500 C->print_inlining(callee_method, inline_level(), caller_bci, inline_msg); 501 if (callee_method == NULL) tty->print(" callee not monotonic or profiled"); 502 if (Verbose && callee_method) { 503 const InlineTree *top = this; 504 while( top->caller_tree() != NULL ) { top = top->caller_tree(); } 505 //tty->print(" bcs: %d+%d invoked: %d", top->count_inline_bcs(), callee_method->code_size(), callee_method->interpreter_invocation_count()); 506 } 507 } 508 #if INCLUDE_TRACE 509 EventCompilerInlining event; 510 if (event.should_commit()) { 511 event.set_compileId(C->compile_id()); 512 event.set_message(inline_msg); 513 event.set_succeeded(success); 514 event.set_bci(caller_bci); 515 event.set_caller(caller_method->get_Method()); 516 event.set_callee(callee_method->to_trace_struct()); 517 event.commit(); 518 } | 479 if ( callee->is_native()) return "native method"; 480 if ( callee->is_abstract()) return "abstract method"; 481 if (!callee->can_be_compiled()) return "not compilable (disabled)"; 482 if (!callee->has_balanced_monitors()) return "not compilable (unbalanced monitors)"; 483 if ( callee->get_flow_analysis()->failing()) return "not compilable (flow analysis failed)"; 484 return NULL; 485 } 486 487 //------------------------------print_inlining--------------------------------- 488 void InlineTree::print_inlining(ciMethod* callee_method, int caller_bci, 489 ciMethod* caller_method, bool success) const { 490 const char* inline_msg = msg(); 491 assert(inline_msg != NULL, "just checking"); 492 if (C->log() != NULL) { 493 if (success) { 494 C->log()->inline_success(inline_msg); 495 } else { 496 C->log()->inline_fail(inline_msg); 497 } 498 } 499 CompileTask::print_inlining_ul(callee_method, inline_level(), 500 caller_bci, inline_msg); 501 if (C->print_inlining()) { 502 C->print_inlining(callee_method, inline_level(), caller_bci, inline_msg); 503 if (callee_method == NULL) tty->print(" callee not monotonic or profiled"); 504 if (Verbose && callee_method) { 505 const InlineTree *top = this; 506 while( top->caller_tree() != NULL ) { top = top->caller_tree(); } 507 //tty->print(" bcs: %d+%d invoked: %d", top->count_inline_bcs(), callee_method->code_size(), callee_method->interpreter_invocation_count()); 508 } 509 } 510 #if INCLUDE_TRACE 511 EventCompilerInlining event; 512 if (event.should_commit()) { 513 event.set_compileId(C->compile_id()); 514 event.set_message(inline_msg); 515 event.set_succeeded(success); 516 event.set_bci(caller_bci); 517 event.set_caller(caller_method->get_Method()); 518 event.set_callee(callee_method->to_trace_struct()); 519 event.commit(); 520 } |