* cse.c (delete_trivially_dead_insns): Identify no-op insns
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Nov 1999 00:52:07 +0000 (00:52 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Nov 1999 00:52:07 +0000 (00:52 +0000)
        containing subregs too.

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

gcc/ChangeLog
gcc/cse.c

index fe49964..1694b72 100644 (file)
@@ -1,3 +1,8 @@
+Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
+
+       * cse.c (delete_trivially_dead_insns): Identify no-op insns
+       containing subregs too.
+
 Wed Nov 17 17:39:48 MST 1999   Diego Novillo <dnovillo@cygnus.com>
 
        * invoke.texi: Add documentation for -muninit-const-in-rodata.
index 0736cd9..979069c 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7176,8 +7176,10 @@ delete_trivially_dead_insns (insns, nreg)
        live_insn = ! dead_libcall;
       else if (GET_CODE (PATTERN (insn)) == SET)
        {
-         if (GET_CODE (SET_DEST (PATTERN (insn))) == REG
-             && SET_DEST (PATTERN (insn)) == SET_SRC (PATTERN (insn)))
+         if ((GET_CODE (SET_DEST (PATTERN (insn))) == REG
+              || GET_CODE (SET_DEST (PATTERN (insn))) == SUBREG)
+             && rtx_equal_p (SET_DEST (PATTERN (insn)),
+                             SET_SRC (PATTERN (insn))))
            ;
 
 #ifdef HAVE_cc0
@@ -7207,8 +7209,9 @@ delete_trivially_dead_insns (insns, nreg)
 
            if (GET_CODE (elt) == SET)
              {
-               if (GET_CODE (SET_DEST (elt)) == REG
-                   && SET_DEST (elt) == SET_SRC (elt))
+               if ((GET_CODE (SET_DEST (elt)) == REG
+                    || GET_CODE (SET_DEST (elt)) == SUBREG)
+                   && rtx_equal_p (SET_DEST (elt), SET_SRC (elt)))
                  ;
 
 #ifdef HAVE_cc0