This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Someone broke vectorizer testcases on powerpc


On 12/10/06, Ira Rosen <IRAR@il.ibm.com> wrote:

"Richard Guenther" <richard.guenther@gmail.com> wrote on 10/12/2006 13:37:03:

> On 12/10/06, Ira Rosen <IRAR@il.ibm.com> wrote:
> >
> > A lot of the vectorizer testcases are broken on powerpc-linux. The last
> > version they passed was r119475 (from December 3). The tests are
failing at
> > least since December 6. Looking at the tests that fail, it seems that
the
> > failures are connected to misaligned accesses. Wonder which patch broke
> > it...
>
> My bet would be another missed GIMPLE_STMT_OPERAND transition
> from Aldys patch.  Just look at one of the ICEs, it should be trivial to
> fix.

I did the following fixes:

Index: tree-vect-patterns.c
===================================================================
--- tree-vect-patterns.c        (revision 119704)
+++ tree-vect-patterns.c        (working copy)
@@ -204,7 +204,7 @@ vect_recog_dot_prod_pattern (tree last_s
       /* Has been detected as widening-summation?  */

       stmt = STMT_VINFO_RELATED_STMT (stmt_vinfo);
-      expr = TREE_OPERAND (stmt, 1);
+      expr = GIMPLE_STMT_OPERAND (stmt, 1);
       type = TREE_TYPE (expr);
       if (TREE_CODE (expr) != WIDEN_SUM_EXPR)
         return NULL;
Index: tree-vect-transform.c
===================================================================
--- tree-vect-transform.c       (revision 119704)
+++ tree-vect-transform.c       (working copy)
@@ -2575,7 +2575,7 @@ vect_permute_store_chain (VEC(tree,heap)
   unsigned int j;
   VEC(tree,heap) *first, *second;

-  scalar_dest = TREE_OPERAND (stmt, 0);
+  scalar_dest = GIMPLE_STMT_OPERAND (stmt, 0);
   first = VEC_alloc (tree, heap, length/2);
   second = VEC_alloc (tree, heap, length/2);

@@ -2941,7 +2941,7 @@ vect_setup_realignment (tree stmt, block
   loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
   struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
   edge pe = loop_preheader_edge (loop);
-  tree scalar_dest = TREE_OPERAND (stmt, 0);
+  tree scalar_dest = GIMPLE_STMT_OPERAND (stmt, 0);
   tree vec_dest;
   tree init_addr;
   tree inc;

Should I commit them as obvious (I can't bootstrap, since it's broken)?

Yes, those fixes are obvious.


Thanks,
Richard.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]