diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2021-05-26 08:53:07 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2021-06-03 17:47:54 +0200 |
commit | 04affb328c6a7e29427287c5192da38864f0dbca (patch) | |
tree | 7fc6ce9c8a100f5e9ab6ae297e52d3ebbfcf93c6 /gcc/tree-affine.c | |
parent | caa60c12715dd9b0cbb550a45e5878214a10a2fe (diff) | |
download | gcc-04affb328c6a7e29427287c5192da38864f0dbca.zip gcc-04affb328c6a7e29427287c5192da38864f0dbca.tar.gz gcc-04affb328c6a7e29427287c5192da38864f0dbca.tar.bz2 |
Replace uses of determine_value_range with range_of_expr.
The expression evaluator changes to the range_query API provide
everything determine_value_range does. This patch replaces all uses
with calls into the range_query API.
gcc/ChangeLog:
* calls.c (get_size_range): Use range_of_expr instead of
determine_value_range.
* tree-affine.c (expr_to_aff_combination): Same.
* tree-data-ref.c (split_constant_offset): Same.
* tree-vrp.c (determine_value_range_1): Remove.
(determine_value_range): Remove.
* tree-vrp.h (determine_value_range): Remove.
Diffstat (limited to 'gcc/tree-affine.c')
-rw-r--r-- | gcc/tree-affine.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c index b273adb..a65719d 100644 --- a/gcc/tree-affine.c +++ b/gcc/tree-affine.c @@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see #include "gimplify.h" #include "dumpfile.h" #include "cfgexpand.h" +#include "value-query.h" /* Extends CST as appropriate for the affine combinations COMB. */ @@ -345,11 +346,15 @@ expr_to_aff_combination (aff_tree *comb, tree_code code, tree type, for below case: (T1)(X *+- CST) -> (T1)X *+- (T1)CST if X *+- CST doesn't overflow by range information. */ + value_range vr; if (TYPE_UNSIGNED (itype) && TYPE_OVERFLOW_WRAPS (itype) && TREE_CODE (op1) == INTEGER_CST - && determine_value_range (op0, &minv, &maxv) == VR_RANGE) + && get_range_query (cfun)->range_of_expr (vr, op0) + && vr.kind () == VR_RANGE) { + wide_int minv = vr.lower_bound (); + wide_int maxv = vr.upper_bound (); wi::overflow_type overflow = wi::OVF_NONE; signop sign = UNSIGNED; if (icode == PLUS_EXPR) |