[AArch64] Use new target pass registration framework for FMA steering pass
* 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. From-SVN: r241248
This commit is contained in:
parent
b810570549
commit
5d4d78403c
|
@ -1,3 +1,19 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
|
2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
* explow.c (validize_mem): Do not modify the argument in-place.
|
* explow.c (validize_mem): Do not modify the argument in-place.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
/* This file contains declarations for the FMA steering optimization
|
/* AArch64-specific passes declarations.
|
||||||
pass for Cortex-A57.
|
Copyright (C) 2016 Free Software Foundation, Inc.
|
||||||
Copyright (C) 2015-2016 Free Software Foundation, Inc.
|
|
||||||
Contributed by ARM Ltd.
|
Contributed by ARM Ltd.
|
||||||
|
|
||||||
This file is part of GCC.
|
This file is part of GCC.
|
||||||
|
@ -19,4 +18,4 @@
|
||||||
along with GCC; see the file COPYING3. If not see
|
along with GCC; see the file COPYING3. If not see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
void aarch64_register_fma_steering (void);
|
INSERT_PASS_AFTER (pass_regrename, 1, pass_fma_steering);
|
|
@ -463,4 +463,6 @@ enum aarch64_parse_opt_result aarch64_parse_extension (const char *,
|
||||||
std::string aarch64_get_extension_string_for_isa_flags (unsigned long,
|
std::string aarch64_get_extension_string_for_isa_flags (unsigned long,
|
||||||
unsigned long);
|
unsigned long);
|
||||||
|
|
||||||
|
rtl_opt_pass *make_pass_fma_steering (gcc::context *ctxt);
|
||||||
|
|
||||||
#endif /* GCC_AARCH64_PROTOS_H */
|
#endif /* GCC_AARCH64_PROTOS_H */
|
||||||
|
|
|
@ -62,7 +62,6 @@
|
||||||
#include "rtl-iter.h"
|
#include "rtl-iter.h"
|
||||||
#include "tm-constrs.h"
|
#include "tm-constrs.h"
|
||||||
#include "sched-int.h"
|
#include "sched-int.h"
|
||||||
#include "cortex-a57-fma-steering.h"
|
|
||||||
#include "target-globals.h"
|
#include "target-globals.h"
|
||||||
#include "common/common-target.h"
|
#include "common/common-target.h"
|
||||||
|
|
||||||
|
@ -8554,9 +8553,6 @@ aarch64_override_options (void)
|
||||||
while processing functions with potential target attributes. */
|
while processing functions with potential target attributes. */
|
||||||
target_option_default_node = target_option_current_node
|
target_option_default_node = target_option_current_node
|
||||||
= build_target_option_node (&global_options);
|
= build_target_option_node (&global_options);
|
||||||
|
|
||||||
aarch64_register_fma_steering ();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Implement targetm.override_options_after_change. */
|
/* Implement targetm.override_options_after_change. */
|
||||||
|
|
|
@ -36,7 +36,6 @@
|
||||||
#include "context.h"
|
#include "context.h"
|
||||||
#include "tree-pass.h"
|
#include "tree-pass.h"
|
||||||
#include "regrename.h"
|
#include "regrename.h"
|
||||||
#include "cortex-a57-fma-steering.h"
|
|
||||||
#include "aarch64-protos.h"
|
#include "aarch64-protos.h"
|
||||||
|
|
||||||
/* For better performance, the destination of FMADD/FMSUB instructions should
|
/* For better performance, the destination of FMADD/FMSUB instructions should
|
||||||
|
@ -1069,21 +1068,8 @@ public:
|
||||||
|
|
||||||
/* Create a new fma steering pass instance. */
|
/* Create a new fma steering pass instance. */
|
||||||
|
|
||||||
static rtl_opt_pass *
|
rtl_opt_pass *
|
||||||
make_pass_fma_steering (gcc::context *ctxt)
|
make_pass_fma_steering (gcc::context *ctxt)
|
||||||
{
|
{
|
||||||
return new pass_fma_steering (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);
|
|
||||||
}
|
|
||||||
|
|
|
@ -56,12 +56,13 @@ aarch64-c.o: $(srcdir)/config/aarch64/aarch64-c.c $(CONFIG_H) $(SYSTEM_H) \
|
||||||
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
||||||
$(srcdir)/config/aarch64/aarch64-c.c
|
$(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 \
|
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) \
|
$(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) \
|
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) \
|
output.h hash-map.h $(DF_H) $(OBSTACK_H) $(TARGET_H) $(RTL_H) \
|
||||||
$(CONTEXT_H) $(TREE_PASS_H) regrename.h \
|
$(CONTEXT_H) $(TREE_PASS_H) regrename.h \
|
||||||
$(srcdir)/config/aarch64/cortex-a57-fma-steering.h \
|
|
||||||
$(srcdir)/config/aarch64/aarch64-protos.h
|
$(srcdir)/config/aarch64/aarch64-protos.h
|
||||||
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
||||||
$(srcdir)/config/aarch64/cortex-a57-fma-steering.c
|
$(srcdir)/config/aarch64/cortex-a57-fma-steering.c
|
||||||
|
|
Loading…
Reference in New Issue