aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range.cc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2021-10-07 10:12:29 -0400
committerAndrew MacLeod <amacleod@redhat.com>2021-10-15 12:00:41 -0400
commit93ac832f1846e4867aa6537f76f510fab8e3e87d (patch)
tree886ff8d895cff2de9887de2a77ad4e48d5d6f324 /gcc/gimple-range.cc
parenta10794eafb151b9274d673dfae93459d437cbe4a (diff)
downloadgcc-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.cc4
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 (")))
{