diff options
author | James Greenhalgh <james.greenhalgh@arm.com> | 2014-05-16 08:43:51 +0000 |
---|---|---|
committer | James Greenhalgh <jgreenhalgh@gcc.gnu.org> | 2014-05-16 08:43:51 +0000 |
commit | 60bff090208c1602c2282ab9e516ce725d36bd51 (patch) | |
tree | c22baaa1aac2194697b6ab86dc7951dd042e9860 | |
parent | 677473677aa5d85ea967c998f73fb7f50b9eb379 (diff) | |
download | gcc-60bff090208c1602c2282ab9e516ce725d36bd51.zip gcc-60bff090208c1602c2282ab9e516ce725d36bd51.tar.gz gcc-60bff090208c1602c2282ab9e516ce725d36bd51.tar.bz2 |
[AArch64 costs 2/18] Add cost tables for Cortex-A57
gcc/
* config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
(cortexa57_vector_cost): Likewise.
(cortexa57_tunings): Use them.
From-SVN: r210494
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 45 |
2 files changed, 49 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 47df09f..12b6513 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com> + * config/aarch64/aarch64.c (cortexa57_addrcost_table): New. + (cortexa57_vector_cost): Likewise. + (cortexa57_tunings): Use them. + +2014-05-16 James Greenhalgh <james.greenhalgh@arm.com> + * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New. (cpu_addrcost_table): Use it. * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index a596f0d..7374e81 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -190,6 +190,27 @@ static const struct cpu_addrcost_table generic_addrcost_table = #if HAVE_DESIGNATED_INITIALIZERS && GCC_VERSION >= 2007 __extension__ #endif +static const struct cpu_addrcost_table cortexa57_addrcost_table = +{ +#if HAVE_DESIGNATED_INITIALIZERS + .addr_scale_costs = +#endif + { + NAMED_PARAM (qi, 0), + NAMED_PARAM (hi, 1), + NAMED_PARAM (si, 0), + NAMED_PARAM (ti, 1), + }, + NAMED_PARAM (pre_modify, 0), + NAMED_PARAM (post_modify, 0), + NAMED_PARAM (register_offset, 0), + NAMED_PARAM (register_extend, 0), + NAMED_PARAM (imm_offset, 0), +}; + +#if HAVE_DESIGNATED_INITIALIZERS && GCC_VERSION >= 2007 +__extension__ +#endif static const struct cpu_regmove_cost generic_regmove_cost = { NAMED_PARAM (GP2GP, 1), @@ -221,6 +242,26 @@ static const struct cpu_vector_cost generic_vector_cost = NAMED_PARAM (cond_not_taken_branch_cost, 1) }; +/* Generic costs for vector insn classes. */ +#if HAVE_DESIGNATED_INITIALIZERS && GCC_VERSION >= 2007 +__extension__ +#endif +static const struct cpu_vector_cost cortexa57_vector_cost = +{ + NAMED_PARAM (scalar_stmt_cost, 1), + NAMED_PARAM (scalar_load_cost, 4), + NAMED_PARAM (scalar_store_cost, 1), + NAMED_PARAM (vec_stmt_cost, 3), + NAMED_PARAM (vec_to_scalar_cost, 8), + NAMED_PARAM (scalar_to_vec_cost, 8), + NAMED_PARAM (vec_align_load_cost, 5), + NAMED_PARAM (vec_unalign_load_cost, 5), + NAMED_PARAM (vec_unalign_store_cost, 1), + NAMED_PARAM (vec_store_cost, 1), + NAMED_PARAM (cond_taken_branch_cost, 1), + NAMED_PARAM (cond_not_taken_branch_cost, 1) +}; + #if HAVE_DESIGNATED_INITIALIZERS && GCC_VERSION >= 2007 __extension__ #endif @@ -247,9 +288,9 @@ static const struct tune_params cortexa53_tunings = static const struct tune_params cortexa57_tunings = { &cortexa57_extra_costs, - &generic_addrcost_table, + &cortexa57_addrcost_table, &generic_regmove_cost, - &generic_vector_cost, + &cortexa57_vector_cost, NAMED_PARAM (memmov_cost, 4), NAMED_PARAM (issue_rate, 3) }; |