diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2006-12-05 00:44:24 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2006-12-05 00:44:24 +0000 |
commit | e5ebbea51eb1a2d044a8761cf3f95d40b67f1329 (patch) | |
tree | 332b7bfeaf1b2a96cffecab0bfa2dc29230d9f3c | |
parent | b8d85341b63d9eebe1ca2023adea6b5300873a7b (diff) | |
download | gcc-e5ebbea51eb1a2d044a8761cf3f95d40b67f1329.zip gcc-e5ebbea51eb1a2d044a8761cf3f95d40b67f1329.tar.gz gcc-e5ebbea51eb1a2d044a8761cf3f95d40b67f1329.tar.bz2 |
tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call set_used_smts.
2006-12-04 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call
set_used_smts.
* tree-ssa-structalias.c (set_used_smts): Export.
(find_what_p_points_to): Don't call set_used_smts here.
* tree-ssa-structalias.h (set_used_smts): Add prototype.
From-SVN: r119528
-rw-r--r-- | gcc/ChangeLog | 24 | ||||
-rw-r--r-- | gcc/tree-ssa-alias.c | 2 | ||||
-rw-r--r-- | gcc/tree-ssa-structalias.c | 11 | ||||
-rw-r--r-- | gcc/tree-ssa-structalias.h | 1 |
4 files changed, 25 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1de07b1..8a5b1aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -4,19 +4,31 @@ * explow.c (expr_size, int_expr_size): Assert that size is non_NULL. 2006-12-04 Daniel Berlin <dberlin@dberlin.org> + + * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call + set_used_smts. + * tree-ssa-structalias.c (set_used_smts): Export. + (find_what_p_points_to): Don't call set_used_smts here. + * tree-ssa-structalias.h (set_used_smts): Add prototype. + +2006-12-04 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-alias.c (compute_may_aliases): Compute flow sensitive before flow insensitive. (compute_flow_sensitive_aliasing): Don't try to add a symbol memory tag to itself. + * alias.h (alias_set_subset_of): New prototype. + * alias.c (alias_set_subset_of): New function. + * tree-ssa-structalias.c: Update comments. (struct variable_info): Add finished_solution. (new_varinfo): Set finished solution to NULL. (var_escaped_vars): Remove. (escaped_vars_tree): Remove. (escaped_vars_id): Remove. + (nonlocal_vars_id): Remove. (constraint_expr_type): Add INCLUDES. (graph_size): Removed. (dump_constraint): Support INCLUDES. @@ -29,7 +41,8 @@ (process_constraint): Fix non-field sensitive handling Handle includes. (get_constraint_for): Use INCLUDES. - (make_constraint_from_escaped): Use nonlocal_vars_id. + (make_constraint_from_anything): Renamed from + make_constraint_from_escaped. (make_constraint_to_escaped): Removed. (find_global_initializers): Removed. (create_variable_info_for): Do not make constraints to escaped @@ -37,17 +50,20 @@ (dump_solution_for_var): Don't print out the equivalent points-to sets, just use the name of the variable it shares it with. (intra_create_variable_infos): Use INCLUDES. - Move initialization of nonlocal variable to init_base_vars. - (init_base_vars): Init nonlocal variable here. - Remove escaped_vars initialization. + Change nonlocal variable sets to anything sets. + (init_base_vars): Remove escaped_vars and nonlocal_var + initialization. (find_escape_constraints): Removed. (delete_points_to_sets): Remove dead code. (used_smt_calculated): New variable. (set_used_smts): New function. (merge_smts_into): New function. (find_what_p_points_to): Modify to use SMTs. + (create_nonlocal_var): Remove. + * tree-ssa-operands.c (access_can_touch_variable): Remove reference to nonlocal_all. + * tree-ssa.c (verify_name_tags): Remove. 2006-12-04 Carlos O'Donell <carlos@codesourcery.com> diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index d4f1590..163c78d 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -1096,6 +1096,8 @@ compute_flow_sensitive_aliasing (struct alias_info *ai) size_t i; tree ptr; + set_used_smts (); + for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++) { if (!find_what_p_points_to (ptr)) diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 6a27972..7fda8b5 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -3876,11 +3876,10 @@ static bitmap used_smts; calculation being a bit co-dependent, we can't just calculate SMT used info whenever we want, we have to calculate it around the time that find_what_p_points_to is called. */ -static bool used_smt_calculated; /* Mark which SMT's are in use by points-to anything variables. */ -static void +void set_used_smts (void) { int i; @@ -3926,7 +3925,6 @@ set_used_smts (void) } } } - used_smt_calculated = true; } /* Merge the necessary SMT's into the solution set for VI, which is @@ -4076,12 +4074,10 @@ find_what_p_points_to (tree p) aliases for the underlying SMT. */ if (was_pt_anything) { - if (!used_smt_calculated) - set_used_smts (); merge_smts_into (p, vi); pi->pt_global_mem = 1; - } + set_uids_in_ptset (vi->decl, vi->finished_solution, vi->solution); pi->pt_vars = vi->finished_solution; } @@ -4324,8 +4320,6 @@ compute_points_to_sets (struct alias_info *ai) solve_graph (graph); - used_smt_calculated = false; - if (dump_file) dump_sa_points_to_info (dump_file); @@ -4458,7 +4452,6 @@ ipa_pta_execute (void) fprintf (dump_file, "\nSolving graph:\n"); solve_graph (graph); - set_used_smts (); if (dump_file) dump_sa_points_to_info (dump_file); diff --git a/gcc/tree-ssa-structalias.h b/gcc/tree-ssa-structalias.h index 165e5c1..4a07f2b 100644 --- a/gcc/tree-ssa-structalias.h +++ b/gcc/tree-ssa-structalias.h @@ -94,5 +94,6 @@ extern void dump_solution_for_var (FILE *, unsigned int); extern void debug_solution_for_var (unsigned int); extern void dump_sa_points_to_info (FILE *); extern void debug_sa_points_to_info (void); +extern void set_used_smts (void); #endif /* TREE_SSA_STRUCTALIAS_H */ |