RFR (M): 8000805: JMM issue: short loads are non-atomic

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Mon Oct 22 09:00:23 PDT 2012


Thank you, Vladimir.

Best regards,
Vladimir Ivanov

On 10/22/12 19:55, Vladimir Kozlov wrote:
> Good.
> 
> Thanks,
> Vladimir
> 
> On Oct 22, 2012, at 8:53 AM, Vladimir Ivanov wrote:
> 
>> Thanks, fixed.
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> On 10/22/12 19:25, Vladimir Kozlov wrote:
>>> Vladimir I.
>>>
>>> Instead of checking phase->is_IterGVN() you should check can_reshape flag which is used exactly for such purpose.
>>>
>>> Thanks,
>>> Vladimir K.
>>>
>>> On Oct 22, 2012, at 8:09 AM, Vladimir Ivanov wrote:
>>>
>>>> Updated version: http://cr.openjdk.java.net/~vlivanov/8000805/webrev.01/
>>>>
>>>> Removed changes in AD files and perform transforms during IGVN phase
>>>> when Load has a single user.
>>>>
>>>> Best regards,
>>>> Vladimir Ivanov
>>>>
>>>> On 10/19/12 22:39, Vladimir Ivanov wrote:
>>>>> http://cr.openjdk.java.net/~vlivanov/8000805/webrev.00/
>>>>> 282 lines changed: 255 ins; 27 del; 0 mod
>>>>>
>>>>> Ideal transformations during parsing & IGVN may rematerialize loads in
>>>>> order to reify useful information (like signed/unsigned load). Such
>>>>> behavior breaks JMM - instead of a single atomic load, multiple loads
>>>>> are performed violating consistency of loaded data.
>>>>>
>>>>> The fix is to disable such transformations at all, but perform relevant
>>>>> optimizations during matching.
>>>>>
>>>>> It fixes only C2 part of problem. С1 has similar deficiency, but it'll
>>>>> be addressed separately.
>>>>>
>>>>> Testing: failing test, test for new matching rules, JPRT, CTW (x86, x64
>>>>> & sparc).
>>>>>
>>>>> Best regards,
>>>>> Vladimir Ivanov
>>>
> 


More information about the hotspot-compiler-dev mailing list