diff options
author | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-05-17 20:13:01 +0000 |
---|---|---|
committer | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-05-17 20:13:01 +0000 |
commit | 0e676ec9ec5dbfc271f292230e054b8e5af88a11 (patch) | |
tree | 984e0626a1a5e2e8f7ff306f11134448208ba86c /gcc/tree.def | |
parent | 23b44fdadc6ae299eda159f023667a7602ce5a07 (diff) | |
download | gcc-0e676ec9ec5dbfc271f292230e054b8e5af88a11.tar.gz |
* expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
frontend to the backend where it belongs.
* tree.c (unsave_expr): Ditto.
(unsave_expr_now): Ditto.
* tree.def (UNSAVE_EXPR): Ditto.
* tree.h (unsave_expr): Ditto.
(unsave_expr_now): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12015 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.def')
-rw-r--r-- | gcc/tree.def | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/tree.def b/gcc/tree.def index 9de2ca01d99..61f06a94a68 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -646,6 +646,15 @@ DEFTREECODE (NON_LVALUE_EXPR, "non_lvalue_expr", "1", 1) nonzero only after the expression has been computed. */ DEFTREECODE (SAVE_EXPR, "save_expr", "e", 3) +/* For a UNSAVE_EXPR, operand 0 is the value to unsave. By unsave, we + mean that all _EXPRs such as TARGET_EXPRs, SAVE_EXPRs, + CALL_EXPRs and RTL_EXPRs, that are protected + from being evaluated more than once should be reset so that a new + expand_expr call of this expr will cause those to be re-evaluated. + This is useful when we want to reuse a tree in different places, + but where we must re-expand. */ +DEFTREECODE (UNSAVE_EXPR, "unsave_expr", "e", 1) + /* Represents something whose RTL has already been expanded as a sequence which should be emitted when this expression is expanded. The first operand is the RTL to emit. It is the first of a chain of insns. |