This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
fix PR 15089
- From: Philip Blundell <pb at nexus dot co dot uk>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 29 Apr 2004 20:04:25 +0100
- Subject: fix PR 15089
This patch stops loop from deleting insns that write to a hard
register. I'd like to apply this to the trunk and the 3.4 branch, since
the bug is a regression from gcc 2.95.
Thanks
p.
2004-04-29 Philip Blundell <philb@gnu.org>
* loop.c (scan_loop): Don't delete SET of a hard register.
Index: loop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/loop.c,v
retrieving revision 1.488.2.3
diff -u -r1.488.2.3 loop.c
--- loop.c 14 Feb 2004 14:46:03 -0000 1.488.2.3
+++ loop.c 28 Apr 2004 22:02:53 -0000
@@ -929,6 +929,7 @@
|| (! (GET_CODE (SET_SRC (set)) == REG
&& (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. */