diff options
author | Mike Stump <mrs@gcc.gnu.org> | 1996-05-17 20:13:01 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 1996-05-17 20:13:01 +0000 |
commit | 679163cf4d5b714dde664c4124be0e0ececf86e0 (patch) | |
tree | 984e0626a1a5e2e8f7ff306f11134448208ba86c /gcc/tree.def | |
parent | 520e7ff5c74212d49b6b88b6808565300082691c (diff) | |
download | gcc-679163cf4d5b714dde664c4124be0e0ececf86e0.zip gcc-679163cf4d5b714dde664c4124be0e0ececf86e0.tar.gz gcc-679163cf4d5b714dde664c4124be0e0ececf86e0.tar.bz2 |
expr.c (expand_expr, [...]): Move from the C++ frontend to the backend where it belongs.
* 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.
From-SVN: r12015
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 9de2ca0..61f06a9 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. |