aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r--gcc/tree-ssa.c29
1 files changed, 13 insertions, 16 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index 4b869be..b652b4c 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -1118,25 +1118,22 @@ make_pass_init_datastructures (gcc::context *ctxt)
/* Deallocate memory associated with SSA data structures for FNDECL. */
void
-delete_tree_ssa (void)
+delete_tree_ssa (struct function *fn)
{
- fini_ssanames ();
+ fini_ssanames (fn);
/* We no longer maintain the SSA operand cache at this point. */
- if (ssa_operands_active (cfun))
- fini_ssa_operands (cfun);
-
- cfun->gimple_df->default_defs->empty ();
- cfun->gimple_df->default_defs = NULL;
- pt_solution_reset (&cfun->gimple_df->escaped);
- if (cfun->gimple_df->decls_to_pointers != NULL)
- delete cfun->gimple_df->decls_to_pointers;
- cfun->gimple_df->decls_to_pointers = NULL;
- cfun->gimple_df->modified_noreturn_calls = NULL;
- cfun->gimple_df = NULL;
-
- /* We no longer need the edge variable maps. */
- redirect_edge_var_map_destroy ();
+ if (ssa_operands_active (fn))
+ fini_ssa_operands (fn);
+
+ fn->gimple_df->default_defs->empty ();
+ fn->gimple_df->default_defs = NULL;
+ pt_solution_reset (&fn->gimple_df->escaped);
+ if (fn->gimple_df->decls_to_pointers != NULL)
+ delete fn->gimple_df->decls_to_pointers;
+ fn->gimple_df->decls_to_pointers = NULL;
+ fn->gimple_df->modified_noreturn_calls = NULL;
+ fn->gimple_df = NULL;
}
/* Return true if EXPR is a useless type conversion, otherwise return