(In reply to comment #17)
> This looks like an unrelated problem - the vectorizer does not perform loop
> peeling here so it's not an issue of natural alignment. Lets open a separate 
> PR
> for this one, unless there's already one open. In the meantime, would you
> please try this patch?:
> 
> Index: tree-vectorizer.c
> ===================================================================
> *** tree-vectorizer.c   (revision 126902)
> --- tree-vectorizer.c   (working copy)
> *************** vect_can_force_dr_alignment_p (tree decl
> *** 1527,1533 ****
>          PREFERRED_STACK_BOUNDARY is honored by all translation units.
>          However, until someone implements forced stack alignment, SSE
>          isn't really usable without this.  */
> !     return (alignment <= PREFERRED_STACK_BOUNDARY);
>   }
> 
> 
> --- 1527,1533 ----
>          PREFERRED_STACK_BOUNDARY is honored by all translation units.
>          However, until someone implements forced stack alignment, SSE
>          isn't really usable without this.  */
> !     return (alignment <= STACK_BOUNDARY);
>   }
> 

Hey Dorit.  With this patch zlib appears to compile successfully.  The loop is
vectorized with an "alignment of access forced using peeling" note and linked
apps no longer segfault.

I also tested using Andrew's patch from bug #16660 and always returning true in
vect_can_force_dr_alignment_p but it does not fix this error.

Let me know if I can provide any other info that would be useful to you.


-- 
           Summary: zlib segfault in inflate_table() compiled w/ -O -msse2
                    ftree-vectorize
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dirtyepic at gentoo dot org
 GCC build triplet: i686-linux-gnu
  GCC host triplet: i686-linux-gnu
GCC target triplet: i686-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32893

Reply via email to