aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2008-09-11 14:31:40 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2008-09-11 12:31:40 +0000
commit825b2fe7a8e44594639db3d40253bd41380e05dc (patch)
tree296c5e6ccfe4c678c2b699ec0b3231ebade31b29
parent11e0edad1f0ad67099daee3275ae095107352f9a (diff)
downloadgcc-825b2fe7a8e44594639db3d40253bd41380e05dc.zip
gcc-825b2fe7a8e44594639db3d40253bd41380e05dc.tar.gz
gcc-825b2fe7a8e44594639db3d40253bd41380e05dc.tar.bz2
function.c (free_after_compilation): Call insn_locators_free.
* 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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cfglayout.c13
-rw-r--r--gcc/function.c1
-rw-r--r--gcc/rtl.h1
4 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 12eb46c..6eb9c86 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index e4049d6..b4ca49f 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -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)
diff --git a/gcc/function.c b/gcc/function.c
index 7cff900..412e6fa 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -286,6 +286,7 @@ free_after_compilation (struct function *f)
f->cfg = NULL;
regno_reg_rtx = NULL;
+ insn_locators_free ();
}
/* Return size needed for stack frame based on slots so far allocated.
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 5d2e793..fd855e9 100644
--- 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);