diff options
author | Richard Biener <rguenther@suse.de> | 2015-09-29 13:04:18 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-09-29 13:04:18 +0000 |
commit | e7cbc0960edec3d2ce1edf00b6c536a6f2faca33 (patch) | |
tree | 5013d6531f4e348668278ebcc16763017f224884 /gcc/tree-ssa-alias.h | |
parent | eada851cc9fb2822989d3ef81bb5b4b08dcc81a7 (diff) | |
download | gcc-e7cbc0960edec3d2ce1edf00b6c536a6f2faca33.zip gcc-e7cbc0960edec3d2ce1edf00b6c536a6f2faca33.tar.gz gcc-e7cbc0960edec3d2ce1edf00b6c536a6f2faca33.tar.bz2 |
re PR fortran/67170 (PRE can't hoist out a readonly argument)
2015-09-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/67170
* tree-ssa-alias.h (get_continuation_for_phi): Adjust
the translate function pointer parameter to get the
bool whether to disambiguate only by reference.
(walk_non_aliased_vuses): Likewise.
* tree-ssa-alias.c (maybe_skip_until): Adjust.
(get_continuation_for_phi_1): Likewise.
(get_continuation_for_phi): Likewise.
(walk_non_aliased_vuses): Likewise.
* tree-ssa-sccvn.c (const_parms): New bitmap.
(vn_reference_lookup_3): Adjust for interface change.
Disambiguate parameters pointing to readonly memory.
(free_scc_vn): Free const_parms.
(run_scc_vn): Initialize const_parms from a fn spec attribute.
* gfortran.dg/pr67170.f90: New testcase.
From-SVN: r228244
Diffstat (limited to 'gcc/tree-ssa-alias.h')
-rw-r--r-- | gcc/tree-ssa-alias.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-ssa-alias.h b/gcc/tree-ssa-alias.h index 67d9bcb..f328e24 100644 --- a/gcc/tree-ssa-alias.h +++ b/gcc/tree-ssa-alias.h @@ -118,12 +118,12 @@ extern bool stmt_kills_ref_p (gimple *, tree); extern bool stmt_kills_ref_p (gimple *, ao_ref *); extern tree get_continuation_for_phi (gimple *, ao_ref *, unsigned int *, bitmap *, bool, - void *(*)(ao_ref *, tree, void *, bool), + void *(*)(ao_ref *, tree, void *, bool *), void *); extern void *walk_non_aliased_vuses (ao_ref *, tree, void *(*)(ao_ref *, tree, unsigned int, void *), - void *(*)(ao_ref *, tree, void *, bool), + void *(*)(ao_ref *, tree, void *, bool *), tree (*)(tree), void *); extern unsigned int walk_aliased_vdefs (ao_ref *, tree, |