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