Request for review (S): 7022998: JSR 292 recursive method handle calls inline themselves infinitely

Christian Thalinger christian.thalinger at oracle.com
Tue Mar 15 10:37:28 PDT 2011


On Mar 15, 2011, at 5:57 PM, Vladimir Kozlov wrote:
> Christian,
> 
> Instead of duplicating code in several places could you factor it in one method?

Actually I wanted to do that but I didn't know where to put the code.  sharedRuntime?

> 
> sharedRuntime.cpp: you removed "---" which was indication of native method wrapper compilation.

Is there a difference between the "n" printed in nmethod::print_compilation and the "n" printed in AdapterHandlerLibrary::create_native_wrapper?

> 
> Main fix is fine.

Okay.

-- Christian

> 
> Thanks,
> Vladimir
> 
> Christian Thalinger wrote:
>> http://cr.openjdk.java.net/~twisti/7022998/
>> 7022998: JSR 292 recursive method handle calls inline themselves infinitely
>> Reviewed-by:
>> Methods doing recursive method handle calls, like in JRuby's
>> bench_fib_resursive.rb or bench_tak.rb, inline themselves infinitely.
>> This results in a huge method which hits compile thresholds and aborts
>> inlining resulting in poor performance.
>> The inlining logic needs to know about method handle call sites and
>> search the call stack for recursive calls.
>> This change also cleans up the PrintCompilation, PrintInlining and
>> TraceTypeProfile output to be aligned since the tiered compilation
>> changes added some additional output.
>> src/share/vm/c1/c1_GraphBuilder.cpp
>> src/share/vm/opto/bytecodeInfo.cpp
>> src/share/vm/opto/doCall.cpp
>> src/share/vm/runtime/sharedRuntime.cpp




More information about the hotspot-compiler-dev mailing list