OSDN Git Service

2005-01-21 Daniel Berlin <dberlin@dberlin.org>
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 Jan 2005 19:23:57 +0000 (19:23 +0000)
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 Jan 2005 19:23:57 +0000 (19:23 +0000)
* doc/tree-ssa.texi (Statement Operands): Add example for new
must-def macro. Note deprecation of old operands interface.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94075 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/doc/tree-ssa.texi

index 69b5bc1..15bde7f 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
+
+       * doc/tree-ssa.texi (Statement Operands): Add example for new
+       must-def macro. Note deprecation of old operands interface.
+
 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
 
        PR tree-optimization/19484
index be391c2..fbc8561 100644 (file)
@@ -817,7 +817,12 @@ inside each statement's annotation and can be accessed with
 @code{DEF_OPS}, @code{USE_OPS}, @code{V_MAY_DEF_OPS},
 @code{V_MUST_DEF_OPS} and @code{VUSE_OPS}.  The following are all the
 accessor macros available to access USE operands.  To access all the
-other operand arrays, just change the name accordingly:
+other operand arrays, just change the name accordingly.  Note that
+this interface to the operands is deprecated, and is slated for
+removal in a future version of gcc.  The preferred interface is the
+operand iterator interface.  Unless you need to discover the number of
+operands of a given type on a statement, you are strongly urged not to
+use this interface.
 
 @defmac USE_OPS (@var{ann})
 Returns the array of operands used by the statement with annotation
@@ -977,10 +982,10 @@ aren't using operand pointers, use and defs flags can be mixed.
     @}
 @end smallexample
 
-Note that @code{V_MAY_DEFS} are broken into 2 flags, one for the
+@code{V_MAY_DEF}s are broken into two flags, one for the
 @code{DEF} portion (@code{SSA_OP_VMAYDEF}) and one for the USE portion
 (@code{SSA_OP_VMAYUSE}).  If all you want to look at are the
-@code{V_MAY_DEFS} together, there is a fourth iterator macro for this,
+@code{V_MAY_DEF}s together, there is a fourth iterator macro for this,
 which returns both a def_operand_p and a use_operand_p for each
 @code{V_MAY_DEF} in the statement.  Note that you don't need any flags for
 this one.
@@ -996,6 +1001,25 @@ this one.
     @}
 @end smallexample
 
+@code{V_MUST_DEF}s are broken into two flags, one for the
+@code{DEF} portion (@code{SSA_OP_VMUSTDEF}) and one for the kill portion
+(@code{SSA_OP_VMUSTDEFKILL}).  If all you want to look at are the
+@code{V_MUST_DEF}s together, there is a fourth iterator macro for this,
+which returns both a def_operand_p and a use_operand_p for each
+@code{V_MUST_DEF} in the statement.  Note that you don't need any flags for
+this one.
+
+@smallexample
+  use_operand_p kill_p;
+  def_operand_p def_p;
+  ssa_op_iter iter;
+
+  FOR_EACH_SSA_MUSTDEF_OPERAND (def_p, kill_p, stmt, iter)
+    @{
+      my_code;
+    @}
+@end smallexample
+
 
 There are many examples in the code as well, as well as the
 documentation in @file{tree-ssa-operands.h}.