Commit 33e7d32e by Martin Liska Committed by Martin Liska

Change use to type-based pool allocator in

	* tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
	(free_strinfo): Likewise.
	(pass_strlen::execute): Likewise.

From-SVN: r223966
parent af6a6eec
2015-06-01 Martin Liska <mliska@suse.cz> 2015-06-01 Martin Liska <mliska@suse.cz>
* tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
(free_strinfo): Likewise.
(pass_strlen::execute): Likewise.
2015-06-01 Martin Liska <mliska@suse.cz>
* tree-ssa-sccvn.c (vn_reference_insert): Use new type-based pool allocator. * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based pool allocator.
(vn_reference_insert_pieces): Likewise. (vn_reference_insert_pieces): Likewise.
(vn_phi_insert): Likewise. (vn_phi_insert): Likewise.
......
...@@ -142,7 +142,7 @@ typedef struct strinfo_struct ...@@ -142,7 +142,7 @@ typedef struct strinfo_struct
} *strinfo; } *strinfo;
/* Pool for allocating strinfo_struct entries. */ /* Pool for allocating strinfo_struct entries. */
static alloc_pool strinfo_pool; static pool_allocator<strinfo_struct> strinfo_pool ("strinfo_struct pool", 64);
/* Vector mapping positive string indexes to strinfo, for the /* Vector mapping positive string indexes to strinfo, for the
current basic block. The first pointer in the vector is special, current basic block. The first pointer in the vector is special,
...@@ -431,7 +431,7 @@ new_addr_stridx (tree exp) ...@@ -431,7 +431,7 @@ new_addr_stridx (tree exp)
static strinfo static strinfo
new_strinfo (tree ptr, int idx, tree length) new_strinfo (tree ptr, int idx, tree length)
{ {
strinfo si = (strinfo) pool_alloc (strinfo_pool); strinfo si = strinfo_pool.allocate ();
si->length = length; si->length = length;
si->ptr = ptr; si->ptr = ptr;
si->stmt = NULL; si->stmt = NULL;
...@@ -452,7 +452,7 @@ static inline void ...@@ -452,7 +452,7 @@ static inline void
free_strinfo (strinfo si) free_strinfo (strinfo si)
{ {
if (si && --si->refcount == 0) if (si && --si->refcount == 0)
pool_free (strinfo_pool, si); strinfo_pool.remove (si);
} }
/* Set strinfo in the vector entry IDX to SI. */ /* Set strinfo in the vector entry IDX to SI. */
...@@ -2400,8 +2400,6 @@ pass_strlen::execute (function *fun) ...@@ -2400,8 +2400,6 @@ pass_strlen::execute (function *fun)
{ {
ssa_ver_to_stridx.safe_grow_cleared (num_ssa_names); ssa_ver_to_stridx.safe_grow_cleared (num_ssa_names);
max_stridx = 1; max_stridx = 1;
strinfo_pool = create_alloc_pool ("strinfo_struct pool",
sizeof (struct strinfo_struct), 64);
calculate_dominance_info (CDI_DOMINATORS); calculate_dominance_info (CDI_DOMINATORS);
...@@ -2410,7 +2408,7 @@ pass_strlen::execute (function *fun) ...@@ -2410,7 +2408,7 @@ pass_strlen::execute (function *fun)
strlen_dom_walker (CDI_DOMINATORS).walk (fun->cfg->x_entry_block_ptr); strlen_dom_walker (CDI_DOMINATORS).walk (fun->cfg->x_entry_block_ptr);
ssa_ver_to_stridx.release (); ssa_ver_to_stridx.release ();
free_alloc_pool (strinfo_pool); strinfo_pool.release ();
if (decl_to_stridxlist_htab) if (decl_to_stridxlist_htab)
{ {
obstack_free (&stridx_obstack, NULL); obstack_free (&stridx_obstack, NULL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment