aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@cavium.com>2014-01-14 19:55:59 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2014-01-14 11:55:59 -0800
commitd126a4aed091a5d9cc99e7176326dfc7b22dd41c (patch)
treedc58617ebfff8975b70948f53f73bb94418940f0 /gcc
parentdc6875820cfc14f916bdfbe53aaf31f845dedfb5 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/config/aarch64/aarch64-protos.h1
-rw-r--r--gcc/config/aarch64/aarch64.c16
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