aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/aarch64.cc
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2023-11-21 13:20:39 +0000
committerTamar Christina <tamar.christina@arm.com>2023-11-21 13:25:10 +0000
commit33c2b70dbabc02788caabcbc66b7baeafeb95bcf (patch)
treee0750c6d8af0977722a8dd2236369d2d8358d31c /gcc/config/aarch64/aarch64.cc
parente5678468e550e99944fca6bae364696714ffb445 (diff)
downloadgcc-33c2b70dbabc02788caabcbc66b7baeafeb95bcf.zip
gcc-33c2b70dbabc02788caabcbc66b7baeafeb95bcf.tar.gz
gcc-33c2b70dbabc02788caabcbc66b7baeafeb95bcf.tar.bz2
AArch64: Add new generic-armv8-a CPU and make it the default.
This patch adds a new generic scheduling model "generic-armv8-a" and makes it the default for all Armv8 architectures. -mcpu=generic and -mtune=generic is kept around for those that really want the previous cost model. This shows on SPECCPU 2017 the following: generic: SPECINT 1.0% improvement in geomean, SPECFP -0.6%. The SPECFP is due to fotonik3d_r where we vectorize an FP calculation that only ever needs one lane of the result. This I believe is a generic costing bug but at the moment we can't change costs of FP and INT independently. So will defer updating that cost to stage3 after Richard's other costing updates land. generic SVE: SPECINT 1.1% improvement in geomean, SPECFP 0.7% improvement. gcc/ChangeLog: PR target/111370 * config/aarch64/aarch64-arches.def (armv8-9, armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a, armv8.5-a, armv8.6-a, armv8.7-a, armv8.8-a): Update to generic_armv8_a. * config/aarch64/aarch64-cores.def (generic-armv8-a): New. * config/aarch64/aarch64-tune.md: Regenerate. * config/aarch64/aarch64.cc: Include generic_armv8_a.h * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Change to TARGET_CPU_generic_armv8_a. * config/aarch64/tuning_models/generic_armv8_a.h: New file. gcc/testsuite/ChangeLog: PR target/111370 * gcc.target/aarch64/sve/cond_asrd_1.c: Updated. * gcc.target/aarch64/sve/cond_cnot_4.c: Likewise. * gcc.target/aarch64/sve/cond_unary_5.c: Likewise. * gcc.target/aarch64/sve/cond_uxt_5.c: Likewise. * gcc.target/aarch64/target_attr_13.c: Likewise. * gcc.target/aarch64/target_attr_15.c: Likewise.
Diffstat (limited to 'gcc/config/aarch64/aarch64.cc')
-rw-r--r--gcc/config/aarch64/aarch64.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index d1dd65f..3ae8e6d 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -355,6 +355,7 @@ static const struct aarch64_flag_desc aarch64_tuning_flags[] =
/* Tuning parameters. */
#include "tuning_models/generic.h"
+#include "tuning_models/generic_armv8_a.h"
#include "tuning_models/cortexa35.h"
#include "tuning_models/cortexa53.h"
#include "tuning_models/cortexa57.h"