aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.h
diff options
context:
space:
mode:
authorRichard Biener <rguenth@gcc.gnu.org>2019-05-07 11:17:00 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-05-07 11:17:00 +0000
commit3cf8b3e341b8424d7c34c918406bd37d2feb7407 (patch)
treec3079ed3fb4d622158479ef6cb1ccfc0355988ec /gcc/tree-ssa-alias.h
parentbca0a3216deff39ec9e4dcf979fff7f313ca6486 (diff)
downloadgcc-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.h8
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 *,