This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa] Add description for dominator walker
- From: Diego Novillo <dnovillo at redhat dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 07 Apr 2004 18:12:45 -0400
- Subject: [tree-ssa] Add description for dominator walker
- Organization: Red Hat Canada
A brief overview of the dominator walker.
Diego.
* doc/tree-ssa.texi: Add documentation for the dominator
walker.
Index: doc/tree-ssa.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/Attic/tree-ssa.texi,v
retrieving revision 1.1.2.3
diff -d -c -p -d -u -p -r1.1.2.3 tree-ssa.texi
--- doc/tree-ssa.texi 24 Feb 2004 21:23:28 -0000 1.1.2.3
+++ doc/tree-ssa.texi 7 Apr 2004 22:09:32 -0000
@@ -382,10 +382,38 @@ If @var{fn} wants to get at @var{var}, i
@end deftypefn
@subsection Walking the dominator tree
-@cindex walk dominator tree
-In progress.
+@deftypefn {Tree SSA function} void walk_dominator_tree (@var{walk_data}, @var{bb})
+
+This function walks the dominator tree for the current CFG calling a
+set of callback functions defined in @var{struct dom_walk_data} in
+@file{domwalk.h}. The call back functions you need to define give you
+hooks to execute custom code at various points during traversal:
+
+@enumerate
+@item Once to initialize any local data needed while processing
+ @var{bb} and its children. This local data is pushed into an
+ internal stack which is automatically pushed and popped as the
+ walker traverses the dominator tree.
+
+@item Once before traversing all the statements in the @var{bb}.
+@item Once for every statement inside @var{bb}.
+
+@item Once after traversing all the statements and before recursing
+ into @var{bb}'s dominator children.
+
+@item It then recurses into all the dominator children of @var{bb}.
+
+@item After recursing into all the dominator children of @var{bb} it
+ can, optionally, traverse every statement in @var{bb} again
+ (i.e., repeating steps 2 and 3).
+
+@item Once after walking the statements in @var{bb} and @var{bb}'s
+ dominator children. At this stage, the block local data stack
+ is popped.
+@end enumerate
+@end deftypefn
@node Alias analysis
@section Alias analysis