Hi all,

This hunk that slightly reduces the cost of immediate moves doesn't actually 
have any effect.
In the whole of SPEC2006 it didn't make a difference. In any case, I'd like to 
move to a point
where we use COSTS_N_INSNS units for our costs and not increment decrement them 
by one.

This patch removes that bit of logic and makes it slightly cleaner to look at. 
As far as I know
its logic has never been confirmed in practice.

Bootstrapped and tested on arm.

Ok for trunk?

Thanks,
Kyrill

2015-04-22  Kyrylo Tkachov  <kyrylo.tkac...@arm.com>

    * config/arm/arm.c (arm_new_rtx_costs): Do not lower cost
    immediate moves.
commit e225669ff70f09520007b7898b170fb8fa75281f
Author: Kyrylo Tkachov <kyrylo.tkac...@arm.com>
Date:   Wed Apr 8 10:18:23 2015 +0100

    [ARM] Do not lower cost of setting core reg to constant. It doesn't have any effect

diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 0ef05c9..03988ac 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -9725,11 +9725,7 @@ arm_new_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer_code,
 	     and we would otherwise be unable to work out the true cost.  */
 	  *cost = rtx_cost (SET_DEST (x), SET, 0, speed_p);
 	  outer_code = SET;
-	  /* Slightly lower the cost of setting a core reg to a constant.
-	     This helps break up chains and allows for better scheduling.  */
-	  if (REG_P (SET_DEST (x))
-	      && REGNO (SET_DEST (x)) <= LR_REGNUM)
-	    *cost -= 1;
+
 	  x = SET_SRC (x);
 	  /* Immediate moves with an immediate in the range [0, 255] can be
 	     encoded in 16 bits in Thumb mode.  */

Reply via email to