[PATCH][AArch64] Use new target pass registration framework for FMA steering pass
James Greenhalgh
james.greenhalgh@arm.com
Mon Oct 17 16:31:00 GMT 2016
On Thu, Oct 13, 2016 at 06:14:16PM +0100, Kyrill Tkachov wrote:
> Hi all,
>
> This patch moves the aarch64-specific FMA steering pass registration into the new framework
> that Jakub introduced. With this patch the RTL dump for the steering pass is now numbered properly
> so that it appears after the regrename pass, rather than getting a dump number that puts it after
> all the other passes.
>
> I've followed a similar approach to [1] and added an aarch64-passes.def file and updated
> PASSES_EXTRA in t-aarch64. I deleted cortex-a57-fma-steering.h as I don't think it adds any value.
> The prototype for the make_pass* function works just as well in aarch64-protos.h I think.
>
> Bootstrapped and tested on aarch64-none-linux-gnu.
> Manually checked that the pass still runs when tuning for Cortex-A57 and doesn't run otherwise.
>
> Ok for trunk?
OK, a comment on git diffs below that doesn't change the patch content.
> [1] https://gcc.gnu.org/ml/gcc-patches/2016-10/msg00615.html
>
> 2016-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
>
> * config/aarch64/aarch64.c: Delete inclusion of
> cortex-a57-fma-steering.h.
> (aarch64_override_options): Delete call
> to aarch64_register_fma_steering.
> * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
> * config/aarch64/cortex-a57-fma-steering.h: Delete.
> * config/aarch64/aarch64-passes.def: New file.
> * config/aarch64/cortex-a57-fma-steering.c
> (aarch64_register_fma_steering): Delete definition.
> (make_pass_fma_steering): Remove static qualifier.
> * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
> (cortex-a57-fma-steering.o): Remove dependency on
> cortex-a57-fma-steering.h.
> diff --git a/gcc/config/aarch64/cortex-a57-fma-steering.h b/gcc/config/aarch64/aarch64-passes.def
> similarity index 78%
> rename from gcc/config/aarch64/cortex-a57-fma-steering.h
> rename to gcc/config/aarch64/aarch64-passes.def
> index 65bf5acc132d2db645d1b00ef031dc33a195bb78..7fe80391a3fb0dc79715b9fb23fd4c08a9d26d74 100644
> --- a/gcc/config/aarch64/cortex-a57-fma-steering.h
> +++ b/gcc/config/aarch64/aarch64-passes.def
> @@ -1,6 +1,5 @@
> -/* This file contains declarations for the FMA steering optimization
> - pass for Cortex-A57.
> - Copyright (C) 2015-2016 Free Software Foundation, Inc.
> +/* AArch64-specific passes declarations.
> + Copyright (C) 2016 Free Software Foundation, Inc.
> Contributed by ARM Ltd.
>
> This file is part of GCC.
> @@ -19,4 +18,4 @@
> along with GCC; see the file COPYING3. If not see
> <http://www.gnu.org/licenses/>. */
>
> -void aarch64_register_fma_steering (void);
> +INSERT_PASS_AFTER (pass_regrename, 1, pass_fma_steering);
A technicality on your git diff format, this should not be a rename.
Just make sure when you apply it to svn you accurately record a delete of
the old file, and creation of the new file.
Thanks,
James
More information about the Gcc-patches
mailing list