aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-07-08 20:46:15 +0000
committerJeff Law <law@gcc.gnu.org>1998-07-08 14:46:15 -0600
commit02e39abcc1b8fd6bdce02e3aaf65acd980c85398 (patch)
treeaeccb74e5dcc7a1fbb57d55e5622b4b567736e59
parentd7f8f04755de0d816a98b5dc4e0fd0d8841fbe7c (diff)
downloadgcc-02e39abcc1b8fd6bdce02e3aaf65acd980c85398.zip
gcc-02e39abcc1b8fd6bdce02e3aaf65acd980c85398.tar.gz
gcc-02e39abcc1b8fd6bdce02e3aaf65acd980c85398.tar.bz2
cse.c (count_reg_usage): Count registers used in addresses of CLOBBERs.
* cse.c (count_reg_usage): Count registers used in addresses of CLOBBERs. From-SVN: r21012
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cse.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 70d8199..e3a8837 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jul 8 21:43:14 1998 Jeffrey A Law (law@cygnus.com)
+
+ * cse.c (count_reg_usage): Count registers used in addresses of
+ CLOBBERs.
+
Wed Jul 8 15:08:29 1998 Jim Wilson <wilson@cygnus.com>
* Makefile.in (STAGESTUFF): Readd line lost during June 9 FSF merge.
diff --git a/gcc/cse.c b/gcc/cse.c
index e34908f..19e809a 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -8784,7 +8784,13 @@ count_reg_usage (x, counts, dest, incr)
case CONST_DOUBLE:
case SYMBOL_REF:
case LABEL_REF:
- case CLOBBER:
+ return;
+
+ case CLOBBER:
+ /* If we are clobbering a MEM, mark any registers inside the address
+ as being used. */
+ if (GET_CODE (XEXP (x, 0)) == MEM)
+ count_reg_usage (XEXP (XEXP (x, 0), 0), counts, NULL_RTX, incr);
return;
case SET: