OSDN Git Service

* struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Mar 2006 10:58:22 +0000 (10:58 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Mar 2006 10:58:22 +0000 (10:58 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111929 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/struct-equiv.c

index eeb0feb..bac513f 100644 (file)
@@ -1,3 +1,7 @@
+2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
+
+       * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
+
 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
 
        * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
index 265cfd0..e580b88 100644 (file)
@@ -570,17 +570,13 @@ rtx_equiv_p (rtx *xp, rtx y, int rvalue, struct equiv_info *info)
          return false;
        x_dest1 = XEXP (x, 0);
        /* validate_change might have changed the destination.  Put it back
-          so that we can do a valid source match.  */
+          so that we can do a proper match for its role a an input.  */
        XEXP (x, 0) = x_dest0;
-       if (!rtx_equiv_p (&XEXP (x, 1), XEXP (y, 1), 0, info))
+       if (!rtx_equiv_p (&XEXP (x, 0), XEXP (y, 0), 1, info))
          return false;
        gcc_assert (x_dest1 == XEXP (x, 0));
        /* Process source.  */
        return rtx_equiv_p (&XEXP (x, 1), XEXP (y, 1), 1, info);
-      if (!rtx_equiv_p (&XEXP(x, 0), XEXP (y, 0), 0, info))
-       return false;
-      /* Process both subexpressions as inputs.  */
-      break;
       }
     case CLOBBER:
       gcc_assert (rvalue < 0);