tree-ssa-pre.c (grand_bitmap_obstack): New.
authorJan Hubicka <jh@suse.cz>
Tue, 7 Sep 2004 20:51:25 +0000 (22:51 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 7 Sep 2004 20:51:25 +0000 (20:51 +0000)
* tree-ssa-pre.c (grand_bitmap_obstack): New.
(value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
(init_pre): Initialize obstack.
(fini_pre): Free obstack.

From-SVN: r87155

gcc/ChangeLog
gcc/tree-ssa-pre.c

index 476069b3d4f5171d2aabc2ba9d6bf99e7013b6d9..d00cc21e1048f3e9593e1f4826298a3d9d4376b4 100644 (file)
@@ -1,3 +1,10 @@
+2004-09-07  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-pre.c (grand_bitmap_obstack): New.
+       (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
+       (init_pre): Initialize obstack.
+       (fini_pre): Free obstack.
+
 2004-09-07  David Daney  <ddaney@avtrex.com>
 
        * config.gcc: Added support for --with-divide=[breaks|traps] for
index 870a03007575c7520a009b59f4e400ab17f0efcf..ec12f62c008879a010182f7edb1e75a0a3251d9d 100644 (file)
@@ -306,6 +306,7 @@ static alloc_pool value_set_node_pool;
 static alloc_pool binary_node_pool;
 static alloc_pool unary_node_pool;
 static alloc_pool reference_node_pool;
+static struct obstack grand_bitmap_obstack;
 
 /* Set of blocks with statements that have had its EH information
    cleaned up.  */
@@ -468,7 +469,7 @@ value_insert_into_set_bitmap (value_set_t set, tree v)
 
   if (set->values == NULL)
     {
-      set->values = BITMAP_GGC_ALLOC ();
+      set->values = BITMAP_OBSTACK_ALLOC (&grand_bitmap_obstack);
       bitmap_clear (set->values);
     }
 
@@ -482,8 +483,8 @@ static bitmap_set_t
 bitmap_set_new (void)
 {
   bitmap_set_t ret = pool_alloc (bitmap_set_pool);
-  ret->expressions = BITMAP_GGC_ALLOC ();
-  ret->values = BITMAP_GGC_ALLOC ();
+  ret->expressions = BITMAP_OBSTACK_ALLOC (&grand_bitmap_obstack);
+  ret->values = BITMAP_OBSTACK_ALLOC (&grand_bitmap_obstack);
   bitmap_clear (ret->expressions);
   bitmap_clear (ret->values);
   return ret;
@@ -1944,6 +1945,7 @@ init_pre (void)
   FOR_ALL_BB (bb)
     bb->aux = xcalloc (1, sizeof (struct bb_value_sets));
 
+  gcc_obstack_init (&grand_bitmap_obstack);
   phi_translate_table = htab_create (511, expr_pred_trans_hash,
                                     expr_pred_trans_eq, free);
   value_set_pool = create_alloc_pool ("Value sets",
@@ -1980,6 +1982,7 @@ fini_pre (void)
 {
   basic_block bb;
 
+  obstack_free (&grand_bitmap_obstack, NULL);
   free_alloc_pool (value_set_pool);
   free_alloc_pool (bitmap_set_pool);
   free_alloc_pool (value_set_node_pool);