diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-03-05 20:43:44 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-03-05 20:43:44 +0000 |
commit | 9f93702662f417705f1fc306ffbd078fef8abe02 (patch) | |
tree | 7b9b1d01cf0d4c4508ab5b483e757d3c608c3305 /gcc/tree.h | |
parent | 591ccf92b35994b10f846ef630cd1a58d53a8f12 (diff) | |
download | gcc-9f93702662f417705f1fc306ffbd078fef8abe02.zip gcc-9f93702662f417705f1fc306ffbd078fef8abe02.tar.gz gcc-9f93702662f417705f1fc306ffbd078fef8abe02.tar.bz2 |
tree.def (RTL_EXPR): Update documentation.
* tree.def (RTL_EXPR): Update documentation.
* tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
* expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
* function.c (preserve_rtl_expr_temp): New function.
(preserve_rtl_expr_temps): Likewise.
(preserve_rtl_expr_result): Use it.
From-SVN: r32344
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -749,6 +749,10 @@ struct tree_vec /* In a RTL_EXPR node. */ #define RTL_EXPR_SEQUENCE(NODE) (*(struct rtx_def **) &EXPR_CHECK (NODE)->exp.operands[0]) #define RTL_EXPR_RTL(NODE) (*(struct rtx_def **) &EXPR_CHECK (NODE)->exp.operands[1]) +/* Nonzero if the RTL_EXPR does not define a scope, i.e., if + temporaries defined during its scope should persist even after the + RTL_EXPR has been expanded. */ +#define RTL_EXPR_HAS_NO_SCOPE(NODE) TREE_ASM_WRITTEN (NODE) /* In a CALL_EXPR node. */ #define CALL_EXPR_RTL(NODE) (*(struct rtx_def **) &EXPR_CHECK (NODE)->exp.operands[2]) |