review for 7071307: MethodHandle bimorphic inlining should consider the frequency

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Jul 28 18:03:33 PDT 2011


Tom,

I think you need to check which path has IfTrue project to apply probability 
from IfNode.

Vladimir

Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/7071307
> 46 lines changed: 27 ins; 6 del; 13 mod; 3568 unchg
> 
> 7071307: MethodHandle bimorphic inlining should consider the frequency
> Reviewed-by:
> 
> 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 mailing list