diff options
author | Richard Biener <rguenther@suse.de> | 2016-05-12 13:05:13 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-05-12 13:05:13 +0000 |
commit | 763baff6f54ec6070e0ec6497363f5116ab4c874 (patch) | |
tree | 84e63fa7e081279f7a68aca414b7f88e4487c667 /gcc/tree-ssa-structalias.c | |
parent | cf48d8c4dc0556d165cd369eb5fa4d77fe823e59 (diff) | |
download | gcc-763baff6f54ec6070e0ec6497363f5116ab4c874.zip gcc-763baff6f54ec6070e0ec6497363f5116ab4c874.tar.gz gcc-763baff6f54ec6070e0ec6497363f5116ab4c874.tar.bz2 |
re PR middle-end/71062 (r235622 and restrict pointers)
2016-05-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/71062
* tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
field.
* tree-ssa-structalias.c (set_uids_in_ptset): Set vars_contains_restrict
if the var is a restrict tag.
* tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
do not disambiguate pointers against it.
(dump_points_to_solution): Re-structure and adjust for new
vars_contains_restrict flag.
* gimple-pretty-print.c (pp_points_to_solution): Likewise.
* gcc.dg/torture/pr71062.c: New testcase.
From-SVN: r236174
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 3956efd..5e3c7d0 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -6254,6 +6254,9 @@ set_uids_in_ptset (bitmap into, bitmap from, struct pt_solution *pt, pt->vars_contains_escaped_heap = vi->is_heap_var; } + if (vi->is_restrict_var) + pt->vars_contains_restrict = true; + if (TREE_CODE (vi->decl) == VAR_DECL || TREE_CODE (vi->decl) == PARM_DECL || TREE_CODE (vi->decl) == RESULT_DECL) @@ -7505,7 +7508,7 @@ make_pass_build_ealias (gcc::context *ctxt) /* IPA PTA solutions for ESCAPED. */ struct pt_solution ipa_escaped_pt - = { true, false, false, false, false, false, false, false, NULL }; + = { true, false, false, false, false, false, false, false, false, NULL }; /* Associate node with varinfo DATA. Worker for cgraph_for_symbol_thunks_and_aliases. */ |