From: Wilco Dijkstra Date: Fri, 12 Sep 2014 09:46:25 +0000 (+0000) Subject: [AArch64] Add regmove_costs for Cortex-A57 and A53 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e4a9c55ade081438460f6b0db8afbaad34b05d35;p=gcc.git [AArch64] Add regmove_costs for Cortex-A57 and A53 2014-09-12 Wilco Dijkstra * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b10f285bcd7..af000040028 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-09-12 Wilco Dijkstra + + * 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 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 73ddb0db98b..15c7be697d3 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -218,6 +218,26 @@ static const struct cpu_regmove_cost generic_regmove_cost = 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. */ #if HAVE_DESIGNATED_INITIALIZERS && GCC_VERSION >= 2007 __extension__ @@ -275,7 +295,7 @@ static const struct tune_params cortexa53_tunings = { &cortexa53_extra_costs, &generic_addrcost_table, - &generic_regmove_cost, + &cortexa53_regmove_cost, &generic_vector_cost, NAMED_PARAM (memmov_cost, 4), NAMED_PARAM (issue_rate, 2) @@ -285,7 +305,7 @@ static const struct tune_params cortexa57_tunings = { &cortexa57_extra_costs, &cortexa57_addrcost_table, - &generic_regmove_cost, + &cortexa57_regmove_cost, &cortexa57_vector_cost, NAMED_PARAM (memmov_cost, 4), NAMED_PARAM (issue_rate, 3)