Lost perf between 8u40 and 9 hs-comp
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Tue Mar 3 16:23:55 UTC 2015
John,
> So let's make hindsight work for us: Is there a way (either with or without the split you suggest) to more firmly couple the update to the query? Separating into two operations might be the cleanest way to go, but I think it's safer to keep both halves together, as long as the slow path can do the right stuff.
>
> Suggestion: Instead of have the intrinsic expand to nothing, have it expand to an uncommon trap (on the slow path), with the uncommon trap doing the profile update operation (as currently coded).
Right now, VM doesn't care about profiling logic at all. The intrinsic
is used only to inject profile data and all profiling happens in Java
code. Once MHI.profileBoolean is intrinsified (profile is injected), no
profiling actions are performed.
The only way I see is to inject count bump on pruned branch before
issuing uncommon trap. Alike profile_taken_branch in Parse::do_if, but
it should not update MDO, but user-specified int[2]).
It looks irregular and spreads profiling logic between VM & Java code.
But it allows to keep single entry point between VM & Java
(MHI.profileBoolean).
I'll prototype it to see how does it look like on the code level.
Best regards,
Vladimir Ivanov
More information about the mlvm-dev
mailing list