diff options
author | Martin Sebor <msebor@redhat.com> | 2022-01-25 14:20:51 -0700 |
---|---|---|
committer | Martin Sebor <msebor@redhat.com> | 2022-01-25 14:22:49 -0700 |
commit | 58ec0964b1d2f2ab197916cd661728f6a7a1736b (patch) | |
tree | 556496226150209b836df2a38b4cc457eab9e86f /gcc/pointer-query.h | |
parent | 5c1f274e3e090ee03bedc22dd7169b28e759974e (diff) | |
download | gcc-58ec0964b1d2f2ab197916cd661728f6a7a1736b.zip gcc-58ec0964b1d2f2ab197916cd661728f6a7a1736b.tar.gz gcc-58ec0964b1d2f2ab197916cd661728f6a7a1736b.tar.bz2 |
Avoid recomputing PHI results after failure (PR104203).
Resolves:
PR tree-optimization/104203 - huge compile-time regression in pointer_query
gcc/ChangeLog:
PR tree-optimization/104203
* gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
TV_WARN_ACCESS.
* pointer-query.cc (access_ref::merge_ref): Change return type.
Convert failure to a conservative success.
(access_ref::get_ref): Adjust to the change above. Short-circuit
PHI evaluation after first failure turned into conservative success.
* pointer-query.h (access_ref::merge_ref): Change return type.
* timevar.def (TV_WARN_ACCESS): New timer variable.
Diffstat (limited to 'gcc/pointer-query.h')
-rw-r--r-- | gcc/pointer-query.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/pointer-query.h b/gcc/pointer-query.h index 7dc965b..dbdcd59 100644 --- a/gcc/pointer-query.h +++ b/gcc/pointer-query.h @@ -67,7 +67,7 @@ struct access_ref gphi *phi () const; /* Merge the result for a pointer with *THIS. */ - bool merge_ref (vec<access_ref> *all_refs, tree, gimple *, int, bool, + void merge_ref (vec<access_ref> *all_refs, tree, gimple *, int, bool, ssa_name_limit_t &, pointer_query &); /* Return the object to which REF refers. */ |