This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch AArch64 4/4] Add -moverride tuning command, and wire it up for control of fusion and fma-steering
- From: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- To: James Greenhalgh <james dot greenhalgh at arm dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 26 Jun 2015 13:44:51 +0100
- Subject: Re: [Patch AArch64 4/4] Add -moverride tuning command, and wire it up for control of fusion and fma-steering
- Authentication-results: sourceware.org; auth=none
- References: <1435049360-10990-1-git-send-email-james dot greenhalgh at arm dot com> <1435049360-10990-5-git-send-email-james dot greenhalgh at arm dot com>
On 23 June 2015 at 09:49, James Greenhalgh <james.greenhalgh@arm.com> wrote:
>
> Hi,
>
> This final patch adds support for the new command line option
> "-moverride". The purpose of this command line is to allow expert-level users
> of the compiler, and those comfortable with experimenting with the compiler,
> *unsupported* full access to the tuning structures used in the AArch64
> back-end.
>
> For now, we only enable command-line access to the fusion pairs to
> enable and whether or not to use the Cortex-A57 FMA register renaming
> pass. Though in future we can expand this further.
>
> With this patch, you might write something like:
>
> -moverride=fuse=adrp+add.cmp+branch:tune=rename_fma_regs
>
> To enable fusion of adrp+add and cmp+branch and to enable the
> fma-rename pass.
>
> I've bootstrapped and tested the patch set on aarch64-none-linux-gnu
> with BOOT_CFLAGS set to the example string above, and again in the
> standard configuration with no issues.
>
> OK?
>
> Thanks,
> James
>
> ---
> 2015-06-23 James Greenhalgh <james.greenhalgh@arm.com>
>
> * config/aarch64/aarch64.opt: (override): New.
> * doc/invoke.texi (override): Document.
> * config/aarch64/aarch64.c (aarch64_flag_desc): New
> (aarch64_fusible_pairs): Likewise.
> (aarch64_tuning_flags): Likewise.
> (aarch64_tuning_override_function): Likewise.
> (aarch64_tuning_override_functions): Likewise.
> (aarch64_parse_one_option_token): Likewise.
> (aarch64_parse_boolean_options): Likewise.
> (aarch64_parse_fuse_string): Likewise.
> (aarch64_parse_tune_string): Likewise.
> (aarch64_parse_one_override_token): Likewise.
> (aarch64_parse_override_string): Likewise.
> (aarch64_override_options): Parse the -override string if it
> is present.
>
+static const struct aarch64_tuning_override_function
+ aarch64_tuning_override_functions[] =
The indentation looks odd here, but otherwise OK /Marcus