aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-loop-distribution.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2013-03-04 11:08:57 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2013-03-04 11:08:57 +0100
commit5eb010bcfc8ac4879990414f278baf2af385688c (patch)
tree4055b9acd2ab115edac0a5ddaa73d8fb5a02c5c8 /gcc/tree-loop-distribution.c
parent30862efc6b9677d313787fa1a8e8e7f6f3bd0c75 (diff)
downloadgcc-5eb010bcfc8ac4879990414f278baf2af385688c.zip
gcc-5eb010bcfc8ac4879990414f278baf2af385688c.tar.gz
gcc-5eb010bcfc8ac4879990414f278baf2af385688c.tar.bz2
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461 * tree-loop-distribution.c (ldist_gen): Call partition_free after each partitions.ordered_remove. From-SVN: r196427
Diffstat (limited to 'gcc/tree-loop-distribution.c')
-rw-r--r--gcc/tree-loop-distribution.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 12fd4c5..70f71b3 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -1306,6 +1306,7 @@ ldist_gen (struct loop *loop, struct graph *rdg,
if (partition->kind == PKIND_REDUCTION)
into->kind = PKIND_REDUCTION;
partitions.ordered_remove (i);
+ partition_free (partition);
i--;
}
else
@@ -1342,6 +1343,7 @@ ldist_gen (struct loop *loop, struct graph *rdg,
if (partition->kind == PKIND_REDUCTION)
into->kind = PKIND_REDUCTION;
partitions.ordered_remove (j);
+ partition_free (partition);
j--;
}
}
@@ -1367,6 +1369,7 @@ ldist_gen (struct loop *loop, struct graph *rdg,
bitmap_ior_into (into->stmts, what->stmts);
into->kind = PKIND_REDUCTION;
partitions.ordered_remove (i);
+ partition_free (what);
}
}
}