src/share/vm/opto/doCall.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8042786 Sdiff src/share/vm/opto

src/share/vm/opto/doCall.cpp

Print this page




 347             ciMethod* m = csj->method();
 348             if (m != NULL &&
 349                 (m->intrinsic_id() == vmIntrinsics::_StringBuffer_toString ||
 350                  m->intrinsic_id() == vmIntrinsics::_StringBuilder_toString))
 351               // Delay String.<init>(new SB())
 352               return true;
 353           }
 354           return false;
 355         }
 356 
 357       default:
 358         return false;
 359     }
 360   }
 361   return false;
 362 }
 363 
 364 bool Compile::should_delay_boxing_inlining(ciMethod* call_method, JVMState* jvms) {
 365   if (eliminate_boxing() && call_method->is_boxing_method()) {
 366     set_has_boxed_value(true);
 367     return true;
 368   }
 369   return false;
 370 }
 371 
 372 // uncommon-trap call-sites where callee is unloaded, uninitialized or will not link
 373 bool Parse::can_not_compile_call_site(ciMethod *dest_method, ciInstanceKlass* klass) {
 374   // Additional inputs to consider...
 375   // bc      = bc()
 376   // caller  = method()
 377   // iter().get_method_holder_index()
 378   assert( dest_method->is_loaded(), "ciTypeFlow should not let us get here" );
 379   // Interface classes can be loaded & linked and never get around to
 380   // being initialized.  Uncommon-trap for not-initialized static or
 381   // v-calls.  Let interface calls happen.
 382   ciInstanceKlass* holder_klass = dest_method->holder();
 383   if (!holder_klass->is_being_initialized() &&
 384       !holder_klass->is_initialized() &&
 385       !holder_klass->is_interface()) {
 386     uncommon_trap(Deoptimization::Reason_uninitialized,
 387                   Deoptimization::Action_reinterpret,




 347             ciMethod* m = csj->method();
 348             if (m != NULL &&
 349                 (m->intrinsic_id() == vmIntrinsics::_StringBuffer_toString ||
 350                  m->intrinsic_id() == vmIntrinsics::_StringBuilder_toString))
 351               // Delay String.<init>(new SB())
 352               return true;
 353           }
 354           return false;
 355         }
 356 
 357       default:
 358         return false;
 359     }
 360   }
 361   return false;
 362 }
 363 
 364 bool Compile::should_delay_boxing_inlining(ciMethod* call_method, JVMState* jvms) {
 365   if (eliminate_boxing() && call_method->is_boxing_method()) {
 366     set_has_boxed_value(true);
 367     return aggressive_unboxing();
 368   }
 369   return false;
 370 }
 371 
 372 // uncommon-trap call-sites where callee is unloaded, uninitialized or will not link
 373 bool Parse::can_not_compile_call_site(ciMethod *dest_method, ciInstanceKlass* klass) {
 374   // Additional inputs to consider...
 375   // bc      = bc()
 376   // caller  = method()
 377   // iter().get_method_holder_index()
 378   assert( dest_method->is_loaded(), "ciTypeFlow should not let us get here" );
 379   // Interface classes can be loaded & linked and never get around to
 380   // being initialized.  Uncommon-trap for not-initialized static or
 381   // v-calls.  Let interface calls happen.
 382   ciInstanceKlass* holder_klass = dest_method->holder();
 383   if (!holder_klass->is_being_initialized() &&
 384       !holder_klass->is_initialized() &&
 385       !holder_klass->is_interface()) {
 386     uncommon_trap(Deoptimization::Reason_uninitialized,
 387                   Deoptimization::Action_reinterpret,


src/share/vm/opto/doCall.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File