Hi all, This patch is part of a few prerequisites to get target attribute support in AArch64. This registers the fma steering pass unconditionally but gates its execution instead. This way the pass will be available if during the compilation of a file the user specifies cortex-a57 tuning using a target attribute or pragma, or whatever.
Bootstrapped and tested on aarch64. Confirmed that the pass runs only when expected. Ok for trunk? Thanks, Kyrill 2015-06-03 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally register fma steering pass. * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on AARCH64_TUNE_FMA_STEERING.
commit 58e5b728ae7f4cf4d00b732492b455bd6ca7feb6 Author: Kyrylo Tkachov <kyrylo.tkac...@arm.com> Date: Fri May 8 17:16:51 2015 +0100 [AArch64] Always register fma_steering pass but gate it on the target option instead diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 53aa4a8..1301e8b 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -7255,8 +7255,7 @@ aarch64_override_options (void) #endif } - if (AARCH64_TUNE_FMA_STEERING) - aarch64_register_fma_steering (); + aarch64_register_fma_steering (); aarch64_override_options_after_change (); } diff --git a/gcc/config/aarch64/cortex-a57-fma-steering.c b/gcc/config/aarch64/cortex-a57-fma-steering.c index 3d7557a..5228b57 100644 --- a/gcc/config/aarch64/cortex-a57-fma-steering.c +++ b/gcc/config/aarch64/cortex-a57-fma-steering.c @@ -1053,7 +1053,7 @@ public: /* opt_pass methods: */ virtual bool gate (function *) { - return optimize >= 2; + return AARCH64_TUNE_FMA_STEERING && optimize >= 2; } virtual unsigned int execute (function *)