This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PING^2 for vectorization and toplevel patches [doc patch]
- From: Dorit Naishlos <DORIT at il dot ibm dot com>
- To: Roger Sayle <roger at eyesopen dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- Date: Wed, 27 Apr 2005 12:21:57 +0300
- Subject: Re: PING^2 for vectorization and toplevel patches [doc patch]
- Reply-to:
- Sensitivity:
Roger Sayle <roger@eyesopen.com> wrote on 22/04/2005 00:11:33:
>
> On Thu, 21 Apr 2005, Paolo Bonzini wrote:
> > Like for UNITS_FOR_SIMD_WORD, there is absolutely no mention of a
> > vectorizer in passes.texi except for if-conversion. I don't think I'm
> > most suited to write it so I'm CCing Dorit; I will take care of it if
> > she asks me so, anyway.
>
> This is is related to one of the oldest open PRs for gcc, PR951 :-)
>
Here is the missing documentation for the vectorization pass.
ok to install?
thanks,
dorit
Index: passes.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/passes.texi,v
retrieving revision 1.51
diff -c -3 -p -r1.51 passes.texi
*** passes.texi 1 Mar 2005 17:59:06 -0000 1.51
--- passes.texi 26 Apr 2005 10:15:12 -0000
*************** The optimizations also use various utili
*** 399,404 ****
--- 399,416 ----
@file{tree-ssa-loop-manip.c}, @file{cfgloop.c}, @file{cfgloopanal.c} and
@file{cfgloopmanip.c}.
+ Vectorization. This pass transforms loops to operate on vector types
+ instead of scalar types. Data parallelism across loop iterations is
exploited
+ to group data elements from consecutive iterations into a vector and
operate
+ on them in parallel. Depending on available target support the loop is
+ strip-mined by a factor @code{VF} (vectorization factor) which is
+ the number of elements operated upon in parallel in each iteration.
+ Additional loop transformations such as peeling and versioning may take
place
+ to align the number of iterations, and to align the memory accesses in
the loop.
+ The pass is implemented in @file{tree-vectorizer.c} (the main driver and
general
+ utilities), @file{tree-vect-analyze.c} and @file{tree-vect-tranform.c}.
+ Analysis of data references is in @file{tree-data-ref.c}.
+
@item Tree level if-conversion for vectorizer
This pass applies if-conversion to simple loops to help vectorizer.