Fix memory leaks
authorRichard Biener <rguenther@suse.de>
Thu, 24 Mar 2022 08:00:29 +0000 (09:00 +0100)
committerRichard Biener <rguenther@suse.de>
Thu, 24 Mar 2022 10:16:10 +0000 (11:16 +0100)
commit85b4d881327e31ae7d2bd4072dcbe425db30f8fe
treedf70be8f91e2fc038a6e20350082a73a4212792c
parentc1d233e3334df07cfb4f732ace4d93d3cbc28bca
Fix memory leaks

When changing the predcom pass to use auto_vec leaks were introduced by
failing to replace deallocation with C++ delete.  The following does
this.  It also fixes leaks in vectorization and range folding.

2022-03-24  Richard Biener  <rguenther@suse.de>

* tree-predcom.cc (chain::chain): Add CTOR.
(component::component): Likewise.
(pcom_worker::release_chain): Use delete.
(release_components): Likewise.
(pcom_worker::filter_suitable_components): Likewise.
(pcom_worker::split_data_refs_to_components): Use new.
(make_invariant_chain): Likewise.
(make_rooted_chain): Likewise.
(pcom_worker::combine_chains): Likewise.
* tree-vect-loop.cc (vect_create_epilog_for_reduction):
Make sure to release previously constructed scalar_results.
* tree-vect-stmts.cc (vectorizable_load): Use auto_vec
for vec_offsets.
* vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
Release m_flag_set_edges.
gcc/tree-predcom.cc
gcc/tree-vect-loop.cc
gcc/tree-vect-stmts.cc
gcc/vr-values.cc