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>
- Date: Thu, 28 Apr 2005 15:37:24 +0300
- Subject: Re: PING^2 for vectorization and toplevel patches [doc patch]
- Reply-to:
- Sensitivity:
Roger Sayle <roger@eyesopen.com> wrote on 27/04/2005 18:50:28:
>
> On Wed, 27 Apr 2005, Dorit Naishlos wrote:
> > Here is the missing documentation for the vectorization pass.
>
> Hi Dorit,
>
> This is OK for mainline with a suitable ChangeLog entry. Thanks.
>
> Whilst this patch is fine as it is (any documentation is better
> than before :), you might consider rewording your introduction of
> the technical term "strip-mining"; either by providing a short
> definition the first time it's used or using an alternate phrase
> such as "unrolled". Whilst passes.texi has a higher expectation
> of a technical compiler background that other parts of GCC's
> documentation, it does no harm to lower the barrier for casual
> readers.
>
agreed.
here's the updated patch. ok to install?
thanks,
dorit
Changelog:
* doc/passes.texi: Document vectorization pass.
Patch:
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 28 Apr 2005 09:55:54 -0000
*************** The optimizations also use various utili
*** 399,404 ****
--- 399,417 ----
@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
+ conceptually unrolled by a factor @code{VF} (vectorization factor), which
is
+ the number of elements operated upon in parallel in each iteration, and
the
+ @code{VF} copies of each scalar operation are fused to form a vector
operation.
+ 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.
> Very many thanks for documenting this.
>
> > + 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}.
>
> Roger
> --
>