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.

Thanks,
Andrew Pinski


>
> R.
> > OK?  Bootstrapped and tested on aarch64-linux-gnu with no regressions.
> >
> > Thanks,
> > Andrew Pinski
> >
> > ChangeLog:
> > * config/aarch64/aarch64.c (aarch64_override_options): Don't
> > warn when the selected cpu was generic.
> > ---
> >   gcc/config/aarch64/aarch64.c | 6 ++++--
> >   1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> > index 4a34dce..9173afe 100644
> > --- a/gcc/config/aarch64/aarch64.c
> > +++ b/gcc/config/aarch64/aarch64.c
> > @@ -14075,10 +14075,12 @@ aarch64_override_options (void)
> >       explicit_tune_core = selected_tune->ident;
> >       }
> >     /* If both -mcpu and -march are specified check that they are 
> > architecturally
> > -     compatible, warn if they're not and prefer the -march ISA flags.  */
> > +     compatible, warn if they're not and prefer the -march ISA flags.
> > +     Only warn if not using the generic cpu.  */
> >     else if (selected_arch)
> >       {
> > -      if (selected_arch->arch != selected_cpu->arch)
> > +      if (selected_cpu->ident != generic
> > +       && selected_arch->arch != selected_cpu->arch)
> >       {
> >         warning (0, "switch %<-mcpu=%s%> conflicts with %<-march=%s%> 
> > switch",
> >                      all_architectures[selected_cpu->arch].name,
> >
>

Reply via email to