+2013-12-18 Aldy Hernandez <aldyh@redhat.com>
+
+ * doc/tree-ssa.texi (SSA Operands): Remove reference to
+ SSA_OP_VMAYUSE.
+ Synchronize SSA_OP* definitions with source.
+ * ssa-iterators.h: Fix comment for FOR_EACH_IMM_USE_STMT.
+ Add not to SSA_OP* macro definitions.
+
2013-12-18 Jakub Jelinek <jakub@redhat.com>
PR target/59539
#define SSA_OP_USE 0x01 /* @r{Real USE operands.} */
#define SSA_OP_DEF 0x02 /* @r{Real DEF operands.} */
#define SSA_OP_VUSE 0x04 /* @r{VUSE operands.} */
-#define SSA_OP_VMAYUSE 0x08 /* @r{USE portion of VDEFS.} */
-#define SSA_OP_VDEF 0x10 /* @r{DEF portion of VDEFS.} */
+#define SSA_OP_VDEF 0x08 /* @r{VDEF operands.} */
/* @r{These are commonly grouped operand flags.} */
-#define SSA_OP_VIRTUAL_USES (SSA_OP_VUSE | SSA_OP_VMAYUSE)
-#define SSA_OP_VIRTUAL_DEFS (SSA_OP_VDEF)
-#define SSA_OP_ALL_USES (SSA_OP_VIRTUAL_USES | SSA_OP_USE)
-#define SSA_OP_ALL_DEFS (SSA_OP_VIRTUAL_DEFS | SSA_OP_DEF)
-#define SSA_OP_ALL_OPERANDS (SSA_OP_ALL_USES | SSA_OP_ALL_DEFS)
+#define SSA_OP_VIRTUAL_USES (SSA_OP_VUSE)
+#define SSA_OP_VIRTUAL_DEFS (SSA_OP_VDEF)
+#define SSA_OP_ALL_VIRTUALS (SSA_OP_VIRTUAL_USES | SSA_OP_VIRTUAL_DEFS)
+#define SSA_OP_ALL_USES (SSA_OP_VIRTUAL_USES | SSA_OP_USE)
+#define SSA_OP_ALL_DEFS (SSA_OP_VIRTUAL_DEFS | SSA_OP_DEF)
+#define SSA_OP_ALL_OPERANDS (SSA_OP_ALL_USES | SSA_OP_ALL_DEFS)
@end smallexample
@end enumerate
@code{VDEF}s are broken into two flags, one for the
@code{DEF} portion (@code{SSA_OP_VDEF}) and one for the USE portion
-(@code{SSA_OP_VMAYUSE}). If all you want to look at are the
-@code{VDEF}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{VDEF} in the statement. Note that you don't need any flags for
-this one.
+(@code{SSA_OP_VUSE}).
-@smallexample
- use_operand_p use_p;
- def_operand_p def_p;
- ssa_op_iter iter;
-
- FOR_EACH_SSA_MAYDEF_OPERAND (def_p, use_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}.
+There are many examples in the code, in addition to the documentation
+in @file{tree-ssa-operands.h} and @file{ssa-iterators.h}.
There are also a couple of variants on the stmt iterators regarding PHI
nodes.
get access to each occurrence of ssavar on the stmt returned by
that iterator.. for instance:
- FOR_EACH_IMM_USE_STMT (stmt, iter, var)
+ FOR_EACH_IMM_USE_STMT (stmt, iter, ssavar)
{
FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
{
gimple stmt;
};
+/* NOTE: Keep these in sync with doc/tree-ssa.texi. */
/* These flags are used to determine which operands are returned during
execution of the loop. */
#define SSA_OP_USE 0x01 /* Real USE operands. */
#define SSA_OP_DEF 0x02 /* Real DEF operands. */
#define SSA_OP_VUSE 0x04 /* VUSE operands. */
#define SSA_OP_VDEF 0x08 /* VDEF operands. */
-
/* These are commonly grouped operand flags. */
#define SSA_OP_VIRTUAL_USES (SSA_OP_VUSE)
#define SSA_OP_VIRTUAL_DEFS (SSA_OP_VDEF)