From 8218c244f48a1616aa9380ff915b9bee10243393 Mon Sep 17 00:00:00 2001 From: hubicka Date: Mon, 27 Jun 2005 23:33:02 +0000 Subject: * tree-optimize.c (exercute_free_datastructures): Do not disband implicit edges; do not attempt to build insn list; do not free cfg annotations. (execute_free_cfg_annotations); Disband implicit edges here; free cfg annotations here too. (pass_free_cfg_annotations); New pass. (init_tree_optimization_passes); Add pass_free_cfg_annotations. * tree-ssa-operands.c (free_ssa_operands); Recover; export. * tree-ssa-operands.h (free_ssa_operands); declare. * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified; kill PHI nodes. * tree-ssanames.c (release_defs): Kill addresses_taken. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101360 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-ssa.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'gcc/tree-ssa.c') diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index dc28e712804..1a09ef93acf 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -819,12 +819,18 @@ 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)) - { - tree stmt = bsi_stmt (bsi); - ggc_free (stmt->common.ann); - stmt->common.ann = NULL; - } + { + for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi)) + { + tree stmt = bsi_stmt (bsi); + stmt_ann_t ann = get_stmt_ann (stmt); + + free_ssa_operands (&ann->operands); + ann->addresses_taken = 0; + mark_stmt_modified (stmt); + } + set_phi_nodes (bb, NULL); + } /* Remove annotations from every referenced variable. */ for (i = 0; i < num_referenced_vars; i++) -- cgit v1.2.1