diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2010-04-29 21:37:01 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2010-04-29 21:37:01 +0000 |
commit | 5a7338267d552eb9aea90cf8faa2ce7d3a2015a4 (patch) | |
tree | e02eed9bc7c37428344f533ee75aa2a75b30fdf6 /gcc/doc | |
parent | eece1eb9acd1262e3b462ef9a1a09013e420bfed (diff) | |
download | gcc-5a7338267d552eb9aea90cf8faa2ce7d3a2015a4.zip gcc-5a7338267d552eb9aea90cf8faa2ce7d3a2015a4.tar.gz gcc-5a7338267d552eb9aea90cf8faa2ce7d3a2015a4.tar.bz2 |
re PR target/42895 (Low registers are preferred than register ip in thumb2 mode)
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.
From-SVN: r158911
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/tm.texi | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 51172e4..6582ab1 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -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. |