aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2015-06-01 14:43:47 +0200
committerMartin Liska <marxin@gcc.gnu.org>2015-06-01 12:43:47 +0000
commit8bb6373a9467e08c9023d22ada5f76d6911a78b8 (patch)
treefd9185fa35ea5f4a73d5b9a619abba6cc642136f
parent5f8446975976236285093df11f5c6318b3cea58c (diff)
downloadgcc-8bb6373a9467e08c9023d22ada5f76d6911a78b8.zip
gcc-8bb6373a9467e08c9023d22ada5f76d6911a78b8.tar.gz
gcc-8bb6373a9467e08c9023d22ada5f76d6911a78b8.tar.bz2
Change use to type-based pool allocator in
* 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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/sel-sched-ir.c7
-rw-r--r--gcc/sel-sched-ir.h6
3 files changed, 12 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad3c105..42b5670 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
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.
(expand_case): Likewise.
(expand_sjlj_dispatch_table): Likewise.
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
index 94f6c43..ffaba56 100644
--- a/gcc/sel-sched-ir.c
+++ b/gcc/sel-sched-ir.c
@@ -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++)
{
diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h
index 91ce92f..3707a87 100644
--- a/gcc/sel-sched-ir.h
+++ b/gcc/sel-sched-ir.h
@@ -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