[AArch64] Improve address cost for -mcpu=generic

Message ID AM5PR0802MB2610B32BE92CC11209D39CCC831B0@AM5PR0802MB2610.eurprd08.prod.outlook.com
State New
Headers show

Commit Message

Wilco Dijkstra April 20, 2017, 3:38 p.m.
ping

From: Wilco Dijkstra
Sent: 12 April 2017 14:08
To: GCC Patches
Cc: nd; James Greenhalgh; Evandro Menezes; jim.wilson@linaro.org; Andrew.pinski@cavium.com
Subject: [PATCH][AArch64] Improve address cost for -mcpu=generic
    
All cores which add a cpu_addrcost_table use a non-zero value for
HI and TI mode shifts (a non-zero value for general indexing also 
applies to all shifts).  Given this, it makes no sense to use a
different setting in generic_addrcost_table.  So change it so that all
supported cores, including -mcpu=generic, now generate the same:

int f(short *p, short *q, long x) { return p[x] + q[x]; }

        lsl     x2, x2, 1
        ldrsh   w3, [x0, x2]
        ldrsh   w0, [x1, x2]
        add     w0, w3, w0
        ret

Bootstrapped for AArch64. Any comments? OK for stage 1?

ChangeLog:
2017-04-12  Wilco Dijkstra  <wdijkstr@arm.com>

        * gcc/config/aarch64/aarch64.c (generic_addrcost_table):
        Change HI/TI mode setting.

---

Patch

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 419b756efcb40e48880cd4529efc4f9f59938325..728ce7029f1e2b5161d9f317d10e564dd5a5f472 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -193,10 +193,10 @@  static const struct aarch64_flag_desc aarch64_tuning_flags[] =
 static const struct cpu_addrcost_table generic_addrcost_table =
 {
     {
-      0, /* hi  */
+      1, /* hi  */
       0, /* si  */
       0, /* di  */
-      0, /* ti  */
+      1, /* ti  */
     },
   0, /* pre_modify  */
   0, /* post_modify  */