[AArch64 2/3 big.LITTLE] Allow tuning parameters without unique tuning targets.
gcc/ * config/aarch64/aarch64-cores.def: Add new column for SCHEDULER_IDENT. * config/aarch64/aarch64-opts.h (AARCH64_CORE): Handle SCHEDULER_IDENT. * config/aarch64/aarch64.c (AARCH64_CORE): Handle SCHEDULER_IDENT. (aarch64_parse_cpu): mcpu implies a default value for mtune. * config/aarch64/aarch64.h (AARCH64_CORE): Handle SCHEDULER_IDENT. From-SVN: r206099
This commit is contained in:
parent
682287fb31
commit
192ed1dd46
5 changed files with 24 additions and 11 deletions
|
@ -1,3 +1,15 @@
|
|||
2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
|
||||
|
||||
* config/aarch64/aarch64-cores.def: Add new column for
|
||||
SCHEDULER_IDENT.
|
||||
* config/aarch64/aarch64-opts.h (AARCH64_CORE): Handle
|
||||
SCHEDULER_IDENT.
|
||||
* config/aarch64/aarch64.c (AARCH64_CORE): Handle
|
||||
SCHEDULER_IDENT.
|
||||
(aarch64_parse_cpu): mcpu implies a default value for mtune.
|
||||
* config/aarch64/aarch64.h (AARCH64_CORE): Handle
|
||||
SCHEDULER_IDENT.
|
||||
|
||||
2013-12-18 James Greenhalgh <james.greenhalgh@arm.com>
|
||||
|
||||
* common/config/aarch64/aarch64-common.c
|
||||
|
|
|
@ -21,18 +21,18 @@
|
|||
|
||||
Before using #include to read this file, define a macro:
|
||||
|
||||
AARCH64_CORE(CORE_NAME, CORE_IDENT, ARCH, FLAGS, COSTS)
|
||||
AARCH64_CORE(CORE_NAME, CORE_IDENT, SCHEDULER_IDENT, ARCH, FLAGS, COSTS)
|
||||
|
||||
The CORE_NAME is the name of the core, represented as a string constant.
|
||||
The CORE_IDENT is the name of the core, represented as an identifier.
|
||||
The SCHEDULER_IDENT is the name of the core for which scheduling decisions
|
||||
will be made, represented as an identifier.
|
||||
ARCH is the architecture revision implemented by the chip.
|
||||
FLAGS are the bitwise-or of the traits that apply to that core.
|
||||
This need not include flags implied by the architecture.
|
||||
COSTS is the name of the rtx_costs routine to use. */
|
||||
|
||||
/* V8 Architecture Processors.
|
||||
This list currently contains example CPUs that implement AArch64, and
|
||||
therefore serves as a template for adding more CPUs in the future. */
|
||||
/* V8 Architecture Processors. */
|
||||
|
||||
AARCH64_CORE("cortex-a53", cortexa53, 8, AARCH64_FL_FPSIMD, cortexa53)
|
||||
AARCH64_CORE("cortex-a57", cortexa15, 8, AARCH64_FL_FPSIMD, generic)
|
||||
AARCH64_CORE("cortex-a53", cortexa53, cortexa53, 8, AARCH64_FL_FPSIMD, cortexa53)
|
||||
AARCH64_CORE("cortex-a57", cortexa15, cortexa15, 8, AARCH64_FL_FPSIMD, generic)
|
||||
|
|
|
@ -25,8 +25,8 @@
|
|||
/* The various cores that implement AArch64. */
|
||||
enum aarch64_processor
|
||||
{
|
||||
#define AARCH64_CORE(NAME, IDENT, ARCH, FLAGS, COSTS) \
|
||||
IDENT,
|
||||
#define AARCH64_CORE(NAME, INTERNAL_IDENT, IDENT, ARCH, FLAGS, COSTS) \
|
||||
INTERNAL_IDENT,
|
||||
#include "aarch64-cores.def"
|
||||
#undef AARCH64_CORE
|
||||
/* Used to indicate that no processor has been specified. */
|
||||
|
|
|
@ -246,7 +246,7 @@ struct processor
|
|||
/* Processor cores implementing AArch64. */
|
||||
static const struct processor all_cores[] =
|
||||
{
|
||||
#define AARCH64_CORE(NAME, IDENT, ARCH, FLAGS, COSTS) \
|
||||
#define AARCH64_CORE(NAME, X, IDENT, ARCH, FLAGS, COSTS) \
|
||||
{NAME, IDENT, #ARCH, FLAGS | AARCH64_FL_FOR_ARCH##ARCH, &COSTS##_tunings},
|
||||
#include "aarch64-cores.def"
|
||||
#undef AARCH64_CORE
|
||||
|
@ -5119,6 +5119,7 @@ aarch64_parse_cpu (void)
|
|||
if (strlen (cpu->name) == len && strncmp (cpu->name, str, len) == 0)
|
||||
{
|
||||
selected_cpu = cpu;
|
||||
selected_tune = cpu;
|
||||
aarch64_isa_flags = selected_cpu->flags;
|
||||
|
||||
if (ext != NULL)
|
||||
|
|
|
@ -461,8 +461,8 @@ enum reg_class
|
|||
|
||||
enum target_cpus
|
||||
{
|
||||
#define AARCH64_CORE(NAME, IDENT, ARCH, FLAGS, COSTS) \
|
||||
TARGET_CPU_##IDENT,
|
||||
#define AARCH64_CORE(NAME, INTERNAL_IDENT, IDENT, ARCH, FLAGS, COSTS) \
|
||||
TARGET_CPU_##INTERNAL_IDENT,
|
||||
#include "aarch64-cores.def"
|
||||
#undef AARCH64_CORE
|
||||
TARGET_CPU_generic
|
||||
|
|
Loading…
Add table
Reference in a new issue