> -----Original Message-----
> From: Richard Earnshaw <richard.earns...@foss.arm.com>
> Sent: Monday, November 20, 2023 12:53 PM
> To: Tamar Christina <tamar.christ...@arm.com>; gcc-patches@gcc.gnu.org
> Cc: nd <n...@arm.com>; Richard Earnshaw <richard.earns...@arm.com>;
> Marcus Shawcroft <marcus.shawcr...@arm.com>; Kyrylo Tkachov
> <kyrylo.tkac...@arm.com>; Richard Sandiford
> <richard.sandif...@arm.com>
> Subject: Re: [PATCH]AArch64 docs: update -mcpu=generic definition on
> aarch64
> 
> 
> 
> On 16/11/2023 15:19, Tamar Christina wrote:
> > Hi All,
> >
> > This documents the behavior of the generic CPU options on AArch64.
> >
> > Bootstrapped Regtested on aarch64-none-linux-gnu and no issues.
> >
> > Ok for master?
> >
> > Thanks,
> > Tamar
> >
> > gcc/ChangeLog:
> >
> >     * doc/invoke.texi (generic): Update defintion.
> >     (generic-armv8-a, generic-armv9-a): Document.
> >
> > --- inline copy of patch --
> > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index
> >
> d0b55fb106f908e8222394bbd07670aa583c5680..77684c5d7c9c0bdd5872
> 50acc190
> > da81e0f7f032 100644
> > --- a/gcc/doc/invoke.texi
> > +++ b/gcc/doc/invoke.texi
> > @@ -20759,7 +20759,8 @@ processors implementing the target
> architecture.
> >   @item -mtune=@var{name}
> >   Specify the name of the target processor for which GCC should tune the
> >   performance of the code.  Permissible values for this option are:
> > -@samp{generic}, @samp{cortex-a35}, @samp{cortex-a53},
> > @samp{cortex-a55},
> > +@samp{generic}, @samp{generic-armv8-a}, @samp{generic-armv9-a},
> > +@samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a55},
> >   @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73},
> @samp{cortex-a75},
> >   @samp{cortex-a76}, @samp{cortex-a76ae}, @samp{cortex-a77},
> >   @samp{cortex-a65}, @samp{cortex-a65ae}, @samp{cortex-a34}, @@
> > -20798,6 +20799,11 @@ arithmetic instructions per cycle (2 for 256-bit
> SVE, 4 for 128-bit SVE).
> >   This is more general than tuning for a specific core like Neoverse V1
> >   but is more specific than the default tuning described below.
> >
> > +The value @samp{generic} should not be assumed to be a static
> configuration.
> > +Starting with GCC 14 this value can change over time in order to
> > +better reflect advancements in CPU microarchitecture.  If a specific
> > +version is required you are encouraged to use one of the architecture
> specific generic processors, e.g. @samp{generic-armv8-a}.
> > +
> >   Additionally on native AArch64 GNU/Linux systems the value
> >   @samp{native} tunes performance to the host system.  This option has no
> effect
> >   if the compiler is unable to recognize the processor of the host system.
> >
> >
> >
> >
> @opindex mcpu
> @item -mcpu=@var{name}
> Specify the name of the target processor, optionally suffixed by one or more
> feature modifiers.  This option has the form @option{-
> mcpu=@var{cpu}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
> permissible values for @var{cpu} are the same as those available
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ^
> for @option{-mtune}.
> ^^^^^^^^^^^^^^^^^^^^
> 
> So what is the behaviour now if these are used for -mcpu?  Do we really want
> to permit their use here?
> 

They behave as any other CPU but with the baseline architecture and no 
extensions
i.e. -mcpu=generic == -march=armv8-a -mtune=generic.

We've never blocked them before so doing so now would be a regression.
Conceptually they do make sense as -mcpu values as they just mean "give me
the best compatibility with this architecture as a baseline".

Regards,
Tamar

> R.

Reply via email to