From 7470e8d74c3e7d4d224bdff66160ac699f9c7170 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Sun, 5 Mar 2000 03:43:58 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 2 +- gcc/function.c | 52 ++------------------------------------------------ 2 files changed, 3 insertions(+), 51 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ba0cfcff032..e71a4c7fd3f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -23,7 +23,7 @@ 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. - (assign_stack_temp_for_type): Don't set 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. diff --git a/gcc/function.c b/gcc/function.c index 78c5ab85ef1..df5d2477a4f 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; } } -- 2.30.2