src/share/vm/c1/c1_Compilation.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:
*** 251,261 ****
char* locs_buffer = NEW_RESOURCE_ARRAY(char, locs_buffer_size);
code->insts()->initialize_shared_locs((relocInfo*)locs_buffer,
locs_buffer_size / sizeof(relocInfo));
code->initialize_consts_size(Compilation::desired_max_constant_size());
// Call stubs + two deopt handlers (regular and MH) + exception handler
! int stub_size = (call_stub_estimate * LIR_Assembler::call_stub_size) +
LIR_Assembler::exception_handler_size +
(2 * LIR_Assembler::deopt_handler_size);
if (stub_size >= code->insts_capacity()) return false;
code->initialize_stubs_size(stub_size);
return true;
--- 251,261 ----
char* locs_buffer = NEW_RESOURCE_ARRAY(char, locs_buffer_size);
code->insts()->initialize_shared_locs((relocInfo*)locs_buffer,
locs_buffer_size / sizeof(relocInfo));
code->initialize_consts_size(Compilation::desired_max_constant_size());
// Call stubs + two deopt handlers (regular and MH) + exception handler
! int stub_size = (call_stub_estimate * (LIR_Assembler::call_stub_size + (C1ProfileInlining ? LIR_Assembler::profile_call_stub_size : 0))) +
LIR_Assembler::exception_handler_size +
(2 * LIR_Assembler::deopt_handler_size);
if (stub_size >= code->insts_capacity()) return false;
code->initialize_stubs_size(stub_size);
return true;