diff mbox

Update GCC Internals: remove section Preserving virtual SSA form

Message ID CAMDjE1PUr1i7jDAfB77f++u3jV43mqSFDCigy4wOjOo3xErgyQ@mail.gmail.com
State New
Headers show

Commit Message

Nicklas Bo Jensen Jan. 29, 2016, 11:24 a.m. UTC
Hi,

The section "12.3.2 Preserving the virtual SSA form" in GCC Internals
is outdated. The two functions it documents push_stmt_changes and
pop_stmt_changes have been removed. The functionality have been
replaced with update_stmt. update_stmt is documented elsewhere in
internals. I therefore propose to remove section 12.3.2.

Furthermore, the function mark_stmt_modified have been replaced by
gimple_set_modified.

Please install this patch.

Best,
Nicklas

2016-01-29  Nicklas Bo Jensen  <nbjensen@gmail.com>

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

index d795090..7ca607d 100644

Comments

Jeff Law Feb. 8, 2016, 4:35 p.m. UTC | #1
On 01/29/2016 04:24 AM, Nicklas Bo Jensen wrote:
> Hi,
>
> The section "12.3.2 Preserving the virtual SSA form" in GCC Internals
> is outdated. The two functions it documents push_stmt_changes and
> pop_stmt_changes have been removed. The functionality have been
> replaced with update_stmt. update_stmt is documented elsewhere in
> internals. I therefore propose to remove section 12.3.2.
>
> Furthermore, the function mark_stmt_modified have been replaced by
> gimple_set_modified.
>
> Please install this patch.
>
> Best,
> Nicklas
>
> 2016-01-29  Nicklas Bo Jensen  <nbjensen@gmail.com>
>
>          * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
> outdated section
Thanks.  Installed.
jeff
diff mbox

Patch

--- a/gcc/doc/tree-ssa.texi
+++ b/gcc/doc/tree-ssa.texi
@@ -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