From 67c155cb511cac5924bf843a667d9da60b42c481 Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 3 Jul 2004 00:15:50 +0000
Subject:         * c-decl.c (grokdeclarator): Don't frob current_function_decl
         around variable_size.         (set_decl_nonlocal): Remove.        
 (store_parm_decls): Add stmts for pending sizes.         * calls.c
 (calls_function, calls_function_1): Remove.         (precompute_arguments):
 Don't call it.         * cfgexpand.c (set_save_expr_context): Remove.        
 (tree_expand_cfg): Don't call it.         * dwarf2out.c (add_bound_info):
 Don't handle SAVE_EXPR.         (dwarf2out_finish): Likewise.         *
 expr.c (emit_block_move): Adjust addresses to BLKmode.        
 (store_constructor): Don't pre-evaluate SAVE_EXPR.         (safe_from_p):
 Don't queue SAVE_EXPRs.         (expand_expr_real_1 <case SAVE_EXPR>):
 Rewrite to expect,         or build plain VAR_DECLs.         * fold-const.c
 (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.         (fold): Likewise.
         (fold_checksum_tree): Don't special-case SAVE_EXPR.         *
 function.c (free_after_compilation): Don't clear x_save_expr_regs.        
 (put_var_into_stack): Don't handle SAVE_EXPR.         (gen_mem_addressof):
 Likewise.         * function.h (struct function): Remove x_save_expr_regs.   
      (save_expr_regs): Remove.         * gengtype.c (adjust_field_tree_exp):
 Don't special-case SAVE_EXPR.         * print-tree.c (print_node): Don't dump
 SAVE_EXPR_NOPLACEHOLDER.         * stor-layout.c (variable_size): Don't set
 it.         (force_type_save_exprs, force_type_save_exprs_1): Remove.        
 * tree-inline.c (remap_save_expr): Remove fn argument.  Update         all
 callers.  Don't set SAVE_EXPR_CONTEXT.         * tree-inline.h
 (remap_save_expr): Update decl.         * tree.c (save_expr): Update build
 size.         (first_rtl_op): Don't handle SAVE_EXPR.         (unsave_expr_1,
 contains_placeholder_p): Likewise.         (decl_function_context): Likewise.
         * tree.def (SAVE_EXPR): Remove args 1 and 2.         * tree.h
 (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.         (SAVE_EXPR_NOPLACEHOLDER,
 SAVE_EXPR_PERSISTENT_P): Remove. cp/         * tree.c (cp_unsave_r): Update
 remap_save_expr call. java/         * jcf-write.c (generate_bytecode_insns
 <case SAVE_EXPR>): Rewrite.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84036 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/tree.def | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

(limited to 'gcc/tree.def')

diff --git a/gcc/tree.def b/gcc/tree.def
index bf80871793a..bb49981a133 100644
--- a/gcc/tree.def
+++ b/gcc/tree.def
@@ -723,10 +723,9 @@ DEFTREECODE (NON_LVALUE_EXPR, "non_lvalue_expr", '1', 1)
 DEFTREECODE (VIEW_CONVERT_EXPR, "view_convert_expr", '1', 1)
 
 /* Represents something we computed once and will use multiple times.
-   First operand is that expression.  Second is the function decl
-   in which the SAVE_EXPR was created.  The third operand is the RTL,
-   nonzero only after the expression has been computed.  */
-DEFTREECODE (SAVE_EXPR, "save_expr", 'e', 3)
+   First operand is that expression.  After it is evaluated once, it
+   will be replaced by the temporary variable that holds the value.  */
+DEFTREECODE (SAVE_EXPR, "save_expr", 'e', 1)
 
 /* 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,
-- 
cgit v1.2.1

