aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-dom.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2015-11-09 16:45:59 +0100
committerMartin Liska <marxin@gcc.gnu.org>2015-11-09 15:45:59 +0000
commitaf121e828eb03233d731b25b590d1f7c5dd2693d (patch)
treea60b2807573bbeab492c0ef1ec1bb75bcd6b8efa /gcc/tree-ssa-dom.c
parentfc402eec4b203f2fba90abd57805174d4101d618 (diff)
downloadgcc-af121e828eb03233d731b25b590d1f7c5dd2693d.zip
gcc-af121e828eb03233d731b25b590d1f7c5dd2693d.tar.gz
gcc-af121e828eb03233d731b25b590d1f7c5dd2693d.tar.bz2
Fix memory leaks and use a pool_allocator
* gcc.c (record_temp_file): Release name string. * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec. * lra-lives.c (free_live_range_list): Utilize lra_live_range_pool for allocation and deallocation. (create_live_range): Likewise. (copy_live_range): Likewise. (lra_merge_live_ranges): Likewise. (remove_some_program_points_and_update_live_ranges): Likewise. (lra_create_live_ranges_1): Release point_freq_vec that can be not freed from previous iteration of the function. * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec. * tree-sra.c (sra_deinitialize): Release all vectors in base_access_vec. * tree-ssa-dom.c (free_dom_edge_info): Make the function extern. * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Release edge_info for a removed edge. (thread_through_all_blocks): Free region vector. * tree-ssa.h (free_dom_edge_info): Declare function extern. From-SVN: r230027
Diffstat (limited to 'gcc/tree-ssa-dom.c')
-rw-r--r--gcc/tree-ssa-dom.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 3887bbe1..5cb2644 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -121,8 +121,8 @@ static void dump_dominator_optimization_stats (FILE *file,
/* Free the edge_info data attached to E, if it exists. */
-static void
-free_edge_info (edge e)
+void
+free_dom_edge_info (edge e)
{
struct edge_info *edge_info = (struct edge_info *)e->aux;
@@ -142,7 +142,7 @@ allocate_edge_info (edge e)
struct edge_info *edge_info;
/* Free the old one, if it exists. */
- free_edge_info (e);
+ free_dom_edge_info (e);
edge_info = XCNEW (struct edge_info);
@@ -167,7 +167,7 @@ free_all_edge_infos (void)
{
FOR_EACH_EDGE (e, ei, bb->preds)
{
- free_edge_info (e);
+ free_dom_edge_info (e);
e->aux = NULL;
}
}