aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2010-04-29 21:37:01 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2010-04-29 21:37:01 +0000
commit5a7338267d552eb9aea90cf8faa2ce7d3a2015a4 (patch)
treee02eed9bc7c37428344f533ee75aa2a75b30fdf6 /gcc/doc
parenteece1eb9acd1262e3b462ef9a1a09013e420bfed (diff)
downloadgcc-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.texi11
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.