RFR (M): 8000805: JMM issue: short loads are non-atomic
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon Oct 22 08:25:59 PDT 2012
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