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
This commit is contained in:
parent
d8163f5cc0
commit
603802e743
3 changed files with 23 additions and 25 deletions
|
@ -1,3 +1,14 @@
|
|||
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>
|
||||
|
||||
* 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) \
|
|||
$(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) \
|
||||
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) \
|
||||
$(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\
|
||||
|
|
|
@ -47,6 +47,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
#include "bitmap.h"
|
||||
#include "vecprim.h"
|
||||
#include "pointer-set.h"
|
||||
#include "alloc-pool.h"
|
||||
|
||||
/* Broad overview of how aliasing works:
|
||||
|
||||
|
@ -212,7 +213,7 @@ static void set_pt_anything (tree);
|
|||
|
||||
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
|
||||
cfun->gimple_df->mem_sym_stats if needed. */
|
||||
|
@ -229,7 +230,8 @@ get_mem_sym_stats_for (tree var)
|
|||
slot = pointer_map_insert (map, var);
|
||||
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;
|
||||
*slot = (void *) stats;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/* 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. */
|
||||
|
||||
void
|
||||
|
@ -1897,11 +1885,9 @@ delete_mem_ref_stats (struct function *fn)
|
|||
{
|
||||
if (gimple_mem_ref_stats (fn)->mem_sym_stats)
|
||||
{
|
||||
pointer_map_traverse (gimple_mem_ref_stats (fn)->mem_sym_stats,
|
||||
delete_mem_sym_stats, NULL);
|
||||
free_alloc_pool (mem_sym_stats_pool);
|
||||
pointer_map_destroy (gimple_mem_ref_stats (fn)->mem_sym_stats);
|
||||
}
|
||||
|
||||
gimple_mem_ref_stats (fn)->mem_sym_stats = NULL;
|
||||
}
|
||||
|
||||
|
@ -1913,9 +1899,9 @@ init_mem_ref_stats (void)
|
|||
{
|
||||
struct mem_ref_stats_d *mem_ref_stats = gimple_mem_ref_stats (cfun);
|
||||
|
||||
if (mem_ref_stats->mem_sym_stats)
|
||||
delete_mem_ref_stats (cfun);
|
||||
|
||||
mem_sym_stats_pool = create_alloc_pool ("Mem sym stats",
|
||||
sizeof (struct mem_sym_stats_d),
|
||||
100);
|
||||
memset (mem_ref_stats, 0, sizeof (struct mem_ref_stats_d));
|
||||
mem_ref_stats->mem_sym_stats = pointer_map_create ();
|
||||
}
|
||||
|
@ -1946,8 +1932,6 @@ init_alias_info (void)
|
|||
{
|
||||
unsigned i;
|
||||
|
||||
bitmap_obstack_release (&alias_bitmap_obstack);
|
||||
|
||||
/* Similarly, clear the set of addressable variables. In this
|
||||
case, we can just clear the set because addressability is
|
||||
only computed here. */
|
||||
|
@ -2021,6 +2005,8 @@ init_alias_info (void)
|
|||
|
||||
/* Next time, we will need to reset alias information. */
|
||||
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);
|
||||
|
||||
return ai;
|
||||
|
@ -2051,6 +2037,7 @@ delete_alias_info (struct alias_info *ai)
|
|||
pointer_set_destroy (ai->dereferenced_ptrs_load);
|
||||
free (ai);
|
||||
|
||||
delete_mem_ref_stats (cfun);
|
||||
delete_points_to_sets ();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue