review for 7071307: MethodHandle bimorphic inlining should consider the frequency
tom.rodriguez at oracle.com
Thu Jul 28 16:47:05 PDT 2011
46 lines changed: 27 ins; 6 del; 13 mod; 3568 unchg
7071307: MethodHandle bimorphic inlining should consider the frequency
The fix for 7050554 added a bimorphic inline path but didn't take into
account the frequency of the guarding test. This ends up treating
both sides of the if as equally frequent which can lead to over
inlining and overflowing the method inlining limits. The fix is to
grab the frequency from the If and apply that to the branches. This
addresses a major source of overinlining that can result in bad
performance with JSR 292. We may do a later extension to this to
actually do per call chain profiling of selectAlternative but that's a
more complicated fix.
I also fixed a problem with the ideal graph printer where debug_orig
printing would go into an infinite loop.
Tested with jruby and vm.mlvm tests.
More information about the hotspot-compiler-dev