Commit ec17e433 by Martin Liska Committed by Martin Liska

Fix memory leaks in graphite

	* graphite-poly.c (free_scop): Release scop->drs vector.
	* graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
	Release dom vector.
	(try_generate_gimple_bb): Use vNULL as a default initialization
	for vectors.

From-SVN: r230312
parent c9ab724f
2015-11-13 Martin Liska <mliska@suse.cz> 2015-11-13 Martin Liska <mliska@suse.cz>
* graphite-poly.c (free_scop): Release scop->drs vector.
* graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
Release dom vector.
(try_generate_gimple_bb): Use vNULL as a default initialization
for vectors.
2015-11-13 Martin Liska <mliska@suse.cz>
PR ipa/68311 PR ipa/68311
* ipa-icf.c (sem_item_optimizer::traverse_congruence_split): * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
Replace ctor with auto_vec and initialization in a loop. Replace ctor with auto_vec and initialization in a loop.
...@@ -328,6 +328,7 @@ free_scop (scop_p scop) ...@@ -328,6 +328,7 @@ free_scop (scop_p scop)
free_poly_bb (pbb); free_poly_bb (pbb);
scop->pbbs.release (); scop->pbbs.release ();
scop->drs.release ();
isl_set_free (scop->param_context); isl_set_free (scop->param_context);
isl_union_map_free (scop->must_raw); isl_union_map_free (scop->must_raw);
......
...@@ -522,6 +522,11 @@ class scop_detection ...@@ -522,6 +522,11 @@ class scop_detection
public: public:
scop_detection () : scops (vNULL) {} scop_detection () : scops (vNULL) {}
~scop_detection ()
{
scops.release ();
}
/* A marker for invalid sese_l. */ /* A marker for invalid sese_l. */
static sese_l invalid_sese; static sese_l invalid_sese;
...@@ -1065,13 +1070,20 @@ scop_detection::harmful_stmt_in_region (sese_l scop) const ...@@ -1065,13 +1070,20 @@ scop_detection::harmful_stmt_in_region (sese_l scop) const
/* The basic block should not be part of an irreducible loop. */ /* The basic block should not be part of an irreducible loop. */
if (bb->flags & BB_IRREDUCIBLE_LOOP) if (bb->flags & BB_IRREDUCIBLE_LOOP)
return true; {
dom.release ();
return true;
}
if (harmful_stmt_in_bb (scop, bb)) if (harmful_stmt_in_bb (scop, bb))
return true; {
dom.release ();
return true;
}
} }
return false; dom.release ();
return false;
} }
/* Returns true if S1 subsumes/surrounds S2. */ /* Returns true if S1 subsumes/surrounds S2. */
...@@ -1749,12 +1761,9 @@ graphite_find_cross_bb_scalar_vars (scop_p scop, gimple *stmt, ...@@ -1749,12 +1761,9 @@ graphite_find_cross_bb_scalar_vars (scop_p scop, gimple *stmt,
static gimple_poly_bb_p static gimple_poly_bb_p
try_generate_gimple_bb (scop_p scop, basic_block bb) try_generate_gimple_bb (scop_p scop, basic_block bb)
{ {
vec<data_reference_p> drs; vec<data_reference_p> drs = vNULL;
drs.create (3); vec<tree> writes = vNULL;
vec<tree> writes; vec<scalar_use> reads = vNULL;
writes.create (3);
vec<scalar_use> reads;
reads.create (3);
sese_l region = scop->scop_info->region; sese_l region = scop->scop_info->region;
loop_p nest = outermost_loop_in_sese (region, bb); loop_p nest = outermost_loop_in_sese (region, bb);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment