< prev index next >

src/share/vm/opto/doCall.cpp

Print this page




 483     tty->print_cr("Resolved method:");
 484     cg->method()->print(); tty->cr();
 485     return false;
 486   }
 487   return true;
 488 }
 489 #endif // ASSERT
 490 
 491 //------------------------------do_call----------------------------------------
 492 // Handle your basic call.  Inline if we can & want to, else just setup call.
 493 void Parse::do_call() {
 494   // It's likely we are going to add debug info soon.
 495   // Also, if we inline a guy who eventually needs debug info for this JVMS,
 496   // our contribution to it is cleaned up right here.
 497   kill_dead_locals();
 498 
 499   C->print_inlining_assert_ready();
 500 
 501   // Set frequently used booleans
 502   const bool is_virtual = bc() == Bytecodes::_invokevirtual;
 503   const bool is_direct  = bc() == Bytecodes::_invokedirect;
 504   const bool is_virtual_or_interface = is_virtual || bc() == Bytecodes::_invokeinterface;
 505   const bool has_receiver = Bytecodes::has_receiver(bc());
 506 
 507   // Find target being called
 508   bool             will_link;
 509   ciSignature*     declared_signature = NULL;
 510   ciMethod*        orig_callee  = iter().get_method(will_link, &declared_signature);  // callee in the bytecode
 511   ciInstanceKlass* holder_klass = orig_callee->holder();
 512   ciKlass*         holder       = iter().get_declared_method_holder();
 513   ciInstanceKlass* klass = ciEnv::get_instance_klass_for_declared_method_holder(holder);
 514   assert(declared_signature != NULL, "cannot be null");
 515 
 516   // Bump max node limit for JSR292 users
 517   if (bc() == Bytecodes::_invokedynamic || orig_callee->is_method_handle_intrinsic()) {
 518     C->set_max_node_limit(3*MaxNodeLimit);
 519   }
 520 
 521   // uncommon-trap when callee is unloaded, uninitialized or will not link
 522   // bailout when too many arguments for register representation
 523   if (!will_link || can_not_compile_call_site(orig_callee, klass)) {




 483     tty->print_cr("Resolved method:");
 484     cg->method()->print(); tty->cr();
 485     return false;
 486   }
 487   return true;
 488 }
 489 #endif // ASSERT
 490 
 491 //------------------------------do_call----------------------------------------
 492 // Handle your basic call.  Inline if we can & want to, else just setup call.
 493 void Parse::do_call() {
 494   // It's likely we are going to add debug info soon.
 495   // Also, if we inline a guy who eventually needs debug info for this JVMS,
 496   // our contribution to it is cleaned up right here.
 497   kill_dead_locals();
 498 
 499   C->print_inlining_assert_ready();
 500 
 501   // Set frequently used booleans
 502   const bool is_virtual = bc() == Bytecodes::_invokevirtual;

 503   const bool is_virtual_or_interface = is_virtual || bc() == Bytecodes::_invokeinterface;
 504   const bool has_receiver = Bytecodes::has_receiver(bc());
 505 
 506   // Find target being called
 507   bool             will_link;
 508   ciSignature*     declared_signature = NULL;
 509   ciMethod*        orig_callee  = iter().get_method(will_link, &declared_signature);  // callee in the bytecode
 510   ciInstanceKlass* holder_klass = orig_callee->holder();
 511   ciKlass*         holder       = iter().get_declared_method_holder();
 512   ciInstanceKlass* klass = ciEnv::get_instance_klass_for_declared_method_holder(holder);
 513   assert(declared_signature != NULL, "cannot be null");
 514 
 515   // Bump max node limit for JSR292 users
 516   if (bc() == Bytecodes::_invokedynamic || orig_callee->is_method_handle_intrinsic()) {
 517     C->set_max_node_limit(3*MaxNodeLimit);
 518   }
 519 
 520   // uncommon-trap when callee is unloaded, uninitialized or will not link
 521   // bailout when too many arguments for register representation
 522   if (!will_link || can_not_compile_call_site(orig_callee, klass)) {


< prev index next >