diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-03-18 17:05:27 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-03-18 17:05:27 +0000 |
commit | 7da2097899c119559007977e2df3f3879e1b5ad8 (patch) | |
tree | 61a20d44630cbe323bdbc2912239f7d1d11835e4 | |
parent | 34cb2f5e8a7b8fb8463309dedb796748dd10ce2e (diff) | |
download | gcc-7da2097899c119559007977e2df3f3879e1b5ad8.tar.gz |
* ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
computation for prologue/epilogue.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171154 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ira-color.c | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 16fdd22aa16..200cce84e61 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/ira-color.c b/gcc/ira-color.c index 5c98ef91c2c..6024f7d9563 100644 --- a/gcc/ira-color.c +++ b/gcc/ira-color.c @@ -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. */ { |