OSDN Git Service

PR target/42895
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Apr 2010 21:37:01 +0000 (21:37 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 04:54:59 +0000 (13:54 +0900)
* doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
(HONOR_REG_ALLOC_ORDER): Describe new macro.
* ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
* ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
account only if HONOR_REG_ALLOC_ORDER is not defined.
* config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
* system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.

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

gcc/ChangeLog
gcc/doc/tm.texi

index 3b1a968..74b960b 100644 (file)
@@ -1,3 +1,15 @@
+2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR target/42895
+       * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
+       ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
+       (HONOR_REG_ALLOC_ORDER): Describe new macro.
+       * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
+       * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
+       account only if HONOR_REG_ALLOC_ORDER is not defined.
+       * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
+       * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
+       
 2010-04-29  Jon Grant <04@jguk.org>
        
        * collect2.c (vflag): Change type from int to bool.
index 51172e4..6582ab1 100644 (file)
@@ -2092,7 +2092,7 @@ machines, define @code{REG_ALLOC_ORDER} to be an initializer that lists
 the highest numbered allocable register first.
 @end defmac
 
-@defmac ORDER_REGS_FOR_LOCAL_ALLOC
+@defmac ADJUST_REG_ALLOC_ORDER
 A C statement (sans semicolon) to choose the order in which to allocate
 hard registers for pseudo-registers local to a basic block.
 
@@ -2106,6 +2106,15 @@ The macro body should not assume anything about the contents of
 On most machines, it is not necessary to define this macro.
 @end defmac
 
+@defmac HONOR_REG_ALLOC_ORDER
+Normally, IRA tries to estimate the costs for saving a register in the
+prologue and restoring it in the epilogue.  This discourages it from
+using call-saved registers.  If a machine wants to ensure that IRA
+allocates registers in the order given by REG_ALLOC_ORDER even if some
+call-saved registers appear earlier than call-used ones, this macro
+should be defined.
+@end defmac
+
 @defmac IRA_HARD_REGNO_ADD_COST_MULTIPLIER (@var{regno})
 In some case register allocation order is not enough for the
 Integrated Register Allocator (@acronym{IRA}) to generate a good code.