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