On 01/05/2020 12:01, Kyrylo Tkachov wrote:
> Hi JangNing (please reply inline in the future as that is the preferred style 
> on this mailing list)
> 
>> -----Original Message-----
>> From: JiangNing OS <jiangn...@os.amperecomputing.com>
>> Sent: 01 May 2020 11:49
>> To: Richard Earnshaw <richard.earns...@foss.arm.com>; Kyrylo Tkachov
>> <kyrylo.tkac...@arm.com>; Andrew Pinski <pins...@gmail.com>; Florian
>> Weimer <fwei...@redhat.com>
>> Cc: gcc-patches@gcc.gnu.org; nmeye...@amzn.com
>> Subject: RE: Should ARMv8-A generic tuning default to -moutline-atomics
>>
>> In reality, a lot of users are still using old gcc versions running on new
>> hardware. OpenJDK is a typical example, I think.
> 
> Although this option is not an ABI change and thus I don't expect it to break 
> anything by design, it is definitely good to be cautious as it is a 
> significant change in code generation. Let's wait for a few weeks to make 
> sure the default change in GCC 10.1 works for everyone and then revisit the 
> backport story. In any case, GCC 9 and 8 are not extremely close to release 
> currently IIUC.

Frankly, I don't think there is anything to consider.  We should not
change codegen for an existing release series unless there is a bug.  It
upsets users who expect stability in dot releases.

There's an option that can be used to change the behaviour, and that's
enough.

R.

