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

Christian Thalinger christian.thalinger at oracle.com
Mon Oct 22 09:24:46 PDT 2012


Looks good.

-- Chris

On Oct 22, 2012, at 8:53 AM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> 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