[14] RFR (XS): 8234403: C2: Enable CallSite.target updates in constructors

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Nov 19 17:18:32 UTC 2019


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

Direct CallSite.target updates are not supported in C2, because in 
general the JVM has to invalidate all nmethod dependency before 
performing the update (handled by 
MethodHandleNatives.setCallSiteTargetNormal/Volatile).

But it's not the case for initializing stores during CallSite instance 
construction.

Proposed fix assumes all raw updates happen on not-yet-published 
instances (so no nmethod dependencies) and treats CallSite.target 
updates inside ctors as an ordinary field.

Considering the changes proposed for 8234401 [1], all direct updates in 
CallSite ctors are safe to be treated as ordinary field updates.

Testing: tier1-4

Best regards,
Vladimir Ivanov

[1] 
https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-November/036019.html


More information about the hotspot-compiler-dev mailing list