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

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Mon Oct 22 08:53:14 PDT 2012


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