[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