diff options
author | Richard Henderson <rth@redhat.com> | 2004-07-01 18:15:43 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-07-01 18:15:43 -0700 |
commit | 4dfa034295629327f8b823cb1c6dfa1585ac86ee (patch) | |
tree | d7b1ab265a5bd2738e55776227182ff82a96a751 /gcc/tree.c | |
parent | f6fe65dc61754f3dc25a8757a1955b61e6374f51 (diff) | |
download | gcc-4dfa034295629327f8b823cb1c6dfa1585ac86ee.zip gcc-4dfa034295629327f8b823cb1c6dfa1585ac86ee.tar.gz gcc-4dfa034295629327f8b823cb1c6dfa1585ac86ee.tar.bz2 |
tree.def (RTL_EXPR): Remove.
* tree.def (RTL_EXPR): Remove.
* c-typeck.c (lvalue_p): Don't handle it.
* expr.c (safe_from_p): Likewise.
(expand_expr_real_1): Likewise.
* fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
(fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
* gengtype.c (adjust_field_tree_exp): Likewise.
* stmt.c (warn_if_unused_value): Likewise.
* tree-gimple.c (recalculate_side_effects): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
(unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
* tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
* stmt.c (struct stmt_status): Remove x_last_expr_type,
x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
(last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
(expand_expr_stmt): Merge with expand_expr_stmt_value. Remove
all the bits that tracked last_expr.
(expand_end_bindings): Don't track last_expr.
(expand_start_stmt_expr, expand_end_stmt_expr): Remove.
(clear_last_expr): Remove.
(expand_asm): Don't call it.
(expand_asm_operands, expand_end_cond): Likewise.
(expand_naked_return, expand_null_return_1): Likewise.
* c-typeck.c (c_begin_compound_stmt): Likewise.
* cfgexpand.c (expand_block): Use expand_expr_stmt.
* expr.c (expand_expr_real_1): Likewise.
* tree.h: Update prototypes.
* function.h (struct sequence_stack): Remove sequence_rtl_expr.
(struct emit_status): Remove sequence_rtl_expr.
(struct function): Remove x_rtl_expr_chain.
(seq_rtl_expr, rtl_expr_chain): Remove.
* function.c (struct temp_slot): Remove rtl_expr.
(assign_stack_temp_for_type): Don't set it.
(free_temp_slots, pop_temp_slots): Don't check it.
(free_after_compilation): Don't clear x_rtl_expr_chain.
(fixup_var_refs): Don't search it.
(preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
* emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
or seq_rtl_expr.
(push_topmost_sequence): Likewise.
(end_sequence, init_emit): Likewise.
(start_sequence_for_rtl_expr): Remove.
* expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
* rtl.h (preserve_rtl_expr_result): Remove.
ada/
* trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
* utils.c (max_size): Likewise.
cp/
* class.c (fixed_type_or_null): Don't handle RTL_EXPR.
* method.c (synthesize_method): Don't clear_last_expr.
* name-lookup.c (maybe_push_cleanup_level): Likewise.
From-SVN: r84009
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 22 |
1 files changed, 1 insertions, 21 deletions
@@ -334,7 +334,6 @@ make_node_stat (enum tree_code code MEM_STAT_DECL) case INIT_EXPR: case MODIFY_EXPR: case VA_ARG_EXPR: - case RTL_EXPR: case PREDECREMENT_EXPR: case PREINCREMENT_EXPR: case POSTDECREMENT_EXPR: @@ -1455,7 +1454,6 @@ first_rtl_op (enum tree_code code) case SAVE_EXPR: return 2; case GOTO_SUBROUTINE_EXPR: - case RTL_EXPR: return 0; case WITH_CLEANUP_EXPR: return 2; @@ -1530,12 +1528,6 @@ unsave_expr_1 (tree expr) TREE_OPERAND (expr, 3) = NULL_TREE; break; - case RTL_EXPR: - /* I don't yet know how to emit a sequence multiple times. */ - if (RTL_EXPR_SEQUENCE (expr) != 0) - abort (); - break; - default: break; } @@ -1552,10 +1544,7 @@ unsave_expr_1 (tree expr) SAVE_EXPRs basically *only* appear replicated in an expression tree, occasionally across the whole of a function. It is therefore only safe to unsave a SAVE_EXPR if you know that all occurrences appear - below the UNSAVE_EXPR. - - RTL_EXPRs consume their rtl during evaluation. It is therefore - never possible to unsave them. */ + below the UNSAVE_EXPR. */ int unsafe_for_reeval (tree expr) @@ -1575,7 +1564,6 @@ unsafe_for_reeval (tree expr) switch (code) { case SAVE_EXPR: - case RTL_EXPR: return 2; /* A label can only be emitted once. */ @@ -2194,13 +2182,6 @@ stabilize_reference (tree ref) volatiles. */ return stabilize_reference_1 (ref); - case RTL_EXPR: - result = build1 (INDIRECT_REF, TREE_TYPE (ref), - save_expr (build1 (ADDR_EXPR, - build_pointer_type (TREE_TYPE (ref)), - ref))); - break; - /* If arg isn't a kind of lvalue we recognize, make no change. Caller should recognize the error for an invalid lvalue. */ default: @@ -2459,7 +2440,6 @@ build1_stat (enum tree_code code, tree type, tree node MEM_STAT_DECL) case INIT_EXPR: case MODIFY_EXPR: case VA_ARG_EXPR: - case RTL_EXPR: case PREDECREMENT_EXPR: case PREINCREMENT_EXPR: case POSTDECREMENT_EXPR: |