src/share/vm/opto/memnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/memnode.cpp	Mon Oct 24 02:24:28 2011
--- new/src/share/vm/opto/memnode.cpp	Mon Oct 24 02:24:28 2011

*** 1584,1594 **** --- 1584,1595 ---- if (const_oop != NULL) { // For constant CallSites treat the target field as a compile time constant. if (const_oop->is_call_site()) { ciCallSite* call_site = const_oop->as_call_site(); ciField* field = call_site->klass()->as_instance_klass()->get_field_by_offset(off, /*is_static=*/ false); if (field != NULL && field->is_call_site_target()) { + // Don't optimize if there were already too many traps. + if (field != NULL && field->is_call_site_target() && !call_site->too_many_traps()) { ciMethodHandle* target = call_site->get_target(); if (target != NULL) { // just in case ciConstant constant(T_OBJECT, target); const Type* t; if (adr->bottom_type()->is_ptr_to_narrowoop()) {

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