diff options
author | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-04 19:07:05 +0000 |
---|---|---|
committer | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-04 19:07:05 +0000 |
commit | 7d1f52b23a4d503ddbb1bb6bd82a2e4a992ad6de (patch) | |
tree | 8dbfc56117f5c8e2683fa7f0f2fb59efb7c301b4 /gcc/tree-ssa-alias.c | |
parent | 729a26ca737cc04301584a808a09866752d192e3 (diff) | |
download | gcc-7d1f52b23a4d503ddbb1bb6bd82a2e4a992ad6de.tar.gz |
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.
(build_constraint_graph): Ditto.
(collapse_nodes): Add merge_solutions argument.
Don't merge attributes.
(process_unification_queue): Just use collapse_nodes.
(perform_var_substitution): Update call to collapse_nodes.
(get_constraint_exp_from_ssa_var): Use INCLUDES.
(process_constraint): Fix non-field sensitive handling
Handle includes.
(get_constraint_for): Use INCLUDES.
(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
vars anymore.
(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.
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119502 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-alias.c')
-rw-r--r-- | gcc/tree-ssa-alias.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index 65a8417b9d3..d4f15901510 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -646,15 +646,13 @@ compute_may_aliases (void) not needed anymore. */ setup_pointers_and_addressables (ai); - /* Compute flow-sensitive, points-to based aliasing for all the name - memory tags. Note that this pass needs to be done before flow - insensitive analysis because it uses the points-to information - gathered before to mark call-clobbered symbol tags. */ - compute_flow_sensitive_aliasing (ai); - /* Compute type-based flow-insensitive aliasing for all the type memory tags. */ compute_flow_insensitive_aliasing (ai); + + /* Compute flow-sensitive, points-to based aliasing for all the name + memory tags. */ + compute_flow_sensitive_aliasing (ai); /* Compute call clobbering information. */ compute_call_clobbered (ai); @@ -1121,7 +1119,8 @@ compute_flow_sensitive_aliasing (struct alias_info *ai) EXECUTE_IF_SET_IN_BITMAP (pi->pt_vars, 0, j, bi) { add_may_alias (pi->name_mem_tag, referenced_var (j)); - add_may_alias (v_ann->symbol_mem_tag, referenced_var (j)); + if (j != DECL_UID (v_ann->symbol_mem_tag)) + add_may_alias (v_ann->symbol_mem_tag, referenced_var (j)); } } } |