re PR middle-end/56461 (GCC is leaking lots of memory)
authorJakub Jelinek <jakub@redhat.com>
Wed, 27 Feb 2013 21:35:06 +0000 (22:35 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 27 Feb 2013 21:35:06 +0000 (22:35 +0100)
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

gcc/ChangeLog
gcc/df-scan.c

index 8afdf05..aee4e04 100644 (file)
@@ -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.
 
index 2928776..931fa2c 100644 (file)
@@ -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;