From 2fae724a1e13e63c996dd23b3885be99fe0fea5d Mon Sep 17 00:00:00 2001 From: Wilco Dijkstra Date: Thu, 4 May 2017 17:05:28 +0000 Subject: [PATCH] All cores which add a cpu_addrcost_table use a non-zero value for HI and TI... 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 gcc/ * config/aarch64/aarch64.c (generic_addrcost_table): Change HI/TI mode setting. From-SVN: r247606 --- gcc/ChangeLog | 5 +++++ gcc/config/aarch64/aarch64.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a59b8227ee3..b344a90a484 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-05-04 Wilco Dijkstra + + * config/aarch64/aarch64.c (generic_addrcost_table): + Change HI/TI mode setting. + 2017-05-04 Martin Jambor PR tree-optimization/80622 diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 43fc928b460..ee056c6fe68 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 */