[RFC] Come up with ipa passes introduction in gccint documentation

Xiong Hu Luo luoxhu@linux.vnet.ibm.com
Sun Sep 29 07:56:00 GMT 2019


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



More information about the Gcc-patches mailing list