This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PING^2 for vectorization and toplevel patches [doc patch]





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
> --
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]