alloc-pool.h (free_alloc_pool_if_empty): Prototype new function.
2006-06-20 Richard Guenther <rguenther@suse.de> Michael Matz <matz@suse.de> * alloc-pool.h (free_alloc_pool_if_empty): Prototype new function. * alloc-pool.c (free_alloc_pool_if_empty): New function. * et-forest.h (et_free_pools): Prototype new function. * et-forest.c (et_free_tree_force): Free parent occurrence. (et_free_pools): New function. * dominance.c (free_dominance_info): Free et-forest alloc pools. Co-Authored-By: Michael Matz <matz@suse.de> From-SVN: r114817
This commit is contained in:
parent
1000b34d95
commit
5a6ccafd7d
@ -1,3 +1,15 @@
|
||||
2006-06-20 Richard Guenther <rguenther@suse.de>
|
||||
Michael Matz <matz@suse.de>
|
||||
|
||||
* alloc-pool.h (free_alloc_pool_if_empty): Prototype new
|
||||
function.
|
||||
* alloc-pool.c (free_alloc_pool_if_empty): New function.
|
||||
* et-forest.h (et_free_pools): Prototype new function.
|
||||
* et-forest.c (et_free_tree_force): Free parent occurrence.
|
||||
(et_free_pools): New function.
|
||||
* dominance.c (free_dominance_info): Free et-forest alloc
|
||||
pools.
|
||||
|
||||
2006-06-20 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
|
||||
|
@ -207,6 +207,17 @@ free_alloc_pool (alloc_pool pool)
|
||||
free (pool);
|
||||
}
|
||||
|
||||
/* Frees the alloc_pool, if it is empty and zero *POOL in this case. */
|
||||
void
|
||||
free_alloc_pool_if_empty (alloc_pool *pool)
|
||||
{
|
||||
if ((*pool)->elts_free == (*pool)->elts_allocated)
|
||||
{
|
||||
free_alloc_pool (*pool);
|
||||
*pool = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* Allocates one element from the pool specified. */
|
||||
void *
|
||||
pool_alloc (alloc_pool pool)
|
||||
|
@ -49,6 +49,7 @@ typedef struct alloc_pool_def
|
||||
|
||||
extern alloc_pool create_alloc_pool (const char *, size_t, size_t);
|
||||
extern void free_alloc_pool (alloc_pool);
|
||||
extern void free_alloc_pool_if_empty (alloc_pool *);
|
||||
extern void *pool_alloc (alloc_pool);
|
||||
extern void pool_free (alloc_pool, void *);
|
||||
extern void dump_alloc_pool_statistics (void);
|
||||
|
@ -663,6 +663,7 @@ free_dominance_info (enum cdi_direction dir)
|
||||
et_free_tree_force (bb->dom[dir]);
|
||||
bb->dom[dir] = NULL;
|
||||
}
|
||||
et_free_pools ();
|
||||
|
||||
n_bbs_in_dom_tree[dir] = 0;
|
||||
|
||||
|
@ -505,9 +505,20 @@ void
|
||||
et_free_tree_force (struct et_node *t)
|
||||
{
|
||||
pool_free (et_occurrences, t->rightmost_occ);
|
||||
if (t->parent_occ)
|
||||
pool_free (et_occurrences, t->parent_occ);
|
||||
pool_free (et_nodes, t);
|
||||
}
|
||||
|
||||
/* Release the alloc pools, if they are empty. */
|
||||
|
||||
void
|
||||
et_free_pools (void)
|
||||
{
|
||||
free_alloc_pool_if_empty (&et_occurrences);
|
||||
free_alloc_pool_if_empty (&et_nodes);
|
||||
}
|
||||
|
||||
/* Sets father of et tree T to FATHER. */
|
||||
|
||||
void
|
||||
|
@ -74,6 +74,7 @@ struct et_node
|
||||
struct et_node *et_new_tree (void *data);
|
||||
void et_free_tree (struct et_node *);
|
||||
void et_free_tree_force (struct et_node *);
|
||||
void et_free_pools (void);
|
||||
void et_set_father (struct et_node *, struct et_node *);
|
||||
void et_split (struct et_node *);
|
||||
struct et_node *et_nca (struct et_node *, struct et_node *);
|
||||
|
Loading…
x
Reference in New Issue
Block a user