[gcc/devel/c++-coroutines] Decrease cortexa57_extra_costs's alu.shift_reg

Iain D Sandoe iains@gcc.gnu.org
Sat Jan 25 20:19:00 GMT 2020


https://gcc.gnu.org/g:6ccc19bd4d12379a0d9fce486ceba3207749424a

commit 6ccc19bd4d12379a0d9fce486ceba3207749424a
Author: Andrew Pinski <apinski@marvell.com>
Date:   Sat Jan 11 20:34:24 2020 +0000

    Decrease cortexa57_extra_costs's alu.shift_reg
    
    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.

Diff:
---
 gcc/ChangeLog                      | 5 +++++
 gcc/config/arm/aarch-cost-tables.h | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4d851c0..bac1a9b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/arm/aarch-cost-tables.h b/gcc/config/arm/aarch-cost-tables.h
index 6a30d92..cf81865 100644
--- a/gcc/config/arm/aarch-cost-tables.h
+++ b/gcc/config/arm/aarch-cost-tables.h
@@ -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.  */



More information about the Gcc-cvs mailing list