Commit 603802e7 by Daniel Berlin Committed by Daniel Berlin

Makefile.in (tree-ssa-alias.o): Add alloc-pool.h

2007-07-28  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (tree-ssa-alias.o): Add alloc-pool.h

	* tree-ssa-alias.c: Add alloc-pool.h.
	(init_alias_info): Free alias_bitmap_obstack.
	(delete_alias_info): Call delete_mem_ref_stats.
	(get_mem_sym_stats_for): Use alloc_pool.
	(init_mem_ref_stats): Do not delete mem_ref_stats here.
	(delete_mem_sym_stats): Removed.

From-SVN: r127050
parent d8163f5c
2007-07-28 Daniel Berlin <dberlin@dberlin.org>
* Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
* tree-ssa-alias.c: Add alloc-pool.h.
(init_alias_info): Free alias_bitmap_obstack.
(delete_alias_info): Call delete_mem_ref_stats.
(get_mem_sym_stats_for): Use alloc_pool.
(init_mem_ref_stats): Do not delete mem_ref_stats here.
(delete_mem_sym_stats): Removed.
2007-07-29 Sebastian Pop <sebpop@gmail.com> 2007-07-29 Sebastian Pop <sebpop@gmail.com>
* tree-data-ref.c (add_multivariate_self_dist): Parametric access * tree-data-ref.c (add_multivariate_self_dist): Parametric access
......
...@@ -2172,7 +2172,7 @@ tree-ssa-alias.o : tree-ssa-alias.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \ ...@@ -2172,7 +2172,7 @@ tree-ssa-alias.o : tree-ssa-alias.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
$(FUNCTION_H) $(TIMEVAR_H) convert.h $(TM_H) coretypes.h langhooks.h \ $(FUNCTION_H) $(TIMEVAR_H) convert.h $(TM_H) coretypes.h langhooks.h \
$(TREE_DUMP_H) tree-pass.h $(PARAMS_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) \ $(TREE_DUMP_H) tree-pass.h $(PARAMS_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) \
hard-reg-set.h $(TREE_GIMPLE_H) vec.h tree-ssa-structalias.h \ hard-reg-set.h $(TREE_GIMPLE_H) vec.h tree-ssa-structalias.h \
$(IPA_TYPE_ESCAPE_H) vecprim.h pointer-set.h $(IPA_TYPE_ESCAPE_H) vecprim.h pointer-set.h alloc-pool.h
tree-ssa-reassoc.o : tree-ssa-reassoc.c $(TREE_FLOW_H) $(CONFIG_H) \ tree-ssa-reassoc.o : tree-ssa-reassoc.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) errors.h $(TIMEVAR_H) \ $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) errors.h $(TIMEVAR_H) \
$(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) tree-iterator.h\ $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) tree-iterator.h\
......
...@@ -47,6 +47,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -47,6 +47,7 @@ along with GCC; see the file COPYING3. If not see
#include "bitmap.h" #include "bitmap.h"
#include "vecprim.h" #include "vecprim.h"
#include "pointer-set.h" #include "pointer-set.h"
#include "alloc-pool.h"
/* Broad overview of how aliasing works: /* Broad overview of how aliasing works:
...@@ -212,7 +213,7 @@ static void set_pt_anything (tree); ...@@ -212,7 +213,7 @@ static void set_pt_anything (tree);
void debug_mp_info (VEC(mem_sym_stats_t,heap) *); void debug_mp_info (VEC(mem_sym_stats_t,heap) *);
static alloc_pool mem_sym_stats_pool;
/* Return memory reference stats for symbol VAR. Create a new slot in /* Return memory reference stats for symbol VAR. Create a new slot in
cfun->gimple_df->mem_sym_stats if needed. */ cfun->gimple_df->mem_sym_stats if needed. */
...@@ -229,7 +230,8 @@ get_mem_sym_stats_for (tree var) ...@@ -229,7 +230,8 @@ get_mem_sym_stats_for (tree var)
slot = pointer_map_insert (map, var); slot = pointer_map_insert (map, var);
if (*slot == NULL) if (*slot == NULL)
{ {
stats = XCNEW (struct mem_sym_stats_d); stats = pool_alloc (mem_sym_stats_pool);
memset (stats, 0, sizeof (*stats));
stats->var = var; stats->var = var;
*slot = (void *) stats; *slot = (void *) stats;
} }
...@@ -1876,20 +1878,6 @@ count_uses_and_derefs (tree ptr, tree stmt, unsigned *num_uses_p, ...@@ -1876,20 +1878,6 @@ count_uses_and_derefs (tree ptr, tree stmt, unsigned *num_uses_p,
gcc_assert (*num_uses_p >= *num_loads_p + *num_stores_p); gcc_assert (*num_uses_p >= *num_loads_p + *num_stores_p);
} }
/* Helper for delete_mem_ref_stats. Free all the slots in the
mem_sym_stats map. */
static bool
delete_mem_sym_stats (void *key ATTRIBUTE_UNUSED, void **value,
void *data ATTRIBUTE_UNUSED)
{
XDELETE (*value);
*value = NULL;
return false;
}
/* Remove memory references stats for function FN. */ /* Remove memory references stats for function FN. */
void void
...@@ -1897,11 +1885,9 @@ delete_mem_ref_stats (struct function *fn) ...@@ -1897,11 +1885,9 @@ delete_mem_ref_stats (struct function *fn)
{ {
if (gimple_mem_ref_stats (fn)->mem_sym_stats) if (gimple_mem_ref_stats (fn)->mem_sym_stats)
{ {
pointer_map_traverse (gimple_mem_ref_stats (fn)->mem_sym_stats, free_alloc_pool (mem_sym_stats_pool);
delete_mem_sym_stats, NULL);
pointer_map_destroy (gimple_mem_ref_stats (fn)->mem_sym_stats); pointer_map_destroy (gimple_mem_ref_stats (fn)->mem_sym_stats);
} }
gimple_mem_ref_stats (fn)->mem_sym_stats = NULL; gimple_mem_ref_stats (fn)->mem_sym_stats = NULL;
} }
...@@ -1913,9 +1899,9 @@ init_mem_ref_stats (void) ...@@ -1913,9 +1899,9 @@ init_mem_ref_stats (void)
{ {
struct mem_ref_stats_d *mem_ref_stats = gimple_mem_ref_stats (cfun); struct mem_ref_stats_d *mem_ref_stats = gimple_mem_ref_stats (cfun);
if (mem_ref_stats->mem_sym_stats) mem_sym_stats_pool = create_alloc_pool ("Mem sym stats",
delete_mem_ref_stats (cfun); sizeof (struct mem_sym_stats_d),
100);
memset (mem_ref_stats, 0, sizeof (struct mem_ref_stats_d)); memset (mem_ref_stats, 0, sizeof (struct mem_ref_stats_d));
mem_ref_stats->mem_sym_stats = pointer_map_create (); mem_ref_stats->mem_sym_stats = pointer_map_create ();
} }
...@@ -1946,8 +1932,6 @@ init_alias_info (void) ...@@ -1946,8 +1932,6 @@ init_alias_info (void)
{ {
unsigned i; unsigned i;
bitmap_obstack_release (&alias_bitmap_obstack);
/* Similarly, clear the set of addressable variables. In this /* Similarly, clear the set of addressable variables. In this
case, we can just clear the set because addressability is case, we can just clear the set because addressability is
only computed here. */ only computed here. */
...@@ -2021,6 +2005,8 @@ init_alias_info (void) ...@@ -2021,6 +2005,8 @@ init_alias_info (void)
/* Next time, we will need to reset alias information. */ /* Next time, we will need to reset alias information. */
cfun->gimple_df->aliases_computed_p = true; cfun->gimple_df->aliases_computed_p = true;
if (alias_bitmap_obstack.elements != NULL)
bitmap_obstack_release (&alias_bitmap_obstack);
bitmap_obstack_initialize (&alias_bitmap_obstack); bitmap_obstack_initialize (&alias_bitmap_obstack);
return ai; return ai;
...@@ -2051,6 +2037,7 @@ delete_alias_info (struct alias_info *ai) ...@@ -2051,6 +2037,7 @@ delete_alias_info (struct alias_info *ai)
pointer_set_destroy (ai->dereferenced_ptrs_load); pointer_set_destroy (ai->dereferenced_ptrs_load);
free (ai); free (ai);
delete_mem_ref_stats (cfun);
delete_points_to_sets (); delete_points_to_sets ();
} }
......
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