]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for PARALLELs with a...
authorJ"orn Rennecke <joern.rennecke@st.com>
Wed, 14 Dec 2005 14:18:36 +0000 (14:18 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Wed, 14 Dec 2005 14:18:36 +0000 (14:18 +0000)
* struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
PARALLELs with a mode.

From-SVN: r108511

gcc/ChangeLog
gcc/struct-equiv.c

index 282307950c3c8e1cb7cb2a520ec53a7d83ec0cb5..1e656357f61768472205f1327020044c1847d471 100644 (file)
@@ -1,3 +1,8 @@
+2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
+
+       * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
+       PARALLELs with a mode.
+
 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
 
        * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
index 3e6ba5deaba950797c728533e50e308dcfcada69..fc563b64fe7d38c5d231dc51b098b805c505d218 100644 (file)
@@ -637,7 +637,10 @@ rtx_equiv_p (rtx *xp, rtx y, int rvalue, struct equiv_info *info)
       return (rtx_equiv_p (&XEXP (x, 0), XEXP (y, 0), 0, info)
              && rtx_equiv_p (&XEXP (x, 0), XEXP (y, 0), 1, info));
     case PARALLEL:
-      gcc_assert (rvalue < 0);
+      /* If this is a top-level PATTERN PARALLEL, we expect the caller to 
+        have handled the SET_DESTs.  A complex or vector PARALLEL can be
+        identified by having a mode.  */
+      gcc_assert (rvalue < 0 || GET_MODE (x) != VOIDmode);
       break;
     case LABEL_REF:
       /* Check special tablejump match case.  */