diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2018-11-09 09:52:43 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2018-11-09 09:52:43 +0000 |
commit | 5756b6a8b5e309e84ed8f536672aa3a389c3185a (patch) | |
tree | 3f67e7d2a1542e81a6b31416b590e9821d7d4345 /gcc | |
parent | c89af696c372d94688b06618a226ed49235ad212 (diff) | |
download | gcc-5756b6a8b5e309e84ed8f536672aa3a389c3185a.zip gcc-5756b6a8b5e309e84ed8f536672aa3a389c3185a.tar.gz gcc-5756b6a8b5e309e84ed8f536672aa3a389c3185a.tar.bz2 |
vr-values.c (vr_values::get_value_range): Use value_range API instead of piecing together ranges.
* vr-values.c (vr_values::get_value_range): Use value_range API
instead of piecing together ranges.
(vr_values::update_value_range): Same.
From-SVN: r265953
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/vr-values.c | 25 |
2 files changed, 12 insertions, 19 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0389ead..c84b0fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2018-11-08 Aldy Hernandez <aldyh@redhat.com> + * vr-values.c (vr_values::get_value_range): Use value_range API + instead of piecing together ranges. + (vr_values::update_value_range): Same. + +2018-11-08 Aldy Hernandez <aldyh@redhat.com> + * gimple-fold.c (size_must_be_zero_p): Use value_range API instead of performing ad-hoc calculations. * tree-ssanames.c (set_range_info): New overloaded function diff --git a/gcc/vr-values.c b/gcc/vr-values.c index 8c9fd15..4edc5a4 100644 --- a/gcc/vr-values.c +++ b/gcc/vr-values.c @@ -121,15 +121,9 @@ vr_values::get_value_range (const_tree var) set_value_range_to_nonnull (vr, TREE_TYPE (sym)); else if (INTEGRAL_TYPE_P (TREE_TYPE (sym))) { - wide_int min, max; - value_range_kind rtype = get_range_info (var, &min, &max); - if (rtype == VR_RANGE || rtype == VR_ANTI_RANGE) - set_value_range (vr, rtype, - wide_int_to_tree (TREE_TYPE (var), min), - wide_int_to_tree (TREE_TYPE (var), max), - NULL); - else - set_value_range_to_varying (vr); + get_range_info (var, *vr); + if (vr->undefined_p ()) + vr->set_varying (); } else set_value_range_to_varying (vr); @@ -178,17 +172,10 @@ vr_values::update_value_range (const_tree var, value_range *new_vr) factor that in. */ if (INTEGRAL_TYPE_P (TREE_TYPE (var))) { - wide_int min, max; - value_range_kind rtype = get_range_info (var, &min, &max); + value_range nr; + value_range_kind rtype = get_range_info (var, nr); if (rtype == VR_RANGE || rtype == VR_ANTI_RANGE) - { - tree nr_min, nr_max; - nr_min = wide_int_to_tree (TREE_TYPE (var), min); - nr_max = wide_int_to_tree (TREE_TYPE (var), max); - value_range nr; - nr.set_and_canonicalize (rtype, nr_min, nr_max, NULL); - new_vr->intersect (&nr); - } + new_vr->intersect (&nr); } /* Update the value range, if necessary. */ |