diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-03-05 03:43:58 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-03-05 03:43:58 +0000 |
commit | 7470e8d74c3e7d4d224bdff66160ac699f9c7170 (patch) | |
tree | e5ed0aeba5899af42d9621c370b020e31cd31a40 /gcc/function.c | |
parent | 40546a785b540f03926d6b9cee85803f7293b517 (diff) | |
download | gcc-7470e8d74c3e7d4d224bdff66160ac699f9c7170.zip gcc-7470e8d74c3e7d4d224bdff66160ac699f9c7170.tar.gz gcc-7470e8d74c3e7d4d224bdff66160ac699f9c7170.tar.bz2 |
function.h (struct sequence_stack): Remove rtl_expr.
* function.h (struct sequence_stack): Remove rtl_expr.
(struct emit_staus): Likewise.
(seq_rtl_expr): Remove.
* tree.h (free_temps_for_rtl_expr): Don't declare.
(start_sequence_for_rtl_expr): Likewise.
* rtl.h (preserve_rtl_expr_result): Likewise.
* emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
(start_sequence_for_rtl_expr): Remove.
(push_topmost_sequence): Don't save sequence_rtl_expr.
(pop_topmost_sequence): Remove comment about not restoring it.
(end_sequence): Don't set seq_rtl_expr.
(init_emit): Don't initialize it.
(mark_sequence_stack): Don't mark it.
(mark_emit_status): Likewise.
* except.c (protect_with_terminate): Use
start_sequence_for_rtl_expr, not start_sequence.
* expr.c (expand_expr, case RTL_EXPR): Don't call
preserve_rtl_expr_result or free_temps_for_rtl_expr.
* function.c (assign_stack_temp_for_type): Don't set rtl_expr.
(preserve_rtl_expr_result): Remove.
(free_temps_for_rtl_expr): Likewise.
(pop_temp_slots): Likewise.
(mark_temp_slot): Don't mark the rtl_expr.
* stmt.c (expand_start_stmt_expr): Use start_sequence, not
start_sequence_for_rtl_expr.
From-SVN: r32335
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 52 |
1 files changed, 2 insertions, 50 deletions
diff --git a/gcc/function.c b/gcc/function.c index 78c5ab8..df5d247 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -708,7 +708,6 @@ assign_stack_temp_for_type (mode, size, keep, type) rounded_size)); p->align = best_p->align; p->address = 0; - p->rtl_expr = 0; p->next = temp_slots; temp_slots = p; @@ -776,7 +775,6 @@ assign_stack_temp_for_type (mode, size, keep, type) p->in_use = 1; p->addr_taken = 0; - p->rtl_expr = seq_rtl_expr; if (keep == 2) { @@ -1129,34 +1127,6 @@ preserve_temp_slots (x) p->level--; } -/* X is the result of an RTL_EXPR. If it is a temporary slot associated - with that RTL_EXPR, promote it into a temporary slot at the present - level so it will not be freed when we free slots made in the - RTL_EXPR. */ - -void -preserve_rtl_expr_result (x) - rtx x; -{ - struct temp_slot *p; - - /* If X is not in memory or is at a constant address, it cannot be in - a temporary slot. */ - if (x == 0 || GET_CODE (x) != MEM || CONSTANT_P (XEXP (x, 0))) - return; - - /* If we can find a match, move it to our level unless it is already at - an upper level. */ - p = find_temp_slot_from_address (XEXP (x, 0)); - if (p != 0) - { - p->level = MIN (p->level, temp_slot_level); - p->rtl_expr = 0; - } - - return; -} - /* Free all temporaries used so far. This is normally called at the end of generating code for a statement. Don't free any temporaries currently in use for an RTL_EXPR that hasn't yet been emitted. @@ -1170,23 +1140,7 @@ free_temp_slots () struct temp_slot *p; for (p = temp_slots; p; p = p->next) - if (p->in_use && p->level == temp_slot_level && ! p->keep - && p->rtl_expr == 0) - p->in_use = 0; - - combine_temp_slots (); -} - -/* Free all temporary slots used in T, an RTL_EXPR node. */ - -void -free_temps_for_rtl_expr (t) - tree t; -{ - struct temp_slot *p; - - for (p = temp_slots; p; p = p->next) - if (p->rtl_expr == t) + if (p->in_use && p->level == temp_slot_level && ! p->keep) p->in_use = 0; combine_temp_slots (); @@ -1264,7 +1218,7 @@ pop_temp_slots () struct temp_slot *p; for (p = temp_slots; p; p = p->next) - if (p->in_use && p->level == temp_slot_level && p->rtl_expr == 0) + if (p->in_use && p->level == temp_slot_level) p->in_use = 0; combine_temp_slots (); @@ -6980,8 +6934,6 @@ mark_temp_slot (t) { ggc_mark_rtx (t->slot); ggc_mark_rtx (t->address); - ggc_mark_tree (t->rtl_expr); - t = t->next; } } |