[AArch64] Rework ARMv8.1 command line options.

James Greenhalgh james.greenhalgh@arm.com
Mon Dec 7 14:41:00 GMT 2015


On Mon, Dec 07, 2015 at 11:09:52AM +0000, Matthew Wahab wrote:
> Ping. Updated patch attached.

This is OK, thanks.

James

> 
> Matthew
> 
> On 27/11/15 09:23, Matthew Wahab wrote:
> >On 24/11/15 15:22, James Greenhalgh wrote:
> > > On Mon, Nov 16, 2015 at 04:31:32PM +0000, Matthew Wahab wrote:
> > >>
> > >> The command line options for target selection allow ARMv8.1 extensions
> > >> to be individually enabled/disabled. They also allow the extensions to
> > >> be enabled with -march=armv8-a. This doesn't reflect the ARMv8.1
> > >> architecture which requires all extensions to be enabled and doesn't make
> > >> them available for ARMv8.
> > >>
> > >> This patch removes the options for the individual ARMv8.1 extensions
> > >> except for +lse. This means that setting -march=armv8.1-a will enable
> > >> all extensions required by ARMv8.1 and that the ARMv8.1 extensions can't
> > >> be used with -march=armv8.
> >
> > > I think I mentioned it in another review, but this patch seems a good place
> > > to solve the problem. Could you please update the documentation to explain
> > > what you've written above. As it stands I find myself confused by which
> > > features GCC will make available at -march=armv8-a and -march=armv8.1-a.
> >
> >Attached is a patch with the documentation for the AArch64 -march option
> >reworked to try to make it clearer what the -march=armv8.1-a option will
> >do. Extensions with feature modifiers (+crc, +lse) are explicitly stated
> >as being enabled by -march=armv8.1-a. Extensions without feature
> >modifiers (RDMA, PAN, LOR) are treated as part of the generic 'ARMv8.1
> >architecture extension' term in the description of -march=armv8.1-a.
> >
> >I've also rearranged the -march section, to put the description of the
> >values for -march together and reworded the description of the
> >-march=native option.
> >
> >Matthew
> >
> >2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
> >
> >     * config/aarch64/aarch64-options-extensions.def: Remove
> >     AARCH64_FL_RDMA from "fp" and "simd".  Remove "pan", "lor",
> >     "rdma".
> >     * config/aarch64/aarch64.h (AARCH64_FL_PAN): Remove.
> >     (AARCH64_FL_LOR): Remove.
> >     (AARCH64_FL_RDMA): Remove.
> >     (AARCH64_FL_V8_1): New.
> >     (AARCH64_FL_FOR_AARCH8_1): Replace AARCH64_FL_PAN, AARCH64_FL_LOR
> >     and AARCH64_FL_RDMA with AARCH64_FL_V8_1.
> >     (AARCH64_ISA_RDMA): Replace AARCH64_FL_RDMA with AARCH64_FL_V8_1.
> >     * doc/invoke.texi (AArch64 -march): Rewrite initial paragraph and
> >     section on -march=native.  Group descriptions of permitted
> >     architecture names together.  Expand description of
> >     -march=armv8.1-a.
> >     (AArch64 -mtune): Slightly rework section on -march=native.
> >     (AArch64 -mcpu): Slightly rework section on -march=native.
> >     (AArch64 Feature Modifiers): Remove "pan", "lor" and "rdma".
> >     State that -march=armv8.1-a enables "crc" and "lse".
> >
> 



More information about the Gcc-patches mailing list