Commit e4a9c55a by Wilco Dijkstra Committed by Jiong Wang

[AArch64] Add regmove_costs for Cortex-A57 and A53

2014-09-12  Wilco Dijkstra  <wdijkstr@arm.com>

  * gcc/config/aarch64/aarch64.c: (cortexa57_regmove_cost): New cost table for
  A57.
  (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP cost
  to spilling from integer to FP registers.

From-SVN: r215208
parent 20b32e50
2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com> 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
* gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
for A57.
(cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
cost to spilling from integer to FP registers.
2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
* config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
move handling. move handling.
(generic_regmove_cost): Undo raised FP2FP move cost as Q register moves (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
...@@ -218,6 +218,26 @@ static const struct cpu_regmove_cost generic_regmove_cost = ...@@ -218,6 +218,26 @@ static const struct cpu_regmove_cost generic_regmove_cost =
NAMED_PARAM (FP2FP, 2) NAMED_PARAM (FP2FP, 2)
}; };
static const struct cpu_regmove_cost cortexa57_regmove_cost =
{
NAMED_PARAM (GP2GP, 1),
/* Avoid the use of slow int<->fp moves for spilling by setting
their cost higher than memmov_cost. */
NAMED_PARAM (GP2FP, 5),
NAMED_PARAM (FP2GP, 5),
NAMED_PARAM (FP2FP, 2)
};
static const struct cpu_regmove_cost cortexa53_regmove_cost =
{
NAMED_PARAM (GP2GP, 1),
/* Avoid the use of slow int<->fp moves for spilling by setting
their cost higher than memmov_cost. */
NAMED_PARAM (GP2FP, 5),
NAMED_PARAM (FP2GP, 5),
NAMED_PARAM (FP2FP, 2)
};
/* Generic costs for vector insn classes. */ /* Generic costs for vector insn classes. */
#if HAVE_DESIGNATED_INITIALIZERS && GCC_VERSION >= 2007 #if HAVE_DESIGNATED_INITIALIZERS && GCC_VERSION >= 2007
__extension__ __extension__
...@@ -275,7 +295,7 @@ static const struct tune_params cortexa53_tunings = ...@@ -275,7 +295,7 @@ static const struct tune_params cortexa53_tunings =
{ {
&cortexa53_extra_costs, &cortexa53_extra_costs,
&generic_addrcost_table, &generic_addrcost_table,
&generic_regmove_cost, &cortexa53_regmove_cost,
&generic_vector_cost, &generic_vector_cost,
NAMED_PARAM (memmov_cost, 4), NAMED_PARAM (memmov_cost, 4),
NAMED_PARAM (issue_rate, 2) NAMED_PARAM (issue_rate, 2)
...@@ -285,7 +305,7 @@ static const struct tune_params cortexa57_tunings = ...@@ -285,7 +305,7 @@ static const struct tune_params cortexa57_tunings =
{ {
&cortexa57_extra_costs, &cortexa57_extra_costs,
&cortexa57_addrcost_table, &cortexa57_addrcost_table,
&generic_regmove_cost, &cortexa57_regmove_cost,
&cortexa57_vector_cost, &cortexa57_vector_cost,
NAMED_PARAM (memmov_cost, 4), NAMED_PARAM (memmov_cost, 4),
NAMED_PARAM (issue_rate, 3) NAMED_PARAM (issue_rate, 3)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment