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
This commit is contained in:
parent
b8d85341b6
commit
e5ebbea51e
4 changed files with 25 additions and 13 deletions
|
@ -3,20 +3,32 @@
|
||||||
* builtins.c (fold_builtin_memory_op): Check that expr_size match.
|
* builtins.c (fold_builtin_memory_op): Check that expr_size match.
|
||||||
* explow.c (expr_size, int_expr_size): Assert that size is non_NULL.
|
* 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>
|
2006-12-04 Daniel Berlin <dberlin@dberlin.org>
|
||||||
|
|
||||||
* tree-ssa-alias.c (compute_may_aliases):
|
* tree-ssa-alias.c (compute_may_aliases):
|
||||||
Compute flow sensitive before flow insensitive.
|
Compute flow sensitive before flow insensitive.
|
||||||
(compute_flow_sensitive_aliasing): Don't try to add
|
(compute_flow_sensitive_aliasing): Don't try to add
|
||||||
a symbol memory tag to itself.
|
a symbol memory tag to itself.
|
||||||
|
|
||||||
* alias.h (alias_set_subset_of): New prototype.
|
* alias.h (alias_set_subset_of): New prototype.
|
||||||
|
|
||||||
* alias.c (alias_set_subset_of): New function.
|
* alias.c (alias_set_subset_of): New function.
|
||||||
|
|
||||||
* tree-ssa-structalias.c: Update comments.
|
* tree-ssa-structalias.c: Update comments.
|
||||||
(struct variable_info): Add finished_solution.
|
(struct variable_info): Add finished_solution.
|
||||||
(new_varinfo): Set finished solution to NULL.
|
(new_varinfo): Set finished solution to NULL.
|
||||||
(var_escaped_vars): Remove.
|
(var_escaped_vars): Remove.
|
||||||
(escaped_vars_tree): Remove.
|
(escaped_vars_tree): Remove.
|
||||||
(escaped_vars_id): Remove.
|
(escaped_vars_id): Remove.
|
||||||
|
(nonlocal_vars_id): Remove.
|
||||||
(constraint_expr_type): Add INCLUDES.
|
(constraint_expr_type): Add INCLUDES.
|
||||||
(graph_size): Removed.
|
(graph_size): Removed.
|
||||||
(dump_constraint): Support INCLUDES.
|
(dump_constraint): Support INCLUDES.
|
||||||
|
@ -29,7 +41,8 @@
|
||||||
(process_constraint): Fix non-field sensitive handling
|
(process_constraint): Fix non-field sensitive handling
|
||||||
Handle includes.
|
Handle includes.
|
||||||
(get_constraint_for): Use 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.
|
(make_constraint_to_escaped): Removed.
|
||||||
(find_global_initializers): Removed.
|
(find_global_initializers): Removed.
|
||||||
(create_variable_info_for): Do not make constraints to escaped
|
(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
|
(dump_solution_for_var): Don't print out the equivalent points-to
|
||||||
sets, just use the name of the variable it shares it with.
|
sets, just use the name of the variable it shares it with.
|
||||||
(intra_create_variable_infos): Use INCLUDES.
|
(intra_create_variable_infos): Use INCLUDES.
|
||||||
Move initialization of nonlocal variable to init_base_vars.
|
Change nonlocal variable sets to anything sets.
|
||||||
(init_base_vars): Init nonlocal variable here.
|
(init_base_vars): Remove escaped_vars and nonlocal_var
|
||||||
Remove escaped_vars initialization.
|
initialization.
|
||||||
(find_escape_constraints): Removed.
|
(find_escape_constraints): Removed.
|
||||||
(delete_points_to_sets): Remove dead code.
|
(delete_points_to_sets): Remove dead code.
|
||||||
(used_smt_calculated): New variable.
|
(used_smt_calculated): New variable.
|
||||||
(set_used_smts): New function.
|
(set_used_smts): New function.
|
||||||
(merge_smts_into): New function.
|
(merge_smts_into): New function.
|
||||||
(find_what_p_points_to): Modify to use SMTs.
|
(find_what_p_points_to): Modify to use SMTs.
|
||||||
|
(create_nonlocal_var): Remove.
|
||||||
|
|
||||||
* tree-ssa-operands.c (access_can_touch_variable): Remove
|
* tree-ssa-operands.c (access_can_touch_variable): Remove
|
||||||
reference to nonlocal_all.
|
reference to nonlocal_all.
|
||||||
|
|
||||||
* tree-ssa.c (verify_name_tags): Remove.
|
* tree-ssa.c (verify_name_tags): Remove.
|
||||||
|
|
||||||
2006-12-04 Carlos O'Donell <carlos@codesourcery.com>
|
2006-12-04 Carlos O'Donell <carlos@codesourcery.com>
|
||||||
|
|
|
@ -1096,6 +1096,8 @@ compute_flow_sensitive_aliasing (struct alias_info *ai)
|
||||||
size_t i;
|
size_t i;
|
||||||
tree ptr;
|
tree ptr;
|
||||||
|
|
||||||
|
set_used_smts ();
|
||||||
|
|
||||||
for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
|
for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
|
||||||
{
|
{
|
||||||
if (!find_what_p_points_to (ptr))
|
if (!find_what_p_points_to (ptr))
|
||||||
|
|
|
@ -3876,11 +3876,10 @@ static bitmap used_smts;
|
||||||
calculation being a bit co-dependent, we can't just calculate SMT
|
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
|
used info whenever we want, we have to calculate it around the time
|
||||||
that find_what_p_points_to is called. */
|
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. */
|
/* Mark which SMT's are in use by points-to anything variables. */
|
||||||
|
|
||||||
static void
|
void
|
||||||
set_used_smts (void)
|
set_used_smts (void)
|
||||||
{
|
{
|
||||||
int i;
|
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
|
/* 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. */
|
aliases for the underlying SMT. */
|
||||||
if (was_pt_anything)
|
if (was_pt_anything)
|
||||||
{
|
{
|
||||||
if (!used_smt_calculated)
|
|
||||||
set_used_smts ();
|
|
||||||
merge_smts_into (p, vi);
|
merge_smts_into (p, vi);
|
||||||
pi->pt_global_mem = 1;
|
pi->pt_global_mem = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
set_uids_in_ptset (vi->decl, vi->finished_solution, vi->solution);
|
set_uids_in_ptset (vi->decl, vi->finished_solution, vi->solution);
|
||||||
pi->pt_vars = vi->finished_solution;
|
pi->pt_vars = vi->finished_solution;
|
||||||
}
|
}
|
||||||
|
@ -4324,8 +4320,6 @@ compute_points_to_sets (struct alias_info *ai)
|
||||||
|
|
||||||
solve_graph (graph);
|
solve_graph (graph);
|
||||||
|
|
||||||
used_smt_calculated = false;
|
|
||||||
|
|
||||||
if (dump_file)
|
if (dump_file)
|
||||||
dump_sa_points_to_info (dump_file);
|
dump_sa_points_to_info (dump_file);
|
||||||
|
|
||||||
|
@ -4458,7 +4452,6 @@ ipa_pta_execute (void)
|
||||||
fprintf (dump_file, "\nSolving graph:\n");
|
fprintf (dump_file, "\nSolving graph:\n");
|
||||||
|
|
||||||
solve_graph (graph);
|
solve_graph (graph);
|
||||||
set_used_smts ();
|
|
||||||
|
|
||||||
if (dump_file)
|
if (dump_file)
|
||||||
dump_sa_points_to_info (dump_file);
|
dump_sa_points_to_info (dump_file);
|
||||||
|
|
|
@ -94,5 +94,6 @@ extern void dump_solution_for_var (FILE *, unsigned int);
|
||||||
extern void debug_solution_for_var (unsigned int);
|
extern void debug_solution_for_var (unsigned int);
|
||||||
extern void dump_sa_points_to_info (FILE *);
|
extern void dump_sa_points_to_info (FILE *);
|
||||||
extern void debug_sa_points_to_info (void);
|
extern void debug_sa_points_to_info (void);
|
||||||
|
extern void set_used_smts (void);
|
||||||
|
|
||||||
#endif /* TREE_SSA_STRUCTALIAS_H */
|
#endif /* TREE_SSA_STRUCTALIAS_H */
|
||||||
|
|
Loading…
Add table
Reference in a new issue