The following was overlooked on initial Power7 support.

Bootstrap/regtest on powerpc64-linux with no new regressions. Ok for trunk and 
4.6?

-Pat


2011-04-11  Pat Haugen <pthau...@us.ibm.com>

        * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
        moves expensive on Power7 also.



Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c  (revision 172255)
+++ gcc/config/rs6000/rs6000.c  (working copy)
@@ -26701,9 +26701,10 @@ rs6000_register_move_cost (enum machine_
       else if (from == CR_REGS)
        ret = 4;

-      /* Power6 has slower LR/CTR moves so make them more expensive than
-        memory in order to bias spills to memory .*/
-      else if (rs6000_cpu == PROCESSOR_POWER6
+      /* For those processors that have slow LR/CTR moves, make them more
+        expensive than memory in order to bias spills to memory .*/
+      else if ((rs6000_cpu == PROCESSOR_POWER6
+               || rs6000_cpu == PROCESSOR_POWER7)
               && reg_classes_intersect_p (from, LINK_OR_CTR_REGS))
         ret = 6 * hard_regno_nregs[0][mode];

Reply via email to