RFR (M): 8000805: JMM issue: short loads are non-atomic
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Mon Oct 22 09:36:49 PDT 2012
Thank you, Chris.
Best regards,
Vladimir Ivanov
On 10/22/12 20:24, Christian Thalinger wrote:
> 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