Code Review for 7022998

Prepared by:twisti on Mon Mar 28 02:09:24 PDT 2011
Workspace:/home/twisti/hotspot-comp/7022998
Compare against: ssh://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot
Summary of changes: 331 lines changed: 157 ins; 127 del; 47 mod; 29904 unchg
Patch of changes: 7022998.patch
Printable review: 7022998.pdf
Author comments:
7022998: JSR 292 recursive method handle calls inline themselves infinitely
Reviewed-by: never, kvn

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.

Bug id: 7022998 JSR 292 recursive method handle calls inline themselves infinitely
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/c1/c1_GraphBuilder.cpp

19 lines changed: 1 ins; 17 del; 1 mod; 3795 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/bytecodeInfo.cpp

39 lines changed: 18 ins; 11 del; 10 mod; 537 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/doCall.cpp

14 lines changed: 1 ins; 0 del; 13 mod; 940 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/sharedRuntime.cpp

16 lines changed: 5 ins; 10 del; 1 mod; 2809 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/compiler/compileBroker.hpp

20 lines changed: 17 ins; 2 del; 1 mod; 388 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/compiler/compileBroker.cpp

121 lines changed: 101 ins; 17 del; 3 mod; 1908 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/nmethod.cpp

77 lines changed: 4 ins; 62 del; 11 mod; 2766 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/sharedRuntime.hpp

3 lines changed: 1 ins; 0 del; 2 mod; 676 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/library_call.cpp

6 lines changed: 1 ins; 4 del; 1 mod; 5312 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/nmethod.hpp

9 lines changed: 2 ins; 4 del; 3 mod; 718 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/sharedRuntime_x86_64.cpp

2 lines changed: 2 ins; 0 del; 0 mod; 3346 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/sharedRuntime_x86_32.cpp

2 lines changed: 2 ins; 0 del; 0 mod; 3001 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/sharedRuntime_sparc.cpp

3 lines changed: 2 ins; 0 del; 1 mod; 3708 unchg

This code review page was prepared using /home/twisti/bin/webrev (vers 23.18-hg-never).