diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2016-12-15 15:38:21 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2016-12-15 15:38:21 +0000 |
commit | 643a5717dc458643c53e6fa85aed3b3d1f36b3b4 (patch) | |
tree | 781ebc792a22617ef41b108c7c0d71f4072dfdac /gcc/common/config/arm | |
parent | f69f6aae843c6b8382abd0b5b3af39ddec17edcf (diff) | |
download | gcc-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.c | 4 |
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 |