OSDN Git Service

PR middle-end/24952
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Feb 2006 19:29:34 +0000 (19:29 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Feb 2006 19:29:34 +0000 (19:29 +0000)
* combine.c (try_combine): Explicitly check whether GET_CODE is
a SET or a CLOBBER, instead on checking that it isn't a USE.

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

gcc/ChangeLog
gcc/combine.c

index e1ab542..0fef1ea 100644 (file)
@@ -1,5 +1,11 @@
 2006-02-24  Roger Sayle  <roger@eyesopen.com>
 
+       PR middle-end/24952
+       * combine.c (try_combine): Explicitly check whether GET_CODE is
+       a SET or a CLOBBER, instead on checking that it isn't a USE.
+
+2006-02-24  Roger Sayle  <roger@eyesopen.com>
+
        * fold-const.c (fold_comparison): New subroutine of fold_binary
        containing transformations common to both the equality and
        ordering relational operators, factored out of fold_binary.
index 9240b32..d6f1079 100644 (file)
@@ -3123,7 +3123,8 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
     if (i3_subst_into_i2)
       {
        for (i = 0; i < XVECLEN (PATTERN (i2), 0); i++)
-         if (GET_CODE (XVECEXP (PATTERN (i2), 0, i)) != USE
+         if ((GET_CODE (XVECEXP (PATTERN (i2), 0, i)) == SET
+              || GET_CODE (XVECEXP (PATTERN (i2), 0, i)) == CLOBBER)
              && REG_P (SET_DEST (XVECEXP (PATTERN (i2), 0, i)))
              && SET_DEST (XVECEXP (PATTERN (i2), 0, i)) != i2dest
              && ! find_reg_note (i2, REG_UNUSED,