summaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-29 21:37:01 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-29 21:37:01 +0000
commitdedfd6698f05d131adf09d2e5dcd443b8f200666 (patch)
treee02eed9bc7c37428344f533ee75aa2a75b30fdf6 /gcc/ira.c
parent09c509edcc2f6e6859f02de43ce0fe10a941a8d7 (diff)
downloadgcc-dedfd6698f05d131adf09d2e5dcd443b8f200666.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158911 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira.c')
-rw-r--r--gcc/ira.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index ce0f0da0fcd..8e34392adc3 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -431,9 +431,6 @@ setup_class_hard_regs (void)
HARD_REG_SET processed_hard_reg_set;
ira_assert (SHRT_MAX >= FIRST_PSEUDO_REGISTER);
- /* We could call ORDER_REGS_FOR_LOCAL_ALLOC here (it is usually
- putting hard callee-used hard registers first). But our
- heuristics work better. */
for (cl = (int) N_REG_CLASSES - 1; cl >= 0; cl--)
{
COPY_HARD_REG_SET (temp_hard_regset, reg_class_contents[cl]);
@@ -490,6 +487,9 @@ setup_available_class_regs (void)
static void
setup_alloc_regs (bool use_hard_frame_p)
{
+#ifdef ADJUST_REG_ALLOC_ORDER
+ ADJUST_REG_ALLOC_ORDER;
+#endif
COPY_HARD_REG_SET (no_unit_alloc_regs, fixed_reg_set);
if (! use_hard_frame_p)
SET_HARD_REG_BIT (no_unit_alloc_regs, HARD_FRAME_POINTER_REGNUM);