There is no ipa passes introduction in gccint now, is it nessessary to
add this part as both GIMPLE passes and RTL passes breif intruduction
already exit in Chapter 9 "Passes and Files of the Compiler" but no
section for ipa passes?
If it's OK, this is just a framework, lots of words need be filled into
each item.

ChangeLog:
        * doc/lto.texi (IPA): Reference to the IPA passes.
        * doc/passes.texi (Tree SSA passes): Add node IPA passes.
---
 gcc/doc/lto.texi    |  6 ++---
 gcc/doc/passes.texi | 62 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 65 insertions(+), 3 deletions(-)

diff --git a/gcc/doc/lto.texi b/gcc/doc/lto.texi
index 771e8278e50..ae48e617ea1 100644
--- a/gcc/doc/lto.texi
+++ b/gcc/doc/lto.texi
@@ -350,8 +350,9 @@ while the @emph{Read summary}, @emph{Execute}, and
 @end itemize
 
 To simplify development, the GCC pass manager differentiates
-between normal inter-procedural passes and small inter-procedural
-passes.  A @emph{small inter-procedural pass}
+between normal inter-procedural passes @pxref{All regular ipa passes}
+and small inter-procedural passes@pxref{All small ipa passes}
+& @pxref{All late ipa passes}. A @emph{small inter-procedural pass}
 (@code{SIMPLE_IPA_PASS}) is a pass that does
 everything at once and thus it cannot be executed during WPA in
 WHOPR mode.  It defines only the @emph{Execute} stage and during
@@ -362,7 +363,6 @@ object files.  The simple inter-procedural passes can also 
be used
 for easier prototyping and development of a new inter-procedural
 pass.
 
-
 @subsection Virtual clones
 
 One of the main challenges of introducing the WHOPR compilation
diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi
index 6edb9a0bfb7..0b6cf73469c 100644
--- a/gcc/doc/passes.texi
+++ b/gcc/doc/passes.texi
@@ -21,6 +21,7 @@ where near complete.
 * Gimplification pass::  The bits are turned into something we can optimize.
 * Pass manager::         Sequencing the optimization passes.
 * Tree SSA passes::      Optimizations on a high-level representation.
+* IPA passes::           Optimizations on scope of intra-procedual.
 * RTL passes::           Optimizations on a low-level representation.
 * Optimization info::    Dumping optimization information from passes.
 @end menu
@@ -651,6 +652,67 @@ registers don't need to be saved.  This pass is located in
 
 @end itemize
 
+@node IPA passes
+@section IPA passes
+@cindex ipa passes
+The following briefly describes the IPA optimization
+passes including all small ipa passes, all regular ipa passes and all
+late ipa passes.
+
+@node All small ipa passes
+@subsection All small ipa passes
+@cindex all small ipa passes
+
+@itemize @bullet
+@item ipa free lang data
+@item ipa function and variable visibility
+@item ipa remove symbols
+@item ipa oacc
+@item ipa pta
+@item ipa oacc kernels
+@item target clone
+@item ipa auto profile
+@item ipa tree profile
+@item ipa free fn summary
+@item ipa increase alignment
+@item ipa tm
+@item ipa lower emutls
+@end itemize
+
+@node All regular ipa passes
+@subsection All regular ipa passes
+@cindex all regular ipa passes
+
+@itemize @bullet
+@item ipa whole program visiblity
+@item ipa profile
+@item ipa icf
+@item ipa devirt
+@item ipa cp
+@item ipa cdtor merge
+@item ipa hsa
+@item ipa fn summary
+@item ipa inline
+@item ipa pure const
+@item ipa free fn summary
+@item ipa reference
+@item ipa single use
+@item ipa comdats
+@end itemize
+
+@node All late ipa passes
+@subsection All late ipa passes
+@cindex all late ipa passes
+All late ipa passes are also simple IPA passes executed after
+the regular passes.  In WHOPR mode the passes are executed after
+partitioning and thus see just parts of the compiled unit.
+
+@itemize @bullet
+@item pass materialize all clones
+@item pass ipa pta
+@item pass omp simd clone
+@end itemize
+
 @node RTL passes
 @section RTL passes
 
-- 
2.21.0.777.g83232e3864

Reply via email to