Change use to type-based pool allocator in
authorMartin Liska <mliska@suse.cz>
Mon, 1 Jun 2015 12:43:47 +0000 (14:43 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Mon, 1 Jun 2015 12:43:47 +0000 (12:43 +0000)
* sel-sched-ir.c (alloc_sched_pools): Use new type-based pool allocator.
(free_sched_pools): Likewise.
* sel-sched-ir.h (_list_alloc): Likewise.
(_list_remove): Likewise.

From-SVN: r223959

gcc/ChangeLog
gcc/sel-sched-ir.c
gcc/sel-sched-ir.h

index ad3c1057a9e61ca9892ea1b3fef7db0b069d8d50..42b567081debb77a28373a42cfac8d6c1f9de5ec 100644 (file)
@@ -1,3 +1,10 @@
+2015-06-01  Martin Liska  <mliska@suse.cz>
+
+       * sel-sched-ir.c (alloc_sched_pools): Use new type-based pool allocator.
+       (free_sched_pools): Likewise.
+       * sel-sched-ir.h (_list_alloc): Likewise.
+       (_list_remove): Likewise.
+
 2015-06-01  Martin Liska  <mliska@suse.cz>
 
        * stmt.c (add_case_node): Use new type-based pool allocator.
index 94f6c43a2845b7004f150aefe14cbf789b2188c5..ffaba56de00296338f0555e62bdc66928547909a 100644 (file)
@@ -70,7 +70,7 @@ vec<sel_region_bb_info_def>
     sel_region_bb_info = vNULL;
 
 /* A pool for allocating all lists.  */
-alloc_pool sched_lists_pool;
+pool_allocator<_list_node> sched_lists_pool ("sel-sched-lists", 500);
 
 /* This contains information about successors for compute_av_set.  */
 struct succs_info current_succs;
@@ -5030,9 +5030,6 @@ alloc_sched_pools (void)
   succs_info_pool.size = succs_size;
   succs_info_pool.top = -1;
   succs_info_pool.max_top = -1;
-
-  sched_lists_pool = create_alloc_pool ("sel-sched-lists",
-                                        sizeof (struct _list_node), 500);
 }
 
 /* Free the pools.  */
@@ -5041,7 +5038,7 @@ free_sched_pools (void)
 {
   int i;
 
-  free_alloc_pool (sched_lists_pool);
+  sched_lists_pool.release ();
   gcc_assert (succs_info_pool.top == -1);
   for (i = 0; i <= succs_info_pool.max_top; i++)
     {
index 91ce92feec98c08740bf9201bf28805e5cbc2bee..3707a87c216d87b7ae7cc1c150465d73f10f34c0 100644 (file)
@@ -364,12 +364,12 @@ struct _list_node
 /* _list_t functions.
    All of _*list_* functions are used through accessor macros, thus
    we can't move them in sel-sched-ir.c.  */
-extern alloc_pool sched_lists_pool;
+extern pool_allocator<_list_node> sched_lists_pool;
 
 static inline _list_t
 _list_alloc (void)
 {
-  return (_list_t) pool_alloc (sched_lists_pool);
+  return sched_lists_pool.allocate ();
 }
 
 static inline void
@@ -395,7 +395,7 @@ _list_remove (_list_t *lp)
   _list_t n = *lp;
 
   *lp = _LIST_NEXT (n);
-  pool_free (sched_lists_pool, n);
+  sched_lists_pool.remove (n);
 }
 
 static inline void