On Jun 17, 2011, at 5:00 PM, John Rose wrote:

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

Well duh on me.  When I wrote that my brain was thinking cmove instruction, not 
a real If diamond with probability.  I don't think fixing this will improve the 
inlining in the fast case but it should reduce useless inlining in the slow 
path.  I've got part of this working.

tom

> 
> -- John
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to