OSDN Git Service

* function.h (struct sequence_stack): Remove rtl_expr.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Mar 2000 03:43:58 +0000 (03:43 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Mar 2000 03:43:58 +0000 (03:43 +0000)
(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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32335 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/function.c

index ba0cfcf..e71a4c7 100644 (file)
@@ -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.
index 78c5ab8..df5d247 100644 (file)
@@ -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;
     }
 }