From: Mark Mitchell Date: Mon, 14 May 2001 07:56:57 +0000 (+0000) Subject: regrename.c (regrename_optimize): Do not rename registers to leaf registers. X-Git-Tag: prereleases/libstdc++-3.0.95~4480 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b2a8b02619c3d68a0e4b24dbe24d02a28eaeb9c3;p=thirdparty%2Fgcc.git regrename.c (regrename_optimize): Do not rename registers to leaf registers. * regrename.c (regrename_optimize): Do not rename registers to leaf registers. From-SVN: r42066 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b5937f0a0055..2ab87036652a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-05-14 Mark Mitchell + + * regrename.c (regrename_optimize): Do not rename registers to + leaf registers. + 2001-05-14 Alexandre Oliva * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may diff --git a/gcc/regrename.c b/gcc/regrename.c index ae25e2171fb8..bad6624f59d0 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -292,6 +292,12 @@ regrename_optimize () /* Can't use regs which aren't saved by the prologue. */ || (! regs_ever_live[new_reg + i] && ! call_used_regs[new_reg + i]) +#ifdef LEAF_REGISTERS + /* We can't use a non-leaf register if we're in a + leaf function. */ + || (current_function_is_leaf + && !LEAF_REGISTERS[new_reg + i]) +#endif #ifdef HARD_REGNO_RENAME_OK || ! HARD_REGNO_RENAME_OK (reg + i, new_reg + i) #endif