> 
> Thanks,
> Kyrill
> 
>>
>>> -----Original Message-----
>>> From: Richard Earnshaw <richard.earns...@foss.arm.com>
>>> Sent: Friday, May 1, 2020 6:41 PM
>>> To: JiangNing OS <jiangn...@os.amperecomputing.com>; Kyrylo Tkachov
>>> <kyrylo.tkac...@arm.com>; Andrew Pinski <pins...@gmail.com>; Florian
>>> Weimer <fwei...@redhat.com>
>>> Cc: gcc-patches@gcc.gnu.org; nmeye...@amzn.com
>>> Subject: Re: Should ARMv8-A generic tuning default to -moutline-atomics
>>>
>>> On 01/05/2020 11:38, JiangNing OS via Gcc-patches wrote:
>>>> Hi Kyrill,
>>>>
>>>> Can it be backported to gcc 8/9/10 branches?
>>>>
>>>
>>> I'm not sure changing the defaults of things like this is a good idea on 
>>> 'dot'
>>> releases.
>>>
>>> Having the option is one thing.  Changing the default another thing 
>>> entirely.
>>>
>>> R.
>>>
>>>> Thanks,
>>>> -Jiangning
>>>>
>>>>> -----Original Message-----
>>>>> From: Gcc-patches <gcc-patches-boun...@gcc.gnu.org> On Behalf Of
>>>>> Kyrylo Tkachov
>>>>> Sent: Thursday, April 30, 2020 8:27 PM
>>>>> To: Kyrylo Tkachov <kyrylo.tkac...@arm.com>; Andrew Pinski
>>>>> <pins...@gmail.com>; Florian Weimer <fwei...@redhat.com>
>>>>> Cc: gcc-patches@gcc.gnu.org; nmeye...@amzn.com
>>>>> Subject: RE: Should ARMv8-A generic tuning default to
>>>>> -moutline-atomics
>>>>>
>>>>>
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Gcc-patches <gcc-patches-boun...@gcc.gnu.org> On Behalf Of
>>>>>> Kyrylo Tkachov
>>>>>> Sent: 30 April 2020 11:57
>>>>>> To: Andrew Pinski <pins...@gmail.com>; Florian Weimer
>>>>>> <fwei...@redhat.com>
>>>>>> Cc: gcc-patches@gcc.gnu.org; nmeye...@amzn.com
>>>>>> Subject: RE: Should ARMv8-A generic tuning default to
>>>>>> -moutline-atomics
>>>>>>
>>>>>> [Moving to gcc-patches]
>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: Gcc <gcc-boun...@gcc.gnu.org> On Behalf Of Andrew Pinski
>> via
>>>>>>> Gcc
>>>>>>> Sent: 30 April 2020 07:21
>>>>>>> To: Florian Weimer <fwei...@redhat.com>
>>>>>>> Cc: GCC Mailing List <g...@gcc.gnu.org>; nmeye...@amzn.com
>>>>>>> Subject: Re: Should ARMv8-A generic tuning default to
>>>>>>> -moutline-atomics
>>>>>>>
>>>>>>> On Wed, Apr 29, 2020 at 6:25 AM Florian Weimer via Gcc
>>>>>>> <g...@gcc.gnu.org>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Distributions are receiving requests to build things with
>>>>>>>> -moutline-atomics:
>>>>>>>>
>>>>>>>>   <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=956418>
>>>>>>>>
>>>>>>>> Should this be reflected in the GCC upstream defaults for ARMv8-A
>>>>>>>> generic tuning?  It does not make much sense to me if every
>>>>>>>> distribution has to overide these flags, either in their build
>>>>>>>> system or by patching GCC.
>>>>>>>
>>>>>>> At least we should make it a configure option.
>>>>>>> I do want the ability to default it for our (Marvell) toolchain for
>>>>>>> Linux (our bare metal toolchain will be defaulting to ARMv8.2-a
>>>>>>> anyways).
>>>>>>
>>>>>> After some internal discussions, I am open to having it on as a default.
>>>>>> Here are two versions. One has it as a tuning setting that CPUs can
>>>>>> override, the other just switches it on by default always unless
>>>>>> overridden by -mno- outline-atomics.
>>>>>> I slightly prefer the second one as it's cleaner and simpler, but
>>>>>> happy to take either.
>>>>>> Any preferences?
>>>>>> Thanks,
>>>>>> Kyrill
>>>>>>
>>>>>> ChangeLogs:
>>>>>>
>>>>>> 2020-04-30  Kyrylo Tkachov  <kyrylo.tkac...@arm.com>
>>>>>>
>>>>>>  * config/aarch64/aarch64-tuning-flags.def (no_outline_atomics):
>>>>>> Declare.
>>>>>>  * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define.
>>>>>>  * config/aarch64/aarch64.opt (moutline-atomics): Change to Int
>>>>>> variable.
>>>>>>
>>>>>> 2020-04-30  Kyrylo Tkachov  <kyrylo.tkac...@arm.com>
>>>>>>
>>>>>>  * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define.
>>>>>>  * config/aarch64/aarch64.opt (moutline-atomics): Change to Int
>>>>>> variable.
>>>>>>  * doc/invoke.texi (moutline-atomics): Document as on by default.
>>>>>>
>>>>>
>>>>> I've pushed this second variant after bootstrap and testing on
>>>>> aarch64-none- linux-gnu.
>>>>> Compiled a simple atomic-using testcase with all relevant
>>>>> combinations of - moutline-atomics and LSE and no-LSE -march options.
>>>>> Before the results were (as expected):
>>>>>          |-moutline-atomics | -mno-outline-atomics | <no
>>>>> outline-atomics option
>>>>> --------------------------------------------------------------------------------
>>>>> LSE      |  inline LSE      | inline LSE            | inline LSE
>>>>> no-LSE   |  outline         | inline LDXR/STXR      | inline LDX/STXR
>>>>>
>>>>>
>>>>> with this patch they are:
>>>>>          -moutline-atomics  | -mno-outline-atomics | <no
>>>>> outline-atomics option>
>>>>> --------------------------------------------------------------------------------
>>>>> LSE      |  inline LSE      | inline LSE           | inline LSE
>>>>> no-LSE   |  outline         | inline LDXR/STXR     | outline
>>>>>
>>>>> Thanks,
>>>>> Kyrill
> 

Reply via email to