[9] RFR(M): 8129847: Compiling methods generated by Nashorn triggers high memory usage in C2

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Nov 26 13:50:20 UTC 2015


> So I would like to first get this version in and see if we get problems
> (bugs or regressions). If all looks fine, we can think of enabling
> PhaseRenumberLive at other places as well (not necessarily all 6 from
> above, only those that bring good benefits for a reasonable cost).
Sounds good. Reviewed.

I'd like to note that PhaseRemoveUseless & PhaseIterGVN are performed 
too frequently right now (that's what JDK-8059241 is about). So, I'd 
experiment with something similar to iterative loop optimization pass in 
Compile::inline_incrementally:
     if (live_nodes() > (uint)LiveNodeCountInliningCutoff) {
       if (low_live_nodes < (uint)LiveNodeCountInliningCutoff * 8 / 10) {
         TracePhase tp("incrementalInline_ideal", 
&timers[_t_incrInline_ideal]);
         // PhaseIdealLoop is expensive so we only try it once we are
         // out of live nodes and we only try it again if the previous
         // helped got the number of nodes down significantly
         PhaseIdealLoop ideal_loop( igvn, false, true );
         if (failing())  return;
         low_live_nodes = live_nodes();
         _major_progress = true;
       }

       if (live_nodes() > (uint)LiveNodeCountInliningCutoff) {
         break;
       }
     }

Best regards,
Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list