This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH]: Stop gc'allocing worklist in tree-ssa-pre.c


2004-09-18 Daniel Berlin <dberlin@dberlin.org>

	* tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
	generating useless garbage.

Index: tree-ssa-pre.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-pre.c,v
retrieving revision 2.37
diff -u -p -r2.37 tree-ssa-pre.c
--- tree-ssa-pre.c	19 Sep 2004 13:57:35 -0000	2.37
+++ tree-ssa-pre.c	19 Sep 2004 16:59:37 -0000
@@ -1098,6 +1101,8 @@ clean (value_set_t set)
     }
 }

+DEF_VEC_MALLOC_P (basic_block);
+
 /* Compute the ANTIC set for BLOCK.

 ANTIC_OUT[BLOCK] = intersection of ANTIC_IN[b] for all succ(BLOCK), if
@@ -1164,24 +1169,23 @@ compute_antic_aux (basic_block block)
      them.  */
   else
     {
-      varray_type worklist;
+      VEC (basic_block) * worklist;
       edge e;
       size_t i;
       basic_block bprime, first;

-      VARRAY_BB_INIT (worklist, 1, "succ");
+      worklist = VEC_alloc (basic_block, 2);
       e = block->succ;
       while (e)
 	{
-	  VARRAY_PUSH_BB (worklist, e->dest);
+	  VEC_safe_push (basic_block, worklist, e->dest);
 	  e = e->succ_next;
 	}
-      first = VARRAY_BB (worklist, 0);
+      first = VEC_index (basic_block, worklist, 0);
       set_copy (ANTIC_OUT, ANTIC_IN (first));

-      for (i = 1; i < VARRAY_ACTIVE_SIZE (worklist); i++)
+      for (i = 1; VEC_iterate (basic_block, worklist, i, bprime); i++)
 	{
-	  bprime = VARRAY_BB (worklist, i);
 	  node = ANTIC_OUT->head;
 	  while (node)
 	    {
@@ -1193,7 +1197,7 @@ compute_antic_aux (basic_block block)
 	      node = next;
 	    }
 	}
-      VARRAY_CLEAR (worklist);
+      VEC_free (basic_block, worklist);
     }

/* Generate ANTIC_OUT - TMP_GEN */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]