summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-11 12:31:40 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-11 12:31:40 +0000
commit8b3949ab707ec35a8cb67488d1277297ade57d5d (patch)
tree296c5e6ccfe4c678c2b699ec0b3231ebade31b29 /gcc
parent1046ee052f6c540dffa07341eef3bcf6debd27f8 (diff)
downloadgcc-8b3949ab707ec35a8cb67488d1277297ade57d5d.tar.gz
* function.c (free_after_compilation): Call insn_locators_free.
* cfglayout.c (insn_locators_free): New function. * rtl.h (insn_locators_free): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140279 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-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 12eb46c9392..6eb9c860667 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 e4049d66465..b4ca49f4324 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 7cff9002014..412e6fa9af0 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 5d2e793e2dc..fd855e9c650 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);