aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis Machado <luis.machado@linaro.org>2018-08-08 07:54:14 +0000
committerSiddhesh Poyarekar <siddhesh@gcc.gnu.org>2018-08-08 07:54:14 +0000
commite75bc10e68f2c154eea18b87486e9da5cad0efaa (patch)
treeb0655562e89a411a795941d7380dc366fc0c37ca
parent31508b3921cdcc6c2c8c587f76b38b316dc76fc8 (diff)
downloadgcc-e75bc10e68f2c154eea18b87486e9da5cad0efaa.zip
gcc-e75bc10e68f2c154eea18b87486e9da5cad0efaa.tar.gz
gcc-e75bc10e68f2c154eea18b87486e9da5cad0efaa.tar.bz2
[AArch64, Falkor] Switch to using Falkor-specific vector costs.
The adjusted vector costs give Falkor a reasonable boost in performance for FP benchmarks (both CPU2017 and CPU2006) and doesn't change INT benchmarks that much. There are some regressions that will be investigated as follow on work. Numbers from the CI run: CPU2017: (R) 605.mcf_s: -1.8% (R) 620.omnetpp_s: -2% 623.xalancbmk_s: 2% 654.roms_s: 7% (R) INT mean: -0.09% FP mean: 0.70% CPU2006: (R) 429.mc: -5% (R) 471.omnetpp: -9.5% (potentially noise/fluctuations) 483.xalancbmk: 6.02% 410.bwaves: 5.03% 433.milc: 2% 434.zeusmp: 10.5% (R) 436.cactusADM: -12.75% 437.leslie3d: 5.94% (R) 453.povray: -0.82% 459.GemsFDTD: 16.87% 465.tonto: 1% (R) INT mean: -0.79% FP mean: 1.54% gcc/ChangeLog: 2018-08-08 Luis Machado <luis.machado@linaro.org> * config/aarch64/aarch64.c (qdf24xx_vector_cost): New static global. (qdf24xx_tunings): Set vector cost structure to qdf24xx_vector_cost. From-SVN: r263389
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64.c22
2 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0f6e466..a774ead 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2018-08-08 Luis Machado <luis.machado@linaro.org>
+ * config/aarch64/aarch64.c (qdf24xx_vector_cost): New static
+ global.
+ (qdf24xx_tunings): Set vector cost structure to
+ qdf24xx_vector_cost.
+
* config/aarch64/aarch64.c (qdf24xx_addrcost_table)
<register_sextend>: Set to 3.
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 1c470cb..1e8d810 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -430,6 +430,26 @@ static const struct cpu_vector_cost generic_vector_cost =
1 /* cond_not_taken_branch_cost */
};
+/* QDF24XX costs for vector insn classes. */
+static const struct cpu_vector_cost qdf24xx_vector_cost =
+{
+ 1, /* scalar_int_stmt_cost */
+ 1, /* scalar_fp_stmt_cost */
+ 1, /* scalar_load_cost */
+ 1, /* scalar_store_cost */
+ 1, /* vec_int_stmt_cost */
+ 3, /* vec_fp_stmt_cost */
+ 2, /* vec_permute_cost */
+ 1, /* vec_to_scalar_cost */
+ 1, /* scalar_to_vec_cost */
+ 1, /* vec_align_load_cost */
+ 1, /* vec_unalign_load_cost */
+ 1, /* vec_unalign_store_cost */
+ 1, /* vec_store_cost */
+ 3, /* cond_taken_branch_cost */
+ 1 /* cond_not_taken_branch_cost */
+};
+
/* ThunderX costs for vector insn classes. */
static const struct cpu_vector_cost thunderx_vector_cost =
{
@@ -890,7 +910,7 @@ static const struct tune_params qdf24xx_tunings =
&qdf24xx_extra_costs,
&qdf24xx_addrcost_table,
&qdf24xx_regmove_cost,
- &generic_vector_cost,
+ &qdf24xx_vector_cost,
&generic_branch_cost,
&generic_approx_modes,
4, /* memmov_cost */