MaxRecursiveInlineLevel oddity
Christian Thalinger
christian.thalinger at oracle.com
Thu Apr 28 11:01:17 PDT 2011
On Apr 28, 2011, at 7:56 PM, Vladimir Kozlov wrote:
> 6552561: MaxRecursiveInlineLevel flag doesn't operate correctly
Ohh, great. I will send out a webrev. -- Christian
>
> Tom Rodriguez wrote:
>> I believe there's actually a bug already filed about this. It will certainly change the results of the inlining in rare cases but it seems reasonable to may it consistent.
>> tom
>> On Apr 28, 2011, at 6:38 AM, Christian Thalinger wrote:
>>> While looking at JRuby performance and thus assembly code I noticed an oddity with recursive inlining:
>>>
>>> $ java -XX:CICompilerCount=1 -XX:+PrintCompilation -XX:+PrintInlining -XX:MaxRecursiveInlineLevel=0 fib
>>> VM option 'CICompilerCount=1'
>>> VM option '+PrintCompilation'
>>> VM option '+PrintInlining'
>>> VM option 'MaxRecursiveInlineLevel=0'
>>> 340 1 fib::fib (21 bytes)
>>> @ 10 fib::fib (21 bytes) inline (hot)
>>> @ 10 fib::fib (21 bytes) recursively inlining too deep
>>> @ 16 fib::fib (21 bytes) recursively inlining too deep
>>> @ 16 fib::fib (21 bytes) inline (hot)
>>> @ 10 fib::fib (21 bytes) recursively inlining too deep
>>> @ 16 fib::fib (21 bytes) recursively inlining too deep
>>> 362 1 % fib::main @ 2 (21 bytes)
>>> @ 10 fib::fib (21 bytes) inline (hot)
>>> @ 10 fib::fib (21 bytes) recursively inlining too deep
>>> @ 16 fib::fib (21 bytes) recursively inlining too deep
>>>
>>> It seems there is a "bug" in the logic in that it doesn't take the compiled method into account when counting the recursive inlining depth. I expected when using MaxRecursiveInlineLevel=0 that there is no recursive inlining at all.
>>>
>>> The simple example above shows that it might be possible that there are performance jumps between the various compiled methods as the recursive inlining depth changes.
>>>
>>> I'd like to fix that (and I already have a fix that handles direct and indirect recursion) but the question is can we fix that given the possibility that it can change performance of applications?
>>>
>>> -- Christian
More information about the hotspot-compiler-dev
mailing list