aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2004-09-04 00:38:33 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2004-09-03 22:38:33 +0000
commit80d8221e0c34594db9939116db262200b4b7c242 (patch)
treee59551e0e65a59fe649b0f87ddc5560204162a2f /gcc/tree-ssa.c
parentbb1058e4c2866efcfb59d127081e6afceaa16fd8 (diff)
downloadgcc-80d8221e0c34594db9939116db262200b4b7c242.zip
gcc-80d8221e0c34594db9939116db262200b4b7c242.tar.gz
gcc-80d8221e0c34594db9939116db262200b4b7c242.tar.bz2
cfg.c (free_edge): Use ggc_free.
2004-09-04 Jan Hubicka <jh@suse.cz> * cfg.c (free_edge): Use ggc_free. (expunge_block): Use ggc_free. * passes.c (rest_of_clean_state): Free after compilation. * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments. From-SVN: r87058
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r--gcc/tree-ssa.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index 13104fd..f6037c2 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -641,13 +641,22 @@ delete_tree_ssa (void)
/* Remove annotations from every tree in the function. */
FOR_EACH_BB (bb)
for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
- bsi_stmt (bsi)->common.ann = NULL;
+ {
+ tree stmt = bsi_stmt (bsi);
+ release_defs (stmt);
+ ggc_free (stmt->common.ann);
+ stmt->common.ann = NULL;
+ }
/* Remove annotations from every referenced variable. */
if (referenced_vars)
{
for (i = 0; i < num_referenced_vars; i++)
- referenced_var (i)->common.ann = NULL;
+ {
+ tree var = referenced_var (i);
+ ggc_free (var->common.ann);
+ var->common.ann = NULL;
+ }
referenced_vars = NULL;
}