[AArch64,Falkor] Falkor address costs tuning

Message ID 1527008678-17828-1-git-send-email-luis.machado@linaro.org
State New
Headers show
Series
  • [AArch64,Falkor] Falkor address costs tuning
Related show

Commit Message

Luis Machado May 22, 2018, 5:04 p.m.
Switch from using generic address costs to using Falkor-specific ones, which
give Falkor better results overall.

OK for trunk?

Given this is a Falkor-specific adjustment, would this be an acceptable
backport for GCC 8 as well?

gcc/ChangeLog:

2018-05-22  Luis Machado  <luis.machado@linaro.org>

	* config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static
	global.
	(qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table.
---
 gcc/config/aarch64/aarch64.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

-- 
2.7.4

Comments

James Greenhalgh May 23, 2018, 3:17 p.m. | #1
On Tue, May 22, 2018 at 12:04:38PM -0500, Luis Machado wrote:
> Switch from using generic address costs to using Falkor-specific ones, which

> give Falkor better results overall.

> 

> OK for trunk?

> 

> Given this is a Falkor-specific adjustment, would this be an acceptable

> backport for GCC 8 as well?


OK for trunk.

It doesn't fix a regression, so it wouldn't really fit the definition of
a backport patch. That said, if it is important to you to have it in GCC 8,
it is sufficiently low-risk for non-Falkor targets that we can take it. So,
it is your call if you want to backport it or not.

Thanks,
James

> 

> gcc/ChangeLog:

> 

> 2018-05-22  Luis Machado  <luis.machado@linaro.org>

> 

> 	* config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static

> 	global.

> 	(qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table.
Luis Machado May 24, 2018, 2:50 p.m. | #2
On 05/23/2018 12:17 PM, James Greenhalgh wrote:
> On Tue, May 22, 2018 at 12:04:38PM -0500, Luis Machado wrote:

>> Switch from using generic address costs to using Falkor-specific ones, which

>> give Falkor better results overall.

>>

>> OK for trunk?

>>

>> Given this is a Falkor-specific adjustment, would this be an acceptable

>> backport for GCC 8 as well?

> 

> OK for trunk.

> 

> It doesn't fix a regression, so it wouldn't really fit the definition of

> a backport patch. That said, if it is important to you to have it in GCC 8,

> it is sufficiently low-risk for non-Falkor targets that we can take it. So,

> it is your call if you want to backport it or not.

> 

> Thanks,

> James


Thanks. For now i've pushed it to mainline as r260675.

Patch

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index f60e0ad..548d87a 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -314,6 +314,22 @@  static const struct cpu_addrcost_table thunderx2t99_addrcost_table =
   0, /* imm_offset  */
 };
 
+static const struct cpu_addrcost_table qdf24xx_addrcost_table =
+{
+    {
+      1, /* hi  */
+      1, /* si  */
+      1, /* di  */
+      2, /* ti  */
+    },
+  1, /* pre_modify  */
+  1, /* post_modify  */
+  3, /* register_offset  */
+  4, /* register_sextend  */
+  3, /* register_zextend  */
+  2, /* imm_offset  */
+};
+
 static const struct cpu_regmove_cost generic_regmove_cost =
 {
   1, /* GP2GP  */
@@ -856,7 +872,7 @@  static const struct tune_params xgene1_tunings =
 static const struct tune_params qdf24xx_tunings =
 {
   &qdf24xx_extra_costs,
-  &generic_addrcost_table,
+  &qdf24xx_addrcost_table,
   &qdf24xx_regmove_cost,
   &generic_vector_cost,
   &generic_branch_cost,