Commit ea497bb8 by Kazu Hirata Committed by Kazu Hirata

domwalk.c (walk_dominator_tree, [...]): Use VEC instead of VARRAY.

	* domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
	fini_walk_dominator_tree): Use VEC instead of VARRAY.
	* domwalk.h (dom_walk_data): Change the type of
	block_data_stack and free_block_data to VEC(void_p,heap)*.
	* tree-ssa-dse.c (dse_initialize_block_local_data,
	dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
	VEC instead of VARRAY.

From-SVN: r100281
parent 4aab792d
...@@ -29,6 +29,14 @@ ...@@ -29,6 +29,14 @@
* tree.h: Move the prototype of threaded_through_blocks to * tree.h: Move the prototype of threaded_through_blocks to
tree-flow.h. tree-flow.h.
* domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
fini_walk_dominator_tree): Use VEC instead of VARRAY.
* domwalk.h (dom_walk_data): Change the type of
block_data_stack and free_block_data to VEC(void_p,heap)*.
* tree-ssa-dse.c (dse_initialize_block_local_data,
dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
VEC instead of VARRAY.
2005-05-27 Jan Hubicka <jh@suse.cz> 2005-05-27 Jan Hubicka <jh@suse.cz>
* cgraph.c: Include tree-gimple.h * cgraph.c: Include tree-gimple.h
......
...@@ -161,10 +161,9 @@ walk_dominator_tree (struct dom_walk_data *walk_data, basic_block bb) ...@@ -161,10 +161,9 @@ walk_dominator_tree (struct dom_walk_data *walk_data, basic_block bb)
/* First get some local data, reusing any local data pointer we may /* First get some local data, reusing any local data pointer we may
have saved. */ have saved. */
if (VARRAY_ACTIVE_SIZE (walk_data->free_block_data) > 0) if (VEC_length (void_p, walk_data->free_block_data) > 0)
{ {
bd = VARRAY_TOP_GENERIC_PTR (walk_data->free_block_data); bd = VEC_pop (void_p, walk_data->free_block_data);
VARRAY_POP (walk_data->free_block_data);
recycled = 1; recycled = 1;
} }
else else
...@@ -174,7 +173,7 @@ walk_dominator_tree (struct dom_walk_data *walk_data, basic_block bb) ...@@ -174,7 +173,7 @@ walk_dominator_tree (struct dom_walk_data *walk_data, basic_block bb)
} }
/* Push the local data into the local data stack. */ /* Push the local data into the local data stack. */
VARRAY_PUSH_GENERIC_PTR (walk_data->block_data_stack, bd); VEC_safe_push (void_p, heap, walk_data->block_data_stack, bd);
/* Call the initializer. */ /* Call the initializer. */
walk_data->initialize_block_local_data (walk_data, bb, recycled); walk_data->initialize_block_local_data (walk_data, bb, recycled);
...@@ -237,26 +236,18 @@ walk_dominator_tree (struct dom_walk_data *walk_data, basic_block bb) ...@@ -237,26 +236,18 @@ walk_dominator_tree (struct dom_walk_data *walk_data, basic_block bb)
if (walk_data->initialize_block_local_data) if (walk_data->initialize_block_local_data)
{ {
/* And save the block data so that we can re-use it. */ /* And save the block data so that we can re-use it. */
VARRAY_PUSH_GENERIC_PTR (walk_data->free_block_data, bd); VEC_safe_push (void_p, heap, walk_data->free_block_data, bd);
/* And finally pop the record off the block local data stack. */ /* And finally pop the record off the block local data stack. */
VARRAY_POP (walk_data->block_data_stack); VEC_pop (void_p, walk_data->block_data_stack);
} }
} }
void void
init_walk_dominator_tree (struct dom_walk_data *walk_data) init_walk_dominator_tree (struct dom_walk_data *walk_data)
{ {
if (walk_data->initialize_block_local_data) walk_data->free_block_data = NULL;
{ walk_data->block_data_stack = NULL;
VARRAY_GENERIC_PTR_INIT (walk_data->free_block_data, 2, "freelist ");
VARRAY_GENERIC_PTR_INIT (walk_data->block_data_stack, 2, "block_data");
}
else
{
walk_data->free_block_data = NULL;
walk_data->block_data_stack = NULL;
}
} }
void void
...@@ -264,10 +255,10 @@ fini_walk_dominator_tree (struct dom_walk_data *walk_data) ...@@ -264,10 +255,10 @@ fini_walk_dominator_tree (struct dom_walk_data *walk_data)
{ {
if (walk_data->initialize_block_local_data) if (walk_data->initialize_block_local_data)
{ {
while (VARRAY_ACTIVE_SIZE (walk_data->free_block_data) > 0) while (VEC_length (void_p, walk_data->free_block_data) > 0)
{ free (VEC_pop (void_p, walk_data->free_block_data));
free (VARRAY_TOP_GENERIC_PTR (walk_data->free_block_data));
VARRAY_POP (walk_data->free_block_data);
}
} }
VEC_free (void_p, heap, walk_data->free_block_data);
VEC_free (void_p, heap, walk_data->block_data_stack);
} }
...@@ -19,6 +19,10 @@ along with GCC; see the file COPYING. If not, write to ...@@ -19,6 +19,10 @@ along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330, the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
typedef void *void_p;
DEF_VEC_P(void_p);
DEF_VEC_ALLOC_P(void_p,heap);
/* This is the main data structure for the dominator walker. It provides /* This is the main data structure for the dominator walker. It provides
the callback hooks as well as a convenient place to hang block local the callback hooks as well as a convenient place to hang block local
data and pass-global data. */ data and pass-global data. */
...@@ -94,7 +98,7 @@ struct dom_walk_data ...@@ -94,7 +98,7 @@ struct dom_walk_data
/* Stack of any data we need to keep on a per-block basis. /* Stack of any data we need to keep on a per-block basis.
If you have no local data, then BLOCK_DATA_STACK will be NULL. */ If you have no local data, then BLOCK_DATA_STACK will be NULL. */
varray_type block_data_stack; VEC(void_p,heap) *block_data_stack;
/* Size of the block local data. If this is zero, then it is assumed /* Size of the block local data. If this is zero, then it is assumed
you have no local data and thus no BLOCK_DATA_STACK as well. */ you have no local data and thus no BLOCK_DATA_STACK as well. */
...@@ -104,7 +108,7 @@ struct dom_walk_data ...@@ -104,7 +108,7 @@ struct dom_walk_data
information/data outside domwalk.c. */ information/data outside domwalk.c. */
/* Stack of available block local structures. */ /* Stack of available block local structures. */
varray_type free_block_data; VEC(void_p,heap) *free_block_data;
/* Interesting blocks to process. If this field is not NULL, this /* Interesting blocks to process. If this field is not NULL, this
set is used to determine which blocks to walk. If we encounter set is used to determine which blocks to walk. If we encounter
......
...@@ -135,7 +135,7 @@ dse_initialize_block_local_data (struct dom_walk_data *walk_data, ...@@ -135,7 +135,7 @@ dse_initialize_block_local_data (struct dom_walk_data *walk_data,
bool recycled) bool recycled)
{ {
struct dse_block_local_data *bd struct dse_block_local_data *bd
= VARRAY_TOP_GENERIC_PTR (walk_data->block_data_stack); = VEC_last (void_p, walk_data->block_data_stack);
/* If we are given a recycled block local data structure, ensure any /* If we are given a recycled block local data structure, ensure any
bitmap associated with the block is cleared. */ bitmap associated with the block is cleared. */
...@@ -163,7 +163,7 @@ dse_optimize_stmt (struct dom_walk_data *walk_data, ...@@ -163,7 +163,7 @@ dse_optimize_stmt (struct dom_walk_data *walk_data,
block_stmt_iterator bsi) block_stmt_iterator bsi)
{ {
struct dse_block_local_data *bd struct dse_block_local_data *bd
= VARRAY_TOP_GENERIC_PTR (walk_data->block_data_stack); = VEC_last (void_p, walk_data->block_data_stack);
struct dse_global_data *dse_gd = walk_data->global_data; struct dse_global_data *dse_gd = walk_data->global_data;
tree stmt = bsi_stmt (bsi); tree stmt = bsi_stmt (bsi);
stmt_ann_t ann = stmt_ann (stmt); stmt_ann_t ann = stmt_ann (stmt);
...@@ -298,7 +298,7 @@ static void ...@@ -298,7 +298,7 @@ static void
dse_record_phis (struct dom_walk_data *walk_data, basic_block bb) dse_record_phis (struct dom_walk_data *walk_data, basic_block bb)
{ {
struct dse_block_local_data *bd struct dse_block_local_data *bd
= VARRAY_TOP_GENERIC_PTR (walk_data->block_data_stack); = VEC_last (void_p, walk_data->block_data_stack);
struct dse_global_data *dse_gd = walk_data->global_data; struct dse_global_data *dse_gd = walk_data->global_data;
tree phi; tree phi;
...@@ -314,7 +314,7 @@ dse_finalize_block (struct dom_walk_data *walk_data, ...@@ -314,7 +314,7 @@ dse_finalize_block (struct dom_walk_data *walk_data,
basic_block bb ATTRIBUTE_UNUSED) basic_block bb ATTRIBUTE_UNUSED)
{ {
struct dse_block_local_data *bd struct dse_block_local_data *bd
= VARRAY_TOP_GENERIC_PTR (walk_data->block_data_stack); = VEC_last (void_p, walk_data->block_data_stack);
struct dse_global_data *dse_gd = walk_data->global_data; struct dse_global_data *dse_gd = walk_data->global_data;
bitmap stores = dse_gd->stores; bitmap stores = dse_gd->stores;
unsigned int i; unsigned int i;
......
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