public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
To: gcc-patches@gcc.gnu.org
Cc: segher@kernel.crashing.org, wschmidt@linux.ibm.com,
	luoxhu@linux.ibm.com,        hubicka@ucw.cz, mliska@suse.cz,
	       Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
Subject: [RFC] Come up with ipa passes introduction in gccint documentation
Date: Sun, 29 Sep 2019 07:56:00 -0000	[thread overview]
Message-ID: <20190929075637.79741-1-luoxhu@linux.vnet.ibm.com> (raw)

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	other threads:[~2019-09-29  7:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-29  7:56 Xiong Hu Luo [this message]
2019-09-29 16:17 ` Segher Boessenkool
2019-09-30  1:47   ` luoxhu
2019-10-01  3:05     ` Segher Boessenkool
2019-09-30  8:32 ` Martin Jambor
2019-10-08  8:52   ` [PATCH] " luoxhu
2019-10-08 20:53     ` Sandra Loosemore
2019-10-09  7:20       ` Richard Biener
2019-10-09  7:37         ` Jan Hubicka
2019-10-10 19:57           ` Sandra Loosemore

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190929075637.79741-1-luoxhu@linux.vnet.ibm.com \
    --to=luoxhu@linux.vnet.ibm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hubicka@ucw.cz \
    --cc=luoxhu@linux.ibm.com \
    --cc=mliska@suse.cz \
    --cc=segher@kernel.crashing.org \
    --cc=wschmidt@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).