OSDN Git Service

* ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Mar 2011 17:05:27 +0000 (17:05 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Mar 2011 17:05:27 +0000 (17:05 +0000)
computation for prologue/epilogue.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171154 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ira-color.c

index 16fdd22..200cce8 100644 (file)
@@ -1,3 +1,8 @@
+2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
+
+       * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
+       computation for prologue/epilogue.
+
 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * Makefile.in (check-consistency): Remove.
@@ -35,7 +40,7 @@
        (--with-plugin-ld): Document.
        * doc/invoke.texi (-fuse-linker-plugin): Clarify.
 
-2011-03-16  Andrew Pinski  <pinskia@gmail.com>
+2011-03-18  Andrew Pinski  <pinskia@gmail.com>
 
        PR middle-end/47790
        * expr.c (optimize_bitfield_assignment_op): Revamp to work
index 5c98ef9..6024f7d 100644 (file)
@@ -591,7 +591,8 @@ assign_hard_reg (ira_allocno_t a, bool retry_p)
       full_cost = full_costs[i];
 #ifndef HONOR_REG_ALLOC_ORDER
       if (! allocated_hardreg_p[hard_regno]
-         && ira_hard_reg_not_in_set_p (hard_regno, mode, call_used_reg_set))
+         && ira_hard_reg_not_in_set_p (hard_regno, mode, call_used_reg_set)
+         && !LOCAL_REGNO (hard_regno))
        /* We need to save/restore the hard register in
           epilogue/prologue.  Therefore we increase the cost.  */
        {