diff options
author | Andrew Pinski <apinski@cavium.com> | 2014-01-14 19:55:59 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2014-01-14 11:55:59 -0800 |
commit | d126a4aed091a5d9cc99e7176326dfc7b22dd41c (patch) | |
tree | dc58617ebfff8975b70948f53f73bb94418940f0 /gcc | |
parent | dc6875820cfc14f916bdfbe53aaf31f845dedfb5 (diff) | |
download | gcc-d126a4aed091a5d9cc99e7176326dfc7b22dd41c.zip gcc-d126a4aed091a5d9cc99e7176326dfc7b22dd41c.tar.gz gcc-d126a4aed091a5d9cc99e7176326dfc7b22dd41c.tar.bz2 |
aarch64-protos.h (tune_params): Add issue_rate.
2014-01-14 Andrew Pinski <apinski@cavium.com>
* config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
* config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
(cortexa53_tunings): Likewise.
(aarch64_sched_issue_rate): New function.
(TARGET_SCHED_ISSUE_RATE): Define.
From-SVN: r206609
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-protos.h | 1 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 16 |
3 files changed, 23 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1c15aca..bdee83f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2014-01-14 Andrew Pinski <apinski@cavium.com> + + * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate. + * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2. + (cortexa53_tunings): Likewise. + (aarch64_sched_issue_rate): New function. + (TARGET_SCHED_ISSUE_RATE): Define. + 2014-01-14 Vladimir Makarov <vmakarov@redhat.com> * ira-costs.c (find_costs_and_classes): Add missed diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h index 3883329..c5ac48b 100644 --- a/gcc/config/aarch64/aarch64-protos.h +++ b/gcc/config/aarch64/aarch64-protos.h @@ -156,6 +156,7 @@ struct tune_params const struct cpu_regmove_cost *const regmove_cost; const struct cpu_vector_cost *const vec_costs; const int memmov_cost; + const int issue_rate; }; HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned); diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 3b1f6b5..62c659a 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -221,7 +221,8 @@ static const struct tune_params generic_tunings = &generic_addrcost_table, &generic_regmove_cost, &generic_vector_cost, - NAMED_PARAM (memmov_cost, 4) + NAMED_PARAM (memmov_cost, 4), + NAMED_PARAM (issue_rate, 2) }; static const struct tune_params cortexa53_tunings = @@ -230,7 +231,8 @@ static const struct tune_params cortexa53_tunings = &generic_addrcost_table, &generic_regmove_cost, &generic_vector_cost, - NAMED_PARAM (memmov_cost, 4) + NAMED_PARAM (memmov_cost, 4), + NAMED_PARAM (issue_rate, 2) }; /* A processor implementing AArch64. */ @@ -4895,6 +4897,13 @@ aarch64_memory_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED, return aarch64_tune_params->memmov_cost; } +/* Return the number of instructions that can be issued per cycle. */ +static int +aarch64_sched_issue_rate (void) +{ + return aarch64_tune_params->issue_rate; +} + /* Vectorizer cost model target hooks. */ /* Implement targetm.vectorize.builtin_vectorization_cost. */ @@ -8411,6 +8420,9 @@ aarch64_vectorize_vec_perm_const_ok (enum machine_mode vmode, #undef TARGET_RTX_COSTS #define TARGET_RTX_COSTS aarch64_rtx_costs +#undef TARGET_SCHED_ISSUE_RATE +#define TARGET_SCHED_ISSUE_RATE aarch64_sched_issue_rate + #undef TARGET_TRAMPOLINE_INIT #define TARGET_TRAMPOLINE_INIT aarch64_trampoline_init |