Re: [PATCH 10/35] Change use to type-based pool allocator in cfg.c.

2015-05-29 Thread Martin Liška

On 05/27/2015 07:57 PM, Jeff Law wrote:

On 05/27/2015 07:56 AM, mliska wrote:

gcc/ChangeLog:

2015-04-30  Martin Liska  mli...@suse.cz

* cfg.c (initialize_original_copy_tables):Use new type-based pool allocator.
(free_original_copy_tables) Likewise.
(copy_original_table_clear) Likewise.
(copy_original_table_set) Likewise.

OK.
jeff



v2
From 6facfc84e89ec3a887e7db342493e7656fb29dc4 Mon Sep 17 00:00:00 2001
From: mliska mli...@suse.cz
Date: Wed, 27 May 2015 15:56:47 +0200
Subject: [PATCH 09/32] Change use to type-based pool allocator in cfg.c.

gcc/ChangeLog:

2015-04-30  Martin Liska  mli...@suse.cz

	* cfg.c (initialize_original_copy_tables):Use new type-based pool allocator.
	(free_original_copy_tables) Likewise.
	(copy_original_table_clear) Likewise.
	(copy_original_table_set) Likewise.
---
 gcc/cfg.c | 17 +++--
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/gcc/cfg.c b/gcc/cfg.c
index cdcc01c..ddfecdc 100644
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -1066,18 +1066,16 @@ static hash_tablebb_copy_hasher *bb_copy;
 
 /* And between loops and copies.  */
 static hash_tablebb_copy_hasher *loop_copy;
-static alloc_pool original_copy_bb_pool;
-
+static pool_allocatorhtab_bb_copy_original_entry *original_copy_bb_pool;
 
 /* Initialize the data structures to maintain mapping between blocks
and its copies.  */
 void
 initialize_original_copy_tables (void)
 {
-  gcc_assert (!original_copy_bb_pool);
-  original_copy_bb_pool
-= create_alloc_pool (original_copy,
-			 sizeof (struct htab_bb_copy_original_entry), 10);
+
+  original_copy_bb_pool = new pool_allocatorhtab_bb_copy_original_entry
+(original_copy, 10);
   bb_original = new hash_tablebb_copy_hasher (10);
   bb_copy = new hash_tablebb_copy_hasher (10);
   loop_copy = new hash_tablebb_copy_hasher (10);
@@ -1095,7 +1093,7 @@ free_original_copy_tables (void)
   bb_copy = NULL;
   delete loop_copy;
   loop_copy = NULL;
-  free_alloc_pool (original_copy_bb_pool);
+  delete original_copy_bb_pool;
   original_copy_bb_pool = NULL;
 }
 
@@ -1117,7 +1115,7 @@ copy_original_table_clear (hash_tablebb_copy_hasher *tab, unsigned obj)
 
   elt = *slot;
   tab-clear_slot (slot);
-  pool_free (original_copy_bb_pool, elt);
+  original_copy_bb_pool-remove (elt);
 }
 
 /* Sets the value associated with OBJ in table TAB to VAL.
@@ -1137,8 +1135,7 @@ copy_original_table_set (hash_tablebb_copy_hasher *tab,
   slot = tab-find_slot (key, INSERT);
   if (!*slot)
 {
-  *slot = (struct htab_bb_copy_original_entry *)
-		pool_alloc (original_copy_bb_pool);
+  *slot = original_copy_bb_pool-allocate ();
   (*slot)-index1 = obj;
 }
   (*slot)-index2 = val;
-- 
2.1.4



[PATCH 10/35] Change use to type-based pool allocator in cfg.c.

2015-05-27 Thread mliska
gcc/ChangeLog:

2015-04-30  Martin Liska  mli...@suse.cz

* cfg.c (initialize_original_copy_tables):Use new type-based pool 
allocator.
(free_original_copy_tables) Likewise.
(copy_original_table_clear) Likewise.
(copy_original_table_set) Likewise.
---
 gcc/cfg.c | 17 +++--
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/gcc/cfg.c b/gcc/cfg.c
index cdcc01c..ddfecdc 100644
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -1066,18 +1066,16 @@ static hash_tablebb_copy_hasher *bb_copy;
 
 /* And between loops and copies.  */
 static hash_tablebb_copy_hasher *loop_copy;
-static alloc_pool original_copy_bb_pool;
-
+static pool_allocatorhtab_bb_copy_original_entry *original_copy_bb_pool;
 
 /* Initialize the data structures to maintain mapping between blocks
and its copies.  */
 void
 initialize_original_copy_tables (void)
 {
-  gcc_assert (!original_copy_bb_pool);
-  original_copy_bb_pool
-= create_alloc_pool (original_copy,
-sizeof (struct htab_bb_copy_original_entry), 10);
+
+  original_copy_bb_pool = new pool_allocatorhtab_bb_copy_original_entry
+(original_copy, 10);
   bb_original = new hash_tablebb_copy_hasher (10);
   bb_copy = new hash_tablebb_copy_hasher (10);
   loop_copy = new hash_tablebb_copy_hasher (10);
@@ -1095,7 +1093,7 @@ free_original_copy_tables (void)
   bb_copy = NULL;
   delete loop_copy;
   loop_copy = NULL;
-  free_alloc_pool (original_copy_bb_pool);
+  delete original_copy_bb_pool;
   original_copy_bb_pool = NULL;
 }
 
@@ -1117,7 +1115,7 @@ copy_original_table_clear (hash_tablebb_copy_hasher 
*tab, unsigned obj)
 
   elt = *slot;
   tab-clear_slot (slot);
-  pool_free (original_copy_bb_pool, elt);
+  original_copy_bb_pool-remove (elt);
 }
 
 /* Sets the value associated with OBJ in table TAB to VAL.
@@ -1137,8 +1135,7 @@ copy_original_table_set (hash_tablebb_copy_hasher *tab,
   slot = tab-find_slot (key, INSERT);
   if (!*slot)
 {
-  *slot = (struct htab_bb_copy_original_entry *)
-   pool_alloc (original_copy_bb_pool);
+  *slot = original_copy_bb_pool-allocate ();
   (*slot)-index1 = obj;
 }
   (*slot)-index2 = val;
-- 
2.1.4




Re: [PATCH 10/35] Change use to type-based pool allocator in cfg.c.

2015-05-27 Thread Jeff Law

On 05/27/2015 07:56 AM, mliska wrote:

gcc/ChangeLog:

2015-04-30  Martin Liska  mli...@suse.cz

* cfg.c (initialize_original_copy_tables):Use new type-based pool 
allocator.
(free_original_copy_tables) Likewise.
(copy_original_table_clear) Likewise.
(copy_original_table_set) Likewise.

OK.
jeff