CLEANUP_P for a TRY_BLOCK.
* ir.texi: Document SAVE_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30218
138bc75d-0d04-0410-961f-
82ee72b054a4
+1999-10-27 Mark Mitchell <mark@codesourcery.com>
+
+ * dump.c (dequeue_and_dump): Dump HANDLERs and SAVE_EXPRs. Dump
+ CLEANUP_P for a TRY_BLOCK.
+ * ir.texi: Document SAVE_EXPR.
+
Tue Oct 26 23:29:56 1999 Jeffrey A Law (law@cygnus.com)
* call.c (build_over_call): Check that the built-in function is
dump_next_stmt (di, t);
break;
+ case HANDLER:
+ dump_stmt (di, t);
+ dump_child ("body", HANDLER_BODY (t));
+ dump_next_stmt (di, t);
+ break;
+
case IF_STMT:
dump_stmt (di, t);
dump_child ("cond", IF_COND (t));
case TRY_BLOCK:
dump_stmt (di, t);
+ if (CLEANUP_P (t))
+ dump_string (di, "cleanup");
dump_child ("body", TRY_STMTS (t));
dump_child ("hdlr", TRY_HANDLERS (t));
dump_next_stmt (di, t);
case INDIRECT_REF:
case THROW_EXPR:
case CLEANUP_POINT_EXPR:
+ case SAVE_EXPR:
/* These nodes are unary, but do not have code class `1'. */
dump_child ("op 0", TREE_OPERAND (t, 0));
break;
@item SAVE_EXPR
-FIXME: Describe.
+A @code{SAVE_EXPR} represents an expression (possibly involving
+side-effects) that is used more than once. The side-effects should
+occur only the first time the expression is evaluated. Subsequent uses
+should juse reuse the computed value. The first operand to the
+@code{SAVE_EXPR} is the expression to evaluate. The side-effects should
+be executed where the @code{SAVE_EXPR} is first encountered in a
+depth-first preorder traversal of the expression tree.
@item TARGET_EXPR
A @code{TARGET_EXPR} represents a temporary object. The first operand