From: Jan Hubicka Date: Thu, 11 Sep 2008 12:31:40 +0000 (+0200) Subject: function.c (free_after_compilation): Call insn_locators_free. X-Git-Tag: releases/gcc-4.4.0~2492 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=825b2fe7a8e44594639db3d40253bd41380e05dc;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12eb46c93922..6eb9c8606677 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-09-11 Jan Hubicka + + * 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 * ifcvt.c (check_cond_move_block): Make regs argument pointer to vector pointer. diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index e4049d664654..b4ca49f43249 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 7cff90020142..412e6fa9af0c 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 5d2e793e2dce..fd855e9c6500 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);