United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 7071307 MethodHandle bimorphic inlining should consider the frequency
7071307 : MethodHandle bimorphic inlining should consider the frequency

Details
Type:
Bug
Submit Date:
2011-07-26
Status:
Closed
Updated Date:
2011-10-07
Project Name:
JDK
Resolved Date:
2011-09-30
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs22
Fixed Versions:
hs22

Related Reports
Backport:
Backport:
Duplicate:
Relates:
Relates:
Relates:
Relates:

Sub Tasks

Description
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.

                                    

Comments
EVALUATION

See main CR
                                     
2011-09-12
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/c26de9aef2ed
                                     
2011-09-08
EVALUATION

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.

Additionally I added support for per method handle profile collection
since this was required to get good results for more complex programs.
This requires the fix for 7082631 on the JDK side.
http://cr.openjdk.java.net/~never/7082631

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.
                                     
2011-09-06
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/c26de9aef2ed
                                     
2011-09-03



Hardware and Software, Engineered to Work Together