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