From 93675444333665dd3f22e6d19c914e3247d19312 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 5 Mar 2013 10:37:56 +0100 Subject: [PATCH] re PR middle-end/56461 (GCC is leaking lots of memory) PR middle-end/56461 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call free_stmt_vec_info on any left-over stmt_vec_info in the vector. * tree-vect-loop.c (vect_create_epilog_for_reduction): Release inner_phis vector. From-SVN: r196453 --- gcc/ChangeLog | 8 ++++++++ gcc/tree-vect-loop.c | 3 ++- gcc/tree-vect-stmts.c | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 56d6b41f629..bc0500cb115 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2013-03-05 Jakub Jelinek + + PR middle-end/56461 + * tree-vect-stmts.c (free_stmt_vec_info_vec): Call + free_stmt_vec_info on any left-over stmt_vec_info in the vector. + * tree-vect-loop.c (vect_create_epilog_for_reduction): Release + inner_phis vector. + 2013-03-05 Richard Biener PR lto/56515 diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 8be53bb02c8..1252c5a04fc 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -4487,8 +4487,9 @@ vect_finalize_reduction: } scalar_results.release (); + inner_phis.release (); new_phis.release (); -} +} /* Function vectorizable_reduction. diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index e5604fa6fea..a7144288f1f 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -5969,6 +5969,11 @@ init_stmt_vec_info_vec (void) void free_stmt_vec_info_vec (void) { + unsigned int i; + vec_void_p info; + FOR_EACH_VEC_ELT (stmt_vec_info_vec, i, info) + if (info != NULL) + free_stmt_vec_info (STMT_VINFO_STMT ((stmt_vec_info) info)); gcc_assert (stmt_vec_info_vec.exists ()); stmt_vec_info_vec.release (); } -- 2.30.2