[PATCH][AArch64] Fix Cortex-A53 shift costs

Wilco Dijkstra wdijkstr@arm.com
Thu Mar 5 14:49:00 GMT 2015


This patch fixes the shift costs for Cortex-A53 so they are more accurate - immediate shifts use
SBFM/UBFM which takes 2 cycles, register controlled shifts take 1 cycle. Bootstrap and regression
OK.

ChangeLog: 
2015-03-05  Wilco Dijkstra  <wdijkstr@arm.com>

	* gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
	Make Cortex-A53 shift costs more accurate.

---
 gcc/config/arm/aarch-cost-tables.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gcc/config/arm/aarch-cost-tables.h b/gcc/config/arm/aarch-cost-tables.h
index 05e96a9..6bb8ede 100644
--- a/gcc/config/arm/aarch-cost-tables.h
+++ b/gcc/config/arm/aarch-cost-tables.h
@@ -130,12 +130,12 @@ const struct cpu_cost_table cortexa53_extra_costs =
     0,			/* arith.  */
     0,			/* logical.  */
     COSTS_N_INSNS (1),	/* shift.  */
-    COSTS_N_INSNS (2),	/* shift_reg.  */
+    0,			/* shift_reg.  */
     COSTS_N_INSNS (1),	/* arith_shift.  */
-    COSTS_N_INSNS (2),	/* arith_shift_reg.  */
+    COSTS_N_INSNS (1),	/* arith_shift_reg.  */
     COSTS_N_INSNS (1),	/* log_shift.  */
-    COSTS_N_INSNS (2),	/* log_shift_reg.  */
-    0,			/* extend.  */
+    COSTS_N_INSNS (1),	/* log_shift_reg.  */
+    COSTS_N_INSNS (1),	/* extend.  */
     COSTS_N_INSNS (1),	/* extend_arith.  */
     COSTS_N_INSNS (1),	/* bfi.  */
     COSTS_N_INSNS (1),	/* bfx.  */
-- 
1.9.1





More information about the Gcc-patches mailing list