Inlining heuristic trouble

John Rose john.r.rose at oracle.com
Fri Jun 17 17:00:42 PDT 2011


On Jun 17, 2011, at 10:21 AM, Tom Rodriguez wrote:

>> 
>> Sorry, I was thinking recording which branch of the GWT is taken and 
>> storing them in the GWT.
>> Two GWTs should not share the same metadata.
> 
> This is the major problem with GWT/selectAlternative.  Previously when GWT was bytecodes we at least had a chance to get some profile information on which way the branch was likely to go but with the ricochet frame version we have no knowledge so each side of the if has equal probability.  The were no guarantees that the GWT would always be used as a fast/slow idiom but in practice it was so we used to get good data.  We'll have to find someway to capture profiles for this if we can to treat fast/slow in a more aggressive way.

selectAlternative has a branch profile.  As long as GWT is being used as expected (for fast/slow splits), selectAlternative will have a fast/slow profile, just like the original GWT invokers.

The PROB_FAIR in CallGenerator::for_method_handle_inline could be made "smarter", by feeding from the control inputs of the Phi; that would be a good start.

-- John


More information about the mlvm-dev mailing list