[PATCH][GCC][ARM] Implement "arch" GCC pragma and "+<ext>" attributes [Patch (2/3)]

Tamar Christina Tamar.Christina@arm.com
Fri Nov 10 11:04:00 GMT 2017


Hi Sandra,

I've respun the patch with the docs changes you requested.

Regards,
Tamar

> -----Original Message-----
> From: Sandra Loosemore [mailto:sandra@codesourcery.com]
> Sent: 07 November 2017 03:38
> To: Tamar Christina; gcc-patches@gcc.gnu.org
> Cc: nd; Ramana Radhakrishnan; Richard Earnshaw; nickc@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.
> >
> > 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: respin-arm-2.patch
Type: application/octet-stream
Size: 6239 bytes
Desc: respin-arm-2.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20171110/2d5ff708/attachment.obj>


More information about the Gcc-patches mailing list