RFR(L): 8005071: Incremental inlining for JSR 292

Roland Westrelin roland.westrelin at oracle.com
Fri Dec 14 07:13:29 PST 2012


Current inlining heuristics are driven by the number of created nodes which is unrelated to the number of live nodes especially after optimizations are applied. C2 should perform inlining in a loop:

while (more_inlining_candidates) {
    if (number_of_live_nodes > some_number) break;

In this change, C2 starts inlining at parse-time as usual until the existing heuristics kick in and prevent any further inlining. It then starts enqueuing candidates for further inlining. The candidates are restricted to the methods marked with the ForceInline annotation for now. It then enters the loop above. The optimizations applied are restricted to an igvn and a simple pass of loop clean up for now.


More information about the hotspot-compiler-dev mailing list