Decrease cortexa57_extra_costs's alu.shift_reg
authorAndrew Pinski <apinski@marvell.com>
Sat, 11 Jan 2020 20:34:24 +0000 (20:34 +0000)
committerAndrew Pinski <apinski@marvell.com>
Fri, 24 Jan 2020 21:33:43 +0000 (21:33 +0000)
Like I mentioned in https://gcc.gnu.org/ml/gcc/2020-01/msg00157.html,
The shift by a register should be just COSTS_N_INSNS (1) rather than
COSTS_N_INSNS (2).  This allows lshift_cheap_p to return true now
and converting switches to be using shift and other like
structures.  I noticed this difference when I was working
through PR 93131 and understanding what reassoc could handle.

ChangeLog:
* config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
alu.shift_reg to 0.

gcc/ChangeLog
gcc/config/arm/aarch-cost-tables.h

index 4d851c0b170fa3c72b91bcf126e2569f74ba7f94..bac1a9baae6dba844ce4b2c04c59e1997b68511f 100644 (file)
@@ -1,3 +1,8 @@
+2020-01-24  Andrew Pinski  <apinski@marvell.com>
+
+       * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
+       alu.shift_reg to 0.
+
 2020-01-24  Jeff Law  <law@redhat.com>
 
        PR target/13721
index 6a30d92cde95a5e0f9f55de9c5d0d393df9e28a6..cf8186599018cc5e51cf44e4f2080a502d895e1d 100644 (file)
@@ -235,7 +235,7 @@ const struct cpu_cost_table cortexa57_extra_costs =
     0,                 /* arith.  */
     0,                 /* logical.  */
     0,                 /* shift.  */
-    COSTS_N_INSNS (1), /* shift_reg.  */
+    0,                 /* shift_reg.  */
     COSTS_N_INSNS (1), /* arith_shift.  */
     COSTS_N_INSNS (1), /* arith_shift_reg.  */
     COSTS_N_INSNS (1), /* log_shift.  */