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