"Richard Earnshaw (lists)" <richard.earns...@arm.com> writes:
> On 14/02/2020 10:41, Andrew Pinski wrote:
>> On Fri, Feb 14, 2020 at 2:12 AM Richard Earnshaw (lists)
>> <richard.earns...@arm.com> wrote:
>>>
>>> On 14/02/2020 03:18, apin...@marvell.com wrote:
>>>> From: Andrew Pinski <apin...@marvell.com>
>>>>
>>>> Right if someone supplies a -mcpu= option and then overrides
>>>> that option with -march=*, we get a warning when they conflict.
>>>> What we need is a generic cpu for each arch level but that is not
>>>> that useful because the only difference would be the arch level.
>>>> The best option is to allow -mcpu=generic -march=armv8.5-a not to
>>>> warn and that is now a generic armv8.5-a arch.
>>>>
>>>
>>> Then they should use -mtune=generic, rather than -mcpu.
>> 
>> Does it make sense to run:
>> "make check RUNTESTFLAGS="--target_board=unix/{,-mcpu=octeontx2}"
>> to make sure there are no latent bugs floating around with slightly
>> different tuning/scheduling?
>> The majority of the aarch64.exp failures are due to that warning.
>> If not how would suggest to test a -mcpu= option?
>> 
>> There is another use case:
>> A specific object file is to be run only on armv8.5-a processors but
>> someone sets CFLAGS to include -mcpu=octeontx2.
>> How would you suggest going about handling this case?
>> 
>> These are the two major cases where having a -mcpu=generic which
>> overrides a previous -mcpu= option and still able to select a higher
>> -march= option.
>> 
>
> -mcpu=generic should behave *exactly* the same way as specifying the CPU 
> you have, so to take an example, if your cpu is a Cortex-A72, then 
> -mcpu=generic and -mcpu=cortex-a72 should result in exactly the same 
> compiler output and diagnostics should be generated as if you'd 
> specified the latter.  Changing the behaviour just for generic therefore 
> does not make sense.

Are you sure?  That sounds more like -mcpu=native than -mcpu=generic.

AFAICT, -mcpu=generic always selects base Armv8 with generic tuning (i.e. the
default choice for default configure-time arguments).

It sounds like the use case here is to nullify the effect of a previous -mcpu,
a bit like "-mno-cpu" would if it was allowed.  If so, I guess that would need
to be a new option.  But could you test using:

"make check 
RUNTESTFLAGS="--target_board=unix/{,-march=armv8.2-a+.../-mtune=octeontx2}"

instead?  It's more awkward to specify, but probably easier than making sure
that the "-mno-cpu" equivalent is used in every test that needs it.

Thanks,
Richard

Reply via email to