]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aarch64-protos.h (tune_params): Add issue_rate.
authorAndrew Pinski <apinski@cavium.com>
Tue, 14 Jan 2014 19:55:59 +0000 (19:55 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Tue, 14 Jan 2014 19:55:59 +0000 (11:55 -0800)
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

gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c

index 1c15aca4b50730043734c2c259a6c4147aa7d779..bdee83f64209cbee7d70d98ff8aba6ff8b9c37dd 100644 (file)
@@ -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
index 3883329f401fb4963ed4d2f13ec3d060388ce36a..c5ac48b8cb1a7bdf58fd140e3f50e340545b20ed 100644 (file)
@@ -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);
index 3b1f6b510491e0eba79f0b87fc62f2105da6c355..62c659a18b27c2e81089d5e973b3997cbbf50e1e 100644 (file)
@@ -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