RFR: 8234863: Increase default value of MaxInlineLevel

Claes Redestad claes.redestad at oracle.com
Mon Dec 9 22:33:52 UTC 2019


Thanks for chiming in!

On 2019-12-09 22:31, Charles Oliver Nutter wrote:
> A question relating to JRuby: how does the inline level interact with 
> MethodHandle/LambdaForm @ForceInline? Does that get around it? ALWAYS? 
> Clearly we see most of our invokedynamic call sites inline, but I have 
> little understanding of the actual cost of the five to 10 to 20 levels 
> of LFs between an indy site and the eventual target.

 From my reading of the code, there's a limit of 100 levels of
  @ForceInline. This seems very hard to ever hit, and would be observable
if -XX:+PrintInlining ever printed "MaxForceInlineLevel" as a reason to
not inline.

AFAIU, and my understanding here is far from perfect, then long before
hitting this limit even extreme LF/indy usage will have split deeply
nested calls into smaller chunks that we chain together, in an effort to
keep very complex shapes byte sized for the JIT and better enable some
LF sharing optimizations on the library side.

/Claes


More information about the hotspot-compiler-dev mailing list