aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorKugan Vivekanandarajah <kuganv@linaro.org>2016-09-20 23:41:01 +0000
committerKugan Vivekanandarajah <kugan@gcc.gnu.org>2016-09-20 23:41:01 +0000
commita03df1d582cef758fb03089a2c0b33cb8b1df6b6 (patch)
tree55bb949e1c68b5bfb5b1acc8411ec489bd6a595f /gcc/tree-vrp.c
parent8bc5448f39ccd26b6f06cd7120f09c2254bac3be (diff)
downloadgcc-a03df1d582cef758fb03089a2c0b33cb8b1df6b6.zip
gcc-a03df1d582cef758fb03089a2c0b33cb8b1df6b6.tar.gz
gcc-a03df1d582cef758fb03089a2c0b33cb8b1df6b6.tar.bz2
Use ipa-vrp result in tree-vrp
gcc/ChangeLog: 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org> * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results. gcc/testsuite/ChangeLog: 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org> * gcc.dg/guality/pr54519-1.c: Add -fno-ipa-vrp. Else constant arguments/compare will be optimized away. * gcc.dg/torture/ftrapv-1.c: Likewise. From-SVN: r240293
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index e779759..3c75a0d 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -687,6 +687,18 @@ get_value_range (const_tree var)
if (POINTER_TYPE_P (TREE_TYPE (sym))
&& nonnull_arg_p (sym))
set_value_range_to_nonnull (vr, TREE_TYPE (sym));
+ else if (INTEGRAL_TYPE_P (TREE_TYPE (sym)))
+ {
+ wide_int min, max;
+ value_range_type 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);
+ }
else
set_value_range_to_varying (vr);
}