InlineSmallCode is too low by default
forax at univ-mlv.fr
Mon Apr 23 16:59:34 PDT 2012
On 04/23/2012 11:54 PM, Igor Veresov wrote:
> There are going to be some regressions if you do that. In particular some of the subbenchmarks in specjvm2008 will show worse results. In general the current inlining in C2 needs to be reworked in favor of a post-parse inlining-based strategy. InlineSmallCode is a very big knob...
Sorry to be stupid but if some regressions will happen,
why InlineSmallCode is equals to 2000 in tiered mode ?
And can you point me the code that does the post-parse inlining strategy
because I'm not sure what does it mean.
> On Apr 23, 2012, at 9:50 AM, Rémi Forax wrote:
>> InlineSmallCode is set to 1000 on x86 by default if tiered mode
>> is not enabled and 2000 if tiered mode is enabled.
>> I wonder if there is a reason for that inconsistency.
>> InlineSmallCode is the threshold used by the inlining heuristic
>> to know if a method is too big or not to be inlined multiple times,
>> on my dynamic language runtime, setting it to 2000 is very important
>> because otherwise most of the high order functions (function that
>> takes a function as argument) are not compiled with their callsite
>> so escape analysis can't work.
>> I suppose it's also the case for users that use libraries like
>> Google guava or Goldman Sachs's gs-collection that exhibit the same patterns.
>> that why I propose to bump InlineSmallCode to 2000 for x86 and
>> 2500 for sparc by default (the defaults in tiered mode).
More information about the hotspot-runtime-dev