Patchwork [1/3] Fix Graphite memory leaks.

login
register
mail settings
Submitter Sebastian Pop
Date Sept. 23, 2010, 3:52 p.m.
Message ID <1285257170-11174-1-git-send-email-sebpop@gmail.com>
Download mbox | patch
Permalink /patch/65544/
State New
Headers show

Comments

Sebastian Pop - Sept. 23, 2010, 3:52 p.m.
2010-09-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
	and ps.
	* graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
	domain.
	* graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
	Do not allocate ub_expr, it is passed in initialized.
---
 gcc/ChangeLog.graphite         |    9 +++++++++
 gcc/graphite-clast-to-gimple.c |    2 ++
 gcc/graphite-poly.c            |    2 ++
 gcc/graphite-sese-to-poly.c    |    1 -
 4 files changed, 13 insertions(+), 1 deletions(-)

Patch

diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index a191c61..d8305b9 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,3 +1,12 @@ 
+2010-09-23  Sebastian Pop  <sebastian.pop@amd.com>
+
+	* graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
+	and ps.
+	* graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
+	domain.
+	* graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
+	Do not allocate ub_expr, it is passed in initialized.
+
 2010-09-21  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
 
 	* common.opt (fgraphite-dump-cloog): New flag.
diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
index 19b3f7f..430f1ad 100644
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
@@ -703,6 +703,8 @@  compute_bounds_for_level (poly_bb_p pbb, int level, mpz_t low, mpz_t up)
 
   ppl_max_for_le_pointset (ps, le, up);
   ppl_min_for_le_pointset (ps, le, low);
+  ppl_delete_Linear_Expression (le);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (ps);
 }
 
 /* Compute the type for the induction variable at LEVEL for the
diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c
index a122a9c..265de78 100644
--- a/gcc/graphite-poly.c
+++ b/gcc/graphite-poly.c
@@ -1736,8 +1736,10 @@  pbb_number_of_iterations_at_time (poly_bb_p pbb,
   mpz_clear (diff);
   mpz_clear (lb);
   mpz_clear (ub);
+  ppl_delete_Linear_Expression (le);
   ppl_delete_Pointset_Powerset_C_Polyhedron (sctr_ub);
   ppl_delete_Pointset_Powerset_C_Polyhedron (sctr_lb);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (domain);
 }
 
 /* Translates LOOP to LST.  */
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 1ee6fee..87b226b 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -1032,7 +1032,6 @@  add_upper_bounds_from_estimated_nit (scop_p scop, double_int nit,
   ppl_Coefficient_t coef;
   ppl_Constraint_t ub;
 
-  ppl_new_Linear_Expression_with_dimension (&ub_expr, dim);
   ppl_new_C_Polyhedron_from_space_dimension (&pol, dim, 0);
   ppl_new_Linear_Expression_from_Linear_Expression (&nb_iters_le,
 						    ub_expr);