aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2013-02-27 22:35:06 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2013-02-27 22:35:06 +0100
commite19624ee2a4863da6ec9479252cafcf1ef1e1e78 (patch)
tree27492f4f83c2fe3ba4c29aacfee938d3a62a7f68
parent90e709fd8ea149dacde675363135a0ddea053b09 (diff)
downloadgcc-e19624ee2a4863da6ec9479252cafcf1ef1e1e78.zip
gcc-e19624ee2a4863da6ec9479252cafcf1ef1e1e78.tar.gz
gcc-e19624ee2a4863da6ec9479252cafcf1ef1e1e78.tar.bz2
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before pool_free. (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before overwriting it. From-SVN: r196321
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/df-scan.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8afdf05..aee4e04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,12 @@
2013-02-27 Jakub Jelinek <jakub@redhat.com>
PR middle-end/56461
+ * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
+ pool_free.
+ (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
+ overwriting it.
+
+ PR middle-end/56461
* ipa-cp.c (decide_whether_version_node): Call vec_free on
known_aggs[i].items and release known_aggs vector.
diff --git a/gcc/df-scan.c b/gcc/df-scan.c
index 2928776..931fa2c 100644
--- a/gcc/df-scan.c
+++ b/gcc/df-scan.c
@@ -1153,6 +1153,7 @@ df_insn_delete (basic_block bb, unsigned int uid)
df_ref_chain_delete (insn_info->defs);
df_ref_chain_delete (insn_info->uses);
df_ref_chain_delete (insn_info->eq_uses);
+ df_scan_free_mws_vec (insn_info->mw_hardregs);
}
pool_free (problem_data->insn_pool, insn_info);
DF_INSN_UID_SET (uid, NULL);
@@ -1332,6 +1333,7 @@ df_insn_rescan_debug_internal (rtx insn)
df_ref_chain_delete (insn_info->defs);
df_ref_chain_delete (insn_info->uses);
df_ref_chain_delete (insn_info->eq_uses);
+ df_scan_free_mws_vec (insn_info->mw_hardregs);
insn_info->defs = df_null_ref_rec;
insn_info->uses = df_null_ref_rec;