function.c (free_after_compilation): Call insn_locators_free.
authorJan Hubicka <jh@suse.cz>
Thu, 11 Sep 2008 12:31:40 +0000 (14:31 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 11 Sep 2008 12:31:40 +0000 (12:31 +0000)
* function.c (free_after_compilation): Call insn_locators_free.
* cfglayout.c (insn_locators_free): New function.
* rtl.h (insn_locators_free): Declare.

From-SVN: r140279

gcc/ChangeLog
gcc/cfglayout.c
gcc/function.c
gcc/rtl.h

index 12eb46c..6eb9c86 100644 (file)
@@ -1,5 +1,11 @@
 2008-09-11  Jan Hubicka  <jh@suse.cz>
 
+       * function.c (free_after_compilation): Call insn_locators_free.
+       * cfglayout.c (insn_locators_free): New function.
+       * rtl.h (insn_locators_free): Declare.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
        * ifcvt.c (check_cond_move_block): Make regs argument pointer to vector pointer.
        (cond_move_process_if_block): Update call.
 
index e4049d6..b4ca49f 100644 (file)
@@ -271,6 +271,19 @@ insn_locators_finalize (void)
   curr_rtl_loc = -1;
 }
 
+/* Allocate insn locator datastructure.  */
+void
+insn_locators_free (void)
+{
+  prologue_locator = epilogue_locator = 0;
+
+  VEC_free (int, heap, block_locators_locs);
+  VEC_free (tree,gc, block_locators_blocks);
+  VEC_free (int, heap, locations_locators_locs);
+  VEC_free (location_t, heap, locations_locators_vals);
+}
+
+
 /* Set current location.  */
 void
 set_curr_insn_source_location (location_t location)
index 7cff900..412e6fa 100644 (file)
@@ -286,6 +286,7 @@ free_after_compilation (struct function *f)
   f->cfg = NULL;
 
   regno_reg_rtx = NULL;
+  insn_locators_free ();
 }
 \f
 /* Return size needed for stack frame based on slots so far allocated.
index 5d2e793..fd855e9 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2357,6 +2357,7 @@ extern const struct rtl_hooks general_rtl_hooks;
 #define gen_lowpart rtl_hooks.gen_lowpart
 
 extern void insn_locators_alloc (void);
+extern void insn_locators_free (void);
 extern void insn_locators_finalize (void);
 extern void set_curr_insn_source_location (location_t);
 extern void set_curr_insn_block (tree);