aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2006-12-05 00:44:24 +0000
committerDaniel Berlin <dberlin@gcc.gnu.org>2006-12-05 00:44:24 +0000
commite5ebbea51eb1a2d044a8761cf3f95d40b67f1329 (patch)
tree332b7bfeaf1b2a96cffecab0bfa2dc29230d9f3c
parentb8d85341b63d9eebe1ca2023adea6b5300873a7b (diff)
downloadgcc-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/ChangeLog24
-rw-r--r--gcc/tree-ssa-alias.c2
-rw-r--r--gcc/tree-ssa-structalias.c11
-rw-r--r--gcc/tree-ssa-structalias.h1
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 */