< prev index next >

src/hotspot/share/opto/bytecodeInfo.cpp

Print this page




 463       int index = iter.get_index_u2_cpcache();
 464       if (!caller_method->is_klass_loaded(index, true)) {
 465         return false;
 466       }
 467       // Try to do constant pool resolution if running Xcomp
 468       if( !caller_method->check_call(index, call_bc == Bytecodes::_invokestatic) ) {
 469         return false;
 470       }
 471     }
 472   }
 473   return true;
 474 }
 475 
 476 //------------------------------check_can_parse--------------------------------
 477 const char* InlineTree::check_can_parse(ciMethod* callee) {
 478   // Certain methods cannot be parsed at all:
 479   if ( callee->is_native())                     return "native method";
 480   if ( callee->is_abstract())                   return "abstract method";
 481   if (!callee->has_balanced_monitors())         return "not compilable (unbalanced monitors)";
 482   if ( callee->get_flow_analysis()->failing())  return "not compilable (flow analysis failed)";

 483   return NULL;
 484 }
 485 
 486 //------------------------------print_inlining---------------------------------
 487 void InlineTree::print_inlining(ciMethod* callee_method, int caller_bci,
 488                                 ciMethod* caller_method, bool success) const {
 489   const char* inline_msg = msg();
 490   assert(inline_msg != NULL, "just checking");
 491   if (C->log() != NULL) {
 492     if (success) {
 493       C->log()->inline_success(inline_msg);
 494     } else {
 495       C->log()->inline_fail(inline_msg);
 496     }
 497   }
 498   CompileTask::print_inlining_ul(callee_method, inline_level(),
 499                                                caller_bci, inline_msg);
 500   if (C->print_inlining()) {
 501     C->print_inlining(callee_method, inline_level(), caller_bci, inline_msg);
 502     if (callee_method == NULL) tty->print(" callee not monotonic or profiled");




 463       int index = iter.get_index_u2_cpcache();
 464       if (!caller_method->is_klass_loaded(index, true)) {
 465         return false;
 466       }
 467       // Try to do constant pool resolution if running Xcomp
 468       if( !caller_method->check_call(index, call_bc == Bytecodes::_invokestatic) ) {
 469         return false;
 470       }
 471     }
 472   }
 473   return true;
 474 }
 475 
 476 //------------------------------check_can_parse--------------------------------
 477 const char* InlineTree::check_can_parse(ciMethod* callee) {
 478   // Certain methods cannot be parsed at all:
 479   if ( callee->is_native())                     return "native method";
 480   if ( callee->is_abstract())                   return "abstract method";
 481   if (!callee->has_balanced_monitors())         return "not compilable (unbalanced monitors)";
 482   if ( callee->get_flow_analysis()->failing())  return "not compilable (flow analysis failed)";
 483   if (!callee->can_be_parsed())                 return "cannot be parsed";
 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");


< prev index next >