tree-ssa.texi (Preserving the virtual SSA form): Remove outdated section.

* doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
	outdated section.

From-SVN: r233221
This commit is contained in:
Nicklas Bo Jensen 2016-02-08 16:35:24 +00:00 committed by Jeff Law
parent eba9e839de
commit 98c3965210
2 changed files with 6 additions and 35 deletions

View File

@ -1,3 +1,8 @@
2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
* doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
outdated section.
2016-02-08 Jason Merrill <jason@redhat.com>
PR c++/69631

View File

@ -432,7 +432,7 @@ dominator optimizations currently do this.
When lazy updating is being used, the immediate use information is out of date
and cannot be used reliably. Lazy updating is achieved by simply marking
statements modified via calls to @code{mark_stmt_modified} instead of
statements modified via calls to @code{gimple_set_modified} instead of
@code{update_stmt}. When lazy updating is no longer required, all the
modified statements must have @code{update_stmt} called in order to bring them
up to date. This must be done before the optimization is finished, or
@ -654,40 +654,6 @@ are explicitly destroyed and only the symbols marked for
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, statement
modifications should be bracketed between calls to
@code{push_stmt_changes} and @code{pop_stmt_changes}. For example,
@smallexample
munge_stmt (tree stmt)
@{
push_stmt_changes (&stmt);
@dots{} rewrite STMT @dots{}
pop_stmt_changes (&stmt);
@}
@end smallexample
The call to @code{push_stmt_changes} saves the current state of the
statement operands and the call to @code{pop_stmt_changes} compares
the saved state with the current one and does the appropriate symbol
marking for the SSA renamer.
It is possible to modify several statements at a time, provided that
@code{push_stmt_changes} and @code{pop_stmt_changes} are called in
LIFO order, as when processing a stack of statements.
Additionally, if the pass discovers that it did not need to make
changes to the statement after calling @code{push_stmt_changes}, it
can simply discard the topmost change buffer by calling
@code{discard_stmt_changes}. This will avoid the expensive operand
re-scan operation and the buffer comparison that determines if symbols
need to be marked for renaming.
@subsection Examining @code{SSA_NAME} nodes
@cindex examining SSA_NAMEs