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

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Wed Nov 20 11:10:25 UTC 2019


Thanks for reviews, Vladimir K. and Paul.

Best regards,
Vladimir Ivanov

On 19.11.2019 22:03, Vladimir Kozlov wrote:
> +1
> 
> Vladimir K
> 
> On 11/19/19 10:26 AM, Paul Sandoz wrote:
>> +1
>>
>> Paul.
>>
>>> On Nov 19, 2019, at 9:18 AM, Vladimir Ivanov 
>>> <vladimir.x.ivanov at oracle.com> wrote:
>>>
>>> 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