From: Dorit Naishlos Date: Mon, 2 May 2005 13:32:20 +0000 (+0000) Subject: * doc/passes.texi: Document vectorization pass. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c9eb94f4056b50419b1f233d128eaa21c70cdca2;p=gcc.git * doc/passes.texi: Document vectorization pass. From-SVN: r99094 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 790c285bbd0..1da038fd76d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2005-05-02 Dorit Naishlos + + * doc/passes.texi: Document vectorization pass. + 2005-05-02 Kazu Hirata * tree-scalar-evolution.c (get_exit_conditions_rec, diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi index fd4e323d90a..f2aba6d9758 100644 --- a/gcc/doc/passes.texi +++ b/gcc/doc/passes.texi @@ -399,6 +399,19 @@ The optimizations also use various utility functions contained in @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.