diff options
author | Luis Machado <luis.machado@linaro.org> | 2018-08-08 07:54:14 +0000 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@gcc.gnu.org> | 2018-08-08 07:54:14 +0000 |
commit | e75bc10e68f2c154eea18b87486e9da5cad0efaa (patch) | |
tree | b0655562e89a411a795941d7380dc366fc0c37ca | |
parent | 31508b3921cdcc6c2c8c587f76b38b316dc76fc8 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 22 |
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 */ |