* regrename.c (regrename_optimize): Do not rename registers to
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 May 2001 07:56:57 +0000 (07:56 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 May 2001 07:56:57 +0000 (07:56 +0000)
leaf registers.

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

gcc/ChangeLog
gcc/regrename.c

index b5937f0..2ab8703 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-14  Mark Mitchell  <mark@codesourcery.com>
+
+       * regrename.c (regrename_optimize): Do not rename registers to
+       leaf registers.
+
 2001-05-14  Alexandre Oliva  <aoliva@redhat.com>
 
        * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may
index ae25e21..bad6624 100644 (file)
@@ -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