diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2021-10-07 10:12:29 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2021-10-15 12:00:41 -0400 |
commit | 93ac832f1846e4867aa6537f76f510fab8e3e87d (patch) | |
tree | 886ff8d895cff2de9887de2a77ad4e48d5d6f324 /gcc/gimple-range.cc | |
parent | a10794eafb151b9274d673dfae93459d437cbe4a (diff) | |
download | gcc-93ac832f1846e4867aa6537f76f510fab8e3e87d.zip gcc-93ac832f1846e4867aa6537f76f510fab8e3e87d.tar.gz gcc-93ac832f1846e4867aa6537f76f510fab8e3e87d.tar.bz2 |
Ranger : Do not process abnormal ssa-names.
* gimple-range-fold.h (gimple_range_ssa_p): Don't process names
that occur in abnormal phis.
* gimple-range.cc (gimple_ranger::range_on_edge): Return false for
abnormal and EH edges.
* gimple-ssa-evrp.c (rvrp_folder::value_of_expr): Ditto.
(rvrp_folder::value_on_edge): Ditto.
(rvrp_folder::value_of_stmt): Ditto.
(hybrid_folder::value_of_expr): Ditto for ranger queries.
(hybrid_folder::value_on_edge): Ditto.
(hybrid_folder::value_of_stmt): Ditto.
* value-query.cc (gimple_range_global): Always return a range if
the type is supported.
Diffstat (limited to 'gcc/gimple-range.cc')
-rw-r--r-- | gcc/gimple-range.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc index 6eb3f71..85ef974 100644 --- a/gcc/gimple-range.cc +++ b/gcc/gimple-range.cc @@ -180,6 +180,10 @@ gimple_ranger::range_on_edge (irange &r, edge e, tree name) int_range_max edge_range; gcc_checking_assert (irange::supports_type_p (TREE_TYPE (name))); + // Do not process values along abnormal or EH edges. + if (e->flags & (EDGE_ABNORMAL|EDGE_EH)) + return false; + unsigned idx; if ((idx = tracer.header ("range_on_edge ("))) { |