aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2017-03-03 15:25:48 +0100
committerYvan Roux <yvan.roux@linaro.org>2017-03-14 12:42:20 +0000
commite9ba16e58e773af11ff15ddf539f524be157aed1 (patch)
treeed9734201c95723307aa3ecd4ea951ca712ced98
parent212b407177170add87ebc810914a268eabbf5b49 (diff)
gcc/
Backport from trunk r241248. 2016-10-17 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. Change-Id: I1d33b60fd1fae8c9de3b2a75e51322c04dba9b7a
-rw-r--r--gcc/config/aarch64/aarch64-passes.def (renamed from gcc/config/aarch64/cortex-a57-fma-steering.h)7
-rw-r--r--gcc/config/aarch64/aarch64-protos.h2
-rw-r--r--gcc/config/aarch64/aarch64.c4
-rw-r--r--gcc/config/aarch64/cortex-a57-fma-steering.c16
-rw-r--r--gcc/config/aarch64/t-aarch643
5 files changed, 8 insertions, 24 deletions
diff --git a/gcc/config/aarch64/cortex-a57-fma-steering.h b/gcc/config/aarch64/aarch64-passes.def
index 65bf5acc132..7fe80391a3f 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);
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index f27013889b8..23ac210be59 100644
--- a/gcc/config/aarch64/aarch64-protos.h
+++ b/gcc/config/aarch64/aarch64-protos.h
@@ -466,4 +466,6 @@ enum aarch64_parse_opt_result aarch64_parse_extension (const char *,
std::string aarch64_get_extension_string_for_isa_flags (unsigned long,
unsigned long);
+rtl_opt_pass *make_pass_fma_steering (gcc::context *ctxt);
+
#endif /* GCC_AARCH64_PROTOS_H */
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 404dcfc0fbc..f222dba7f57 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -62,7 +62,6 @@
#include "rtl-iter.h"
#include "tm-constrs.h"
#include "sched-int.h"
-#include "cortex-a57-fma-steering.h"
#include "target-globals.h"
#include "common/common-target.h"
@@ -8591,9 +8590,6 @@ aarch64_override_options (void)
while processing functions with potential target attributes. */
target_option_default_node = target_option_current_node
= build_target_option_node (&global_options);
-
- aarch64_register_fma_steering ();
-
}
/* Implement targetm.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 1bf804b4873..b5f329f75a6 100644
--- a/gcc/config/aarch64/cortex-a57-fma-steering.c
+++ b/gcc/config/aarch64/cortex-a57-fma-steering.c
@@ -35,7 +35,6 @@
#include "context.h"
#include "tree-pass.h"
#include "regrename.h"
-#include "cortex-a57-fma-steering.h"
#include "aarch64-protos.h"
/* For better performance, the destination of FMADD/FMSUB instructions should
@@ -1068,21 +1067,8 @@ public:
/* Create a new fma steering pass instance. */
-static rtl_opt_pass *
+rtl_opt_pass *
make_pass_fma_steering (gcc::context *ctxt)
{
return new pass_fma_steering (ctxt);
}
-
-/* Register the FMA steering pass to the pass manager. */
-
-void
-aarch64_register_fma_steering ()
-{
- opt_pass *pass_fma_steering = make_pass_fma_steering (g);
-
- struct register_pass_info fma_steering_info
- = { pass_fma_steering, "rnreg", 1, PASS_POS_INSERT_AFTER };
-
- register_pass (&fma_steering_info);
-}
diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64
index 1ba8a5d1c51..b461eb5bede 100644
--- a/gcc/config/aarch64/t-aarch64
+++ b/gcc/config/aarch64/t-aarch64
@@ -56,12 +56,13 @@ aarch64-c.o: $(srcdir)/config/aarch64/aarch64-c.c $(CONFIG_H) $(SYSTEM_H) \
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
$(srcdir)/config/aarch64/aarch64-c.c
+PASSES_EXTRA += $(srcdir)/config/aarch64/aarch64-passes.def
+
cortex-a57-fma-steering.o: $(srcdir)/config/aarch64/cortex-a57-fma-steering.c \
$(CONFIG_H) $(SYSTEM_H) $(TM_H) $(REGS_H) insn-config.h $(RTL_BASE_H) \
dominance.h cfg.h cfganal.h $(BASIC_BLOCK_H) $(INSN_ATTR_H) $(RECOG_H) \
output.h hash-map.h $(DF_H) $(OBSTACK_H) $(TARGET_H) $(RTL_H) \
$(CONTEXT_H) $(TREE_PASS_H) regrename.h \
- $(srcdir)/config/aarch64/cortex-a57-fma-steering.h \
$(srcdir)/config/aarch64/aarch64-protos.h
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
$(srcdir)/config/aarch64/cortex-a57-fma-steering.c