diff options
author | Richard Guenther <rguenther@suse.de> | 2008-06-12 10:21:45 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2008-06-12 10:21:45 +0000 |
commit | b377855627f22cdef5712621e89e68048a94a164 (patch) | |
tree | e7f6dd778d69424ba44e89344260ba54c29fac8c /gcc/tree-ssa.c | |
parent | 3fd29fa912911b3db52046ef0d44144dd0e043ee (diff) | |
download | gcc-b377855627f22cdef5712621e89e68048a94a164.zip gcc-b377855627f22cdef5712621e89e68048a94a164.tar.gz gcc-b377855627f22cdef5712621e89e68048a94a164.tar.bz2 |
re PR tree-optimization/36345 (TBAA-pruning of points-to sets ineffective)
2008-06-12 Richard Guenther <rguenther@suse.de>
PR tree-optimization/36345
* tree-flow.h (struct ptr_info_def): Align escape_mask,
add memory_tag_needed flag.
(may_alias_p): Declare.
* tree-ssa-alias.c (may_alias_p): Export.
(set_initial_properties): Use memory_tag_needed flag.
(update_reference_counts): Likewise.
(reset_alias_info): Reset memory_tag_needed flag.
(create_name_tags): Check memory_tag_needed flag.
(dump_points_to_info_for): Dump it.
* tree-ssa-structalias.c (struct variable_info): Remove
directly_dereferenced flag.
(new_var_info): Do not initialize it.
(process_constraint_1): Do not set it.
(update_alias_info): Set is_dereferenced flag.
(set_uids_in_ptset): Use may_alias_p.
(set_used_smts): Check memory_tag_needed flag.
(find_what_p_points_to): Likewise. Pass is_dereferenced flag.
* tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
memory_tag_needed flag.
* tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
from broken design.
* gcc.c-torture/execute/20020619-1.c: Remove broken part of
the testcase.
From-SVN: r136695
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 8e6ea4c..52b17d4 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -559,7 +559,7 @@ verify_flow_sensitive_alias_info (void) continue; ann = var_ann (var); - if (pi->is_dereferenced && !pi->name_mem_tag && !ann->symbol_mem_tag) + if (pi->memory_tag_needed && !pi->name_mem_tag && !ann->symbol_mem_tag) { error ("dereferenced pointers should have a name or a symbol tag"); goto err; |