aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2006-04-04 14:06:53 +0000
committerDaniel Berlin <dberlin@gcc.gnu.org>2006-04-04 14:06:53 +0000
commitd9d93d9604c06f8aa3d3c56c677d08b619c239a4 (patch)
tree372560c723427398d41692efcd54e8b8e8c69e57 /gcc
parent67913890b257aff260c35b2f3bfc24d6547484ad (diff)
downloadgcc-d9d93d9604c06f8aa3d3c56c677d08b619c239a4.zip
gcc-d9d93d9604c06f8aa3d3c56c677d08b619c239a4.tar.gz
gcc-d9d93d9604c06f8aa3d3c56c677d08b619c239a4.tar.bz2
tree-ssa.texi (Preserving the virtual ssa form): New subsection.
2006-04-04 Daniel Berlin <dberlin@dberlin.org> * doc/tree-ssa.texi (Preserving the virtual ssa form): New subsection. From-SVN: r112665
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/doc/tree-ssa.texi20
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 79b0ee5..3502b56 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-04 Daniel Berlin <dberlin@dberlin.org>
+
+ * doc/tree-ssa.texi (Preserving the virtual ssa form): New
+ subsection.
+
2006-04-04 Matthias Klose <doko@debian.org>
* Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
diff --git a/gcc/doc/tree-ssa.texi b/gcc/doc/tree-ssa.texi
index e2a657a..359f078 100644
--- a/gcc/doc/tree-ssa.texi
+++ b/gcc/doc/tree-ssa.texi
@@ -1384,6 +1384,26 @@ There are several @code{TODO} flags that control the behavior of
renaming are processed@.
@end itemize
+@subsection Preserving the virtual SSA form
+@cindex preserving virtual SSA form
+
+The virtual SSA form is harder to preserve than the non-virtual SSA form
+mainly because the set of virtual operands for a statement may change at
+what some would consider unexpected times. In general, any time you
+have modified a statement that has virtual operands, you should verify
+whether the list of virtual operands has changed, and if so, mark the
+newly exposed symbols by callnig @code{mark_new_vars_to_rename}.
+
+There is one additional caveat to preserving virtual SSA form. When the
+entire set of virtual operands may be eliminated due to better
+disambiguation, a bare SMT will be added to the list of virtual
+operands, to signify the non-visible aliases that the are still being
+referenced. If the set of bare SMT's may change,
+@code{TODO_update_smt_usage} should be added to the todo flags.
+
+With the current pruning code, this can only occur when constants are
+propagated into array references that were previously non-constant, or
+address expressions are propagated into their uses.
@subsection Examining @code{SSA_NAME} nodes
@cindex examining SSA_NAMEs