This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Skip unvectorizable statements in basic block SLP
On Sun, Apr 25, 2010 at 11:42 PM, Ira Rosen <IRAR@il.ibm.com> wrote:
>
> Hi,
>
> This patch adds an ability to skip unvectorizable statements in basic block
> vectorization, and continue to look for other SLP opportunities in the same
> basic block.
>
> Bootstrapped and tested on x86_64-suse-linux. Committed.
>
> Ira
>
>
> ChangeLog:
>
> ? ? ?* tree-vectorizer.h (struct _stmt_vec_info): Add new field to
> ? ? ?determine if the statement is vectorizable, and a macro to
> ? ? ?access it.
> ? ? ?* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
> ? ? ?Skip statements that can't be vectorized. If the analysis
> ? ? ?fails, mark the statement as unvectorizable if vectorizing
> ? ? ?basic block.
> ? ? ?(vect_compute_data_refs_alignment): Likewise.
> ? ? ?(vect_verify_datarefs_alignment): Skip statements marked as
> ? ? ?unvectorizable. Add print.
> ? ? ?(vect_analyze_group_access): Skip statements that can't be
> ? ? ?vectorized. If the analysis fails, mark the statement as
> ? ? ?unvectorizable if vectorizing basic block.
> ? ? ?(vect_analyze_data_ref_accesses, vect_analyze_data_refs):
> ? ? ?Likewise.
> ? ? ?* tree-vect-stmts.c (vectorizable_store): Fix the number of
> ? ? ?generated stmts for SLP.
> ? ? ?(new_stmt_vec_info): Initialize the new field.
> ? ? ?* tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
> ? ? ?statements marked as unvectorizable.
>
> testsuite/ChangeLog:
>
> ? ? ?* gcc.dg/vect/bb-slp-23.c: New test.
>
I think this caused:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43901
H.J.