summaryrefslogtreecommitdiff
path: root/gcc/common/config/arm
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2016-12-15 15:38:21 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2016-12-15 15:38:21 +0000
commit643a5717dc458643c53e6fa85aed3b3d1f36b3b4 (patch)
tree781ebc792a22617ef41b108c7c0d71f4072dfdac /gcc/common/config/arm
parentf69f6aae843c6b8382abd0b5b3af39ddec17edcf (diff)
downloadgcc-643a5717dc458643c53e6fa85aed3b3d1f36b3b4.tar.gz
We start out by separating the 'tuning flags' in a CPU or architecture...
We start out by separating the 'tuning flags' in a CPU or architecture specification into a new field in the data structures. Because there aren't very many of these (and we'd like to get rid of them entirely, eventually, moving to entries in the tuning tables), we just use a simple unsigned word. This frees up a number of bits in the main flags data structure, but we don't consolidate them as we'll be getting rid of them entirely shortly. There's one small user-visible change, the slow multiply flag is moved from being treated as an architectural flag to a tuning flag. This has two consequences: it's now ignored for architectural matching to a CPU and specifying a -mtune option will now correctly apply the multiply performance to the decision as to which sequences to synthesise. * arm-arches.def (ARM_ARCH): Add extra field TUNE_FLAGS, move tuning properties from architectural FLAGS field. * arm-cores.def (ARM_CORE): Likewise. * arm-protos.h (TF_LDSCHED, TF_WBUF, TF_CO_PROC): New macros. (TF_SMALLMUL, TF_STRONG, TF_SCALE, TF_NOMODE32): New macros. (FL_LDSCHED, FL_STRONG, FL_WBUF, FL_SMALLMUL): Delete. (FL_TUNE): Remove deleted elements. (tune_flags): Convert type to unsigned int. * arm.c (struct processors): Add new field tune_flags. (all_cores, all_arches): Initialize it. (arm_option_override): Adapt uses of tune_flags. Use tune_flags for deciding when we should have slow multiply operations. From-SVN: r243696
Diffstat (limited to 'gcc/common/config/arm')
-rw-r--r--gcc/common/config/arm/arm-common.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/common/config/arm/arm-common.c b/gcc/common/config/arm/arm-common.c
index c0de5d2563f..93a13c8b266 100644
--- a/gcc/common/config/arm/arm-common.c
+++ b/gcc/common/config/arm/arm-common.c
@@ -107,12 +107,12 @@ struct arm_arch_core_flag
static const struct arm_arch_core_flag arm_arch_core_flags[] =
{
#undef ARM_CORE
-#define ARM_CORE(NAME, X, IDENT, ARCH, FLAGS, COSTS) \
+#define ARM_CORE(NAME, X, IDENT, TUNE_FLAGS, ARCH, FLAGS, COSTS) \
{NAME, FLAGS},
#include "config/arm/arm-cores.def"
#undef ARM_CORE
#undef ARM_ARCH
-#define ARM_ARCH(NAME, CORE, ARCH, FLAGS) \
+#define ARM_ARCH(NAME, CORE, TUNE_FLAGS, ARCH, FLAGS) \
{NAME, FLAGS},
#include "config/arm/arm-arches.def"
#undef ARM_ARCH