re PR tree-optimization/15089 (local register variable with a specified register...
authorPhilip Blundell <philb@gnu.org>
Fri, 25 Jun 2004 21:48:38 +0000 (21:48 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 25 Jun 2004 21:48:38 +0000 (21:48 +0000)
PR wrong-code/15089
* loop.c (scan_loop): Do not move user-specified register
assignments.

From-SVN: r83684

gcc/ChangeLog
gcc/loop.c

index f015ca46904b75cdc0dfa1d043fbea028bda6e95..8886dc59d52d722746936f34a0be56d84fdbf8a7 100644 (file)
@@ -1,3 +1,9 @@
+2004-06-25  Philip Blundell  <philb@gnu.org>
+
+       PR wrong-code/15089
+       * loop.c (scan_loop): Do not move user-specified register
+       assignments.
+       
 2004-06-25  DJ Delorie  <dj@redhat.com>
 
        * c-common.h (warn_cast_qual, warn_missing_format_attribute,
index aafb18c02f9fe3170c47cc2d8b85af9d45c5cac9..28507b37e205177cb16f68ac71ade09e84daeaf2 100644 (file)
@@ -931,6 +931,7 @@ scan_loop (struct loop *loop, int flags)
                          || (! (REG_P (SET_SRC (set))
                                 && (REGNO (SET_SRC (set))
                                     < FIRST_PSEUDO_REGISTER))))
+                     && regno >= FIRST_PSEUDO_REGISTER 
                      /* This test is not redundant; SET_SRC (set) might be
                         a call-clobbered register and the life of REGNO
                         might span a call.  */