aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-sra.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-10-29 14:52:42 +0100
committerMartin Liska <marxin@gcc.gnu.org>2019-10-29 13:52:42 +0000
commit78cd68c0af1ba80b29849712f8defe51fd232ee7 (patch)
tree610d5431c2e3c5f0a8416e42ba955c1b1ce294b0 /gcc/ipa-sra.c
parent318bd8c60d83ca294b237559908dd9f88ee7c300 (diff)
downloadgcc-78cd68c0af1ba80b29849712f8defe51fd232ee7.zip
gcc-78cd68c0af1ba80b29849712f8defe51fd232ee7.tar.gz
gcc-78cd68c0af1ba80b29849712f8defe51fd232ee7.tar.bz2
Release function and edge summaries allocated with GGC.
2019-10-29 Martin Liska <mliska@suse.cz> * ggc.h (ggc_alloc_no_dtor): New function. * ipa-fnsummary.c (ipa_free_fn_summary): Call destructor and ggc_free. (ipa_free_size_summary): Call delete instead of release. * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor. * ipa-prop.c (ipa_check_create_edge_args): Likewise. (ipa_free_all_edge_args): Call destructor and ggc_free. (ipa_free_all_node_params): Likewise. (ipcp_free_transformation_sum): Likewise. * ipa-prop.h (ipa_check_create_node_params): Call new ggc_alloc_no_dtor. * ipa-sra.c (ipa_sra_generate_summary): Likewise. (ipa_sra_analysis): Call destructor and ggc_free. Replace release with delete operator. * symbol-summary.h (release): Remove .. (V>::~fast_function_summary): and move logic here. Likewise for other classes. From-SVN: r277572
Diffstat (limited to 'gcc/ipa-sra.c')
-rw-r--r--gcc/ipa-sra.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ipa-sra.c b/gcc/ipa-sra.c
index 836db40..038f38b 100644
--- a/gcc/ipa-sra.c
+++ b/gcc/ipa-sra.c
@@ -2546,7 +2546,7 @@ ipa_sra_generate_summary (void)
gcc_checking_assert (!func_sums);
gcc_checking_assert (!call_sums);
func_sums
- = (new (ggc_cleared_alloc <ipa_sra_function_summaries> ())
+ = (new (ggc_alloc_no_dtor <ipa_sra_function_summaries> ())
ipa_sra_function_summaries (symtab, true));
call_sums = new ipa_sra_call_summaries (symtab);
@@ -2805,7 +2805,7 @@ ipa_sra_read_summary (void)
gcc_checking_assert (!func_sums);
gcc_checking_assert (!call_sums);
func_sums
- = (new (ggc_cleared_alloc <ipa_sra_function_summaries> ())
+ = (new (ggc_alloc_no_dtor <ipa_sra_function_summaries> ())
ipa_sra_function_summaries (symtab, true));
call_sums = new ipa_sra_call_summaries (symtab);
@@ -3989,9 +3989,10 @@ ipa_sra_analysis (void)
process_isra_node_results (node, clone_num_suffixes);
delete clone_num_suffixes;
- func_sums->release ();
+ func_sums->~ipa_sra_function_summaries ();
+ ggc_free (func_sums);
func_sums = NULL;
- call_sums->release ();
+ delete call_sums;
call_sums = NULL;
if (dump_file)