[patch] vectorizer cleanups (and prep for outer-loop vectorization) - part 5/5

Dorit Nuzman DORIT@il.ibm.com
Wed Apr 11 11:51:00 GMT 2007


Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> wrote on 02/04/2007
12:48:12:

> Hello,
>
> I will look at the patch.  However, would it be possible to split it
> into smaller parts?  The changes seem to be quite independent,
>
> Zdenek
>
> > This is exactly the same patch as was committed to autovect last week:
> > http://gcc.gnu.org/ml/gcc-patches/2007-03/msg01904.html
> > (but relative to mainline, and after testig on mainline).
> >
> > These are a few cleanups (really technical things, no new
functionality),
> > some of which will be also useful for outer-loop vectorization:
> >
> > o Remove the field exit_cond from loop_vec_info, which used to hold the
> > loop-exit stmt. Instead, a stmt that is identified as a loop-exit
control
> > stmt is marked as a 'loop_exit_ctrl_vec_info_type' (new enum value for
> > stmt_vec_info_type).  This will be useful when looking at outer-loops
> > because we have more than one stmt like that in the loop (there's also
one
> > in the inner-loop).
...
> > o A bunch of other cleanups (that are not necessarily inspired by
> > outer-loop vectorization): ... Add a flag to allow disabling
> > tree-reassociation, to help test reductions that are otherwise
transformed
> > by reassociation to something we currently don't recognize; Fix
> > indentation; A few other small miscellaneous stuff.
> >

Tested on the vectorizer testcases
Bootstrapped and passed full testing on powerpc-linux together with the
other parts of this patch.

thanks,
dorit

ChangeLog:

       * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
       * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.

       * tree-vectorizer.h (NITERS_KNOWN_P): New.
       * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
      instead of LOOP_VINFO_INT_NITERS to avoid having to geneate
loop_info.

       * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
       dump print.
       (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
       print message.
       (vect_analyze_scalar_cycles): Fix indentation.
       (vect_enhance_data_refs_alignment): Fix check in case of peeling.
       (vect_mark_relevant): Include phis in relevance analysis.

       * tree-vect-transform.c (vect_transform_loop): Add an assert.

       * tree-ssa-reassoc.c (gate_reassoc): New function.
       * common.opt (tree-reassoc): New flag.
       (pass_reassoc): Add gate.

(See attached file: vect_cleanups.5.misc.txt)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: vect_cleanups.5.misc.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070411/1a8784de/attachment.txt>


More information about the Gcc-patches mailing list