From 9d676bf6f1f2fbc00c0d961f3854c4caeee21672 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 1 Mar 2013 23:56:18 +0100 Subject: [PATCH] re PR middle-end/56461 (GCC is leaking lots of memory) PR middle-end/56461 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path vector even when returning true. Fix up function comment formatting. From-SVN: r196398 --- gcc/ChangeLog | 4 ++++ gcc/tree-ssa-loop-ivcanon.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 133af66eaf7..fa0bb7655d0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2013-03-01 Jakub Jelinek + PR middle-end/56461 + * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path + vector even when returning true. Fix up function comment formatting. + PR middle-end/56461 * ira-build.c (ira_loop_nodes_count): New variable. (create_loop_tree_nodes): Initialize it. diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index 910715aaadd..4570807842d 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -207,7 +207,7 @@ constant_after_peeling (tree op, gimple stmt, struct loop *loop) EDGE_TO_CANCEL (if non-NULL) is an non-exit edge eliminated in the last iteration of loop. Return results in SIZE, estimate benefits for complete unrolling exiting by EXIT. - Stop estimating after UPPER_BOUND is met. Return true in this case */ + Stop estimating after UPPER_BOUND is met. Return true in this case. */ static bool tree_estimate_loop_size (struct loop *loop, edge exit, edge edge_to_cancel, struct loop_size *size, @@ -321,6 +321,7 @@ tree_estimate_loop_size (struct loop *loop, edge exit, edge edge_to_cancel, stru - size->last_iteration_eliminated_by_peeling) > upper_bound) { free (body); + path.release (); return true; } } -- 2.30.2