diff options
author | Richard Biener <rguenth@gcc.gnu.org> | 2019-05-07 11:17:00 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-05-07 11:17:00 +0000 |
commit | 3cf8b3e341b8424d7c34c918406bd37d2feb7407 (patch) | |
tree | c3079ed3fb4d622158479ef6cb1ccfc0355988ec /gcc/tree-ssa-alias.h | |
parent | bca0a3216deff39ec9e4dcf979fff7f313ca6486 (diff) | |
download | gcc-3cf8b3e341b8424d7c34c918406bd37d2feb7407.zip gcc-3cf8b3e341b8424d7c34c918406bd37d2feb7407.tar.gz gcc-3cf8b3e341b8424d7c34c918406bd37d2feb7407.tar.bz2 |
re PR tree-optimization/90316 (large compile time increase in opt / alias stmt walking for Go example)
2019-05-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/90316
* tree-ssa-alias.h (get_continuation_for_phi): Take walking
limit by reference.
(walk_non_aliased_vuses): Take walking limit argument.
* tree-ssa-alias.c (maybe_skip_until): Take limit and abort
walking if it is reached instead of just counting.
(get_continuation_for_phi): Likewise.
(walk_non_aliased_vuses): Likewise, instead of leaving counter
limiting to the callback.
* tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
(vn_reference_lookup_3): Likewise.
(vn_reference_lookup_pieces): Likewise.
(vn_reference_lookup): Likewise.
* tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
* tree-ssa-scopedtables.c (vuse_eq): Adjust.
(avail_exprs_stack::lookup_avail_expr): Likewise.
From-SVN: r270940
Diffstat (limited to 'gcc/tree-ssa-alias.h')
-rw-r--r-- | gcc/tree-ssa-alias.h | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/tree-ssa-alias.h b/gcc/tree-ssa-alias.h index a5293cd..cee8449 100644 --- a/gcc/tree-ssa-alias.h +++ b/gcc/tree-ssa-alias.h @@ -132,15 +132,13 @@ extern bool call_may_clobber_ref_p_1 (gcall *, ao_ref *); 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, + unsigned int &, bitmap *, 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 *), void *(*)(ao_ref *, tree, void *, bool *), - tree (*)(tree), - void *); + tree (*)(tree), unsigned &, void *); extern int walk_aliased_vdefs (ao_ref *, tree, bool (*)(ao_ref *, tree, void *), void *, bitmap *, |