Mercurial > hg > CbC > CbC_gcc
diff gcc/doc/passes.texi @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | 58ad6c70ea60 |
children | f6334be47118 |
line wrap: on
line diff
--- a/gcc/doc/passes.texi Sun Feb 07 18:28:00 2010 +0900 +++ b/gcc/doc/passes.texi Fri Feb 12 23:39:51 2010 +0900 @@ -166,9 +166,14 @@ language form based on the requirements of the next pass. Nevertheless, what is present is useful, and a far sight better than nothing at all. +Each pass should have a unique name. Each pass may have its own dump file (for GCC debugging purposes). -Passes without any names, or with a name starting with a star, do not -dump anything. +Passes with a name starting with a star do not dump anything. +Sometimes passes are supposed to share a dump file / option name. +To still give these unique names, you can use a prefix that is delimited +by a space from the part that is used for the dump file / option name. +E.g. When the pass name is "ud dce", the name used for dump file/options +is "dce". TODO: describe the global variables set up by the pass manager, and a brief description of how a new pass should use it. @@ -297,7 +302,7 @@ This pass performs trivial dominator-based copy and constant propagation, expression simplification, and jump threading. It is run multiple times -throughout the optimization process. It it located in @file{tree-ssa-dom.c} +throughout the optimization process. It is located in @file{tree-ssa-dom.c} and is described by @code{pass_dominator}. @item Forward propagation of single-use variables @@ -438,14 +443,29 @@ 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-transform.c}. +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), +@file{tree-vect-loop.c} and @file{tree-vect-loop-manip.c} (loop specific parts +and general loop utilities), @file{tree-vect-slp} (loop-aware SLP +functionality), @file{tree-vect-stmts.c} and @file{tree-vect-data-refs.c}. Analysis of data references is in @file{tree-data-ref.c}. +SLP Vectorization. This pass performs vectorization of straight-line code. The +pass is implemented in @file{tree-vectorizer.c} (the main driver), +@file{tree-vect-slp.c}, @file{tree-vect-stmts.c} and +@file{tree-vect-data-refs.c}. + Autoparallelization. This pass splits the loop iteration space to run into several threads. The pass is implemented in @file{tree-parloops.c}. +Graphite is a loop transformation framework based on the polyhedral +model. Graphite stands for Gimple Represented as Polyhedra. The +internals of this infrastructure are documented in +@w{@uref{http://gcc.gnu.org/wiki/Graphite}}. The passes working on +this representation are implemented in the various @file{graphite-*} +files. + @item Tree level if-conversion for vectorizer This pass applies if-conversion to simple loops to help vectorizer.