Hi Tamar,
On 10/11/17 10:56, Tamar Christina wrote:
Hi Sandra,
I've respun the patch with the docs changes you requested.
Regards,
Tamar
> -----Original Message-----
> From: Sandra Loosemore [mailto:san...@codesourcery.com]
> Sent: 07 November 2017 03:38
> To: Tamar Christina; gcc-patches@gcc.gnu.org
> Cc: nd; Ramana Radhakrishnan; Richard Earnshaw; ni...@redhat.com; Kyrylo
> Tkachov
> Subject: Re: [PATCH][GCC][ARM] Implement "arch" GCC pragma and
> "+<ext>" attributes [Patch (2/3)]
>
> On 11/06/2017 09:50 AM, Tamar Christina wrote:
> > Hi All,
> >
> > This patch adds support for the setting the architecture and
> > extensions using the target GCC pragma.
> >
> > #pragma GCC target ("arch=armv8-a+crc")
> >
> > It also supports a short hand where an extension is just added to the
> > current architecture without changing it
> >
> > #pragma GCC target ("+crc")
> >
> > Popping and pushing options also correctly reconfigure the global
> > state as expected.
> >
> > Also supported is using the __attribute__((target("..."))) attributes
> > on functions to change the architecture or extension.
> >
> > Regtested on arm-none-eabi and no regressions.
This will need a bootstrap and test run on arm-none-linux-gnueabihf
(like all arm changes).
Your changelog at
https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00387.html mentions
some arm-c.c changes but I don't see any included in this patch?
The other changes look good and in line with what I would expect, but
can you please
post the arm-c.c changes if there are any?
Thanks,
Kyrill
> >
> > Ok for trunk?
> >
> > diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index
> >
> 8aa443f87fb700f7a723d736bdbd53b6c839656d..18d0ffa6820326ce7badf33001
> b1
> > c6a467c95883 100644
> > --- a/gcc/doc/extend.texi
> > +++ b/gcc/doc/extend.texi
> > @@ -3858,6 +3858,42 @@ Specifies the fpu for which to tune the
> performance of this function.
> > The behavior and permissible arguments are the same as for the
> > @option{-mfpu=} command-line option.
> >
> > +@item arch=
> > +@cindex @code{arch=} function attribute, ARM Specifies the
> > +architecture version and architectural extensions to use for this
> > +function. The behavior and permissible arguments are the same as for
> > +the @option{-march=} command-line option.
> > +
> > +The above target attributes can be specified as follows:
> > +
> > +@smallexample
> > +__attribute__((target("@var{attr-string}")))
> > +int
> > +f (int a)
> > +@{
> > + return a + 5;
> > +@}
> > +@end smallexample
> > +
> > +where @code{@var{attr-string}} is one of the attribute strings.
>
> This example doesn't illustrate anything useful, and in fact just
confuses
> things by introducing @var{attr-string}. Please use an actual valid
attribute
> here, something like "arch=armv8-a" or whatever.
>
> Also, either kill the sentence fragment after the example, or be
careful to
> add @noindent before it to indicate it's a continuation of the previous
> paragraph.
>
> > +
> > +Additionally, the architectural extension string may be specified on
> > +its own. This can be used to turn on and off particular
> > +architectural extensions without having to specify a particular
architecture
> version or core. Example:
> > +
> > +@smallexample
> > +__attribute__((target("+crc+nocrypto")))
> > +int
> > +foo (int a)
> > +@{
> > + return a + 5;
> > +@}
> > +@end smallexample
> > +
> > +In this example @code{target("+crc+nocrypto")} enables the @code{crc}
> > +extension and disables the @code{crypto} extension for the function
> > +@code{foo} without modifying an existing @option{-march=} or
> @option{-mcpu} option.
> > +
> > @end table
> >
> > @end table
>
> -Sandra