[9] RFR (XXS): 8173404: C2: wrong nmethod dependency can be recorded for CallSite.target
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Jan 26 20:10:52 UTC 2017
Good.
Thanks,
Vladimir
On 1/26/17 8:32 AM, Vladimir Ivanov wrote:
> http://cr.openjdk.java.net/~vlivanov/8173404/webrev.00
> https://jbs.oracle.com/browse/JDK-8173404
>
> When C2 constant folds mutable call site target, it records a dependency on the value, but repeatedly reads the value
> from the call site. Since there's a race between compilation thread and application thread doing CallSite.setTarget(),
> it's possible to end up with different values used as the constant and recorded in the dependency.
>
> The fix is to reuse target constant when recording the dependency.
>
> Testing: regression test, RBT (in progress)
>
> Thanks!
>
> Best regards,
> Vladimir Ivanov
More information about the hotspot-compiler-dev
mailing list