This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [docs patch]: Removeobsolete section in tree-ssa.texi, add V_MUST_DEF iterator


Here is the patch, which simply notes the deprecation of the old
interface, and adds the V_MUST_DEF iterator docs.
Okay for mainline?

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.
Index: tree-ssa.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/tree-ssa.texi,v
retrieving revision 1.14
diff -u -p -r1.14 tree-ssa.texi
--- tree-ssa.texi	5 Nov 2004 01:36:57 -0000	1.14
+++ tree-ssa.texi	21 Jan 2005 18:24:56 -0000
@@ -817,7 +817,12 @@ inside each statement's annotation and c
 @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,7 +982,7 @@ aren't using operand pointers, use and d
     @}
 @end smallexample
 
-Note that @code{V_MAY_DEFS} are broken into 2 flags, one for the
+@code{V_MAY_DEFS} are broken into 2 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,
@@ -996,6 +1001,25 @@ this one.
     @}
 @end smallexample
 
+@code{V_MUST_DEFS} are broken into 2 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_DEFS} 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}.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]