* struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Dec 2005 14:18:36 +0000 (14:18 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Dec 2005 14:18:36 +0000 (14:18 +0000)
PARALLELs with a mode.

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

gcc/ChangeLog
gcc/struct-equiv.c

index 2823079..1e65635 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 3e6ba5d..fc563b6 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.  */