diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 78513d25ecb..c4aede67bcb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2007-01-20 Jan Hubicka + + * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars. + * tree-ssa-structalias.c (compute_points_to_sets): Do call + init_alias_heapvars. + (init_alias_heapvars): Initialize only when not already initialized. + (delete_alias_heapvars): Set heapvar_for_stmt to NULL. + 2007-01-19 Roger Sayle * common.opt (fsigned-zeros): New command line option. diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 550ad865eb2..def895854f5 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -4692,6 +4692,7 @@ compute_points_to_sets (struct alias_info *ai) timevar_push (TV_TREE_PTA); init_alias_vars (); + init_alias_heapvars (); intra_create_variable_infos (); @@ -4934,14 +4935,16 @@ struct tree_opt_pass pass_ipa_pta = void init_alias_heapvars (void) { - heapvar_for_stmt = htab_create_ggc (11, tree_map_hash, tree_map_eq, - NULL); + if (!heapvar_for_stmt) + heapvar_for_stmt = htab_create_ggc (11, tree_map_hash, tree_map_eq, + NULL); } void delete_alias_heapvars (void) { htab_delete (heapvar_for_stmt); + heapvar_for_stmt = NULL; } diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index a4231083d01..dd771ea2b99 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -778,7 +778,6 @@ init_tree_ssa (void) var_ann_eq, NULL); cfun->gimple_df->call_clobbered_vars = BITMAP_GGC_ALLOC (); cfun->gimple_df->addressable_vars = BITMAP_GGC_ALLOC (); - init_alias_heapvars (); init_ssanames (); init_phinodes (); }