Thanks, John!

Will fix the typo before pushing the fix.

Best regards,
Vladimir Ivanov

On 3/16/15 9:51 PM, John Rose wrote:
Good fix, thanks.  — John

P.S.  I noticed a typo:  "it's" (contraction of "it is") should be "its" (genitive of 
"it").

On Mar 16, 2015, at 11:26 AM, Vladimir Ivanov <vladimir.x.iva...@oracle.com> 
wrote:

http://cr.openjdk.java.net/~vlivanov/8074548/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8074548

MethodHandleImpl::profileBoolean doesn't update never-taken branch count when 
hitting a deopt on it. As a result, for rarely taken branches consequent 
compilations consider them as never-taken and prune them again causing repeated 
deopts. It severely affects peak performance.

The fix is to update MHI::profileBoolean intrinsic to insert a guard and 
uncommon trap w/ reexecute bit set for never-seen value. Once previously never 
seen value is encountered, the execution resumes after deopt in 
MHI::profileBoolean and corresponding count becomes non-zero.

The guard doesn't add any additional overhead, since it dominates all value 
usages and all branches on the same value are eliminated.

Testing: java/lang/invoke, nashorn, octane

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

Reply via email to