src/share/vm/code/relocInfo.cpp

Print this page
rev 2893 : 7121756: Improve C1 inlining policy by using profiling at call sites
Summary: profile based recompilation of methods with C1 with more inlining.
Reviewed-by:

*** 909,919 **** CompiledIC* icache = CompiledIC_at(this); icache->set_to_clean(); } ! address opt_virtual_call_Relocation::static_stub() { // search for the static stub who points back to this static call address static_call_addr = addr(); RelocIterator iter(code()); while (iter.next()) { if (iter.type() == relocInfo::static_stub_type) { --- 909,919 ---- CompiledIC* icache = CompiledIC_at(this); icache->set_to_clean(); } ! address virtual_call_Relocation::static_stub() { // search for the static stub who points back to this static call address static_call_addr = addr(); RelocIterator iter(code()); while (iter.next()) { if (iter.type() == relocInfo::static_stub_type) {
*** 923,932 **** --- 923,945 ---- } } return NULL; } + address opt_virtual_call_Relocation::static_stub() { + // search for the static stub who points back to this static call + address static_call_addr = addr(); + RelocIterator iter(code()); + while (iter.next()) { + if (iter.type() == relocInfo::static_stub_type) { + if (iter.static_stub_reloc()->static_call() == static_call_addr) { + return iter.addr(); + } + } + } + return NULL; + } void static_call_Relocation::clear_inline_cache() { // Safe call site info CompiledStaticCall* handler = compiledStaticCall_at(this); handler->set_to_clean();