diff options
author | Kugan Vivekanandarajah <kuganv@linaro.org> | 2016-09-20 23:41:01 +0000 |
---|---|---|
committer | Kugan Vivekanandarajah <kugan@gcc.gnu.org> | 2016-09-20 23:41:01 +0000 |
commit | a03df1d582cef758fb03089a2c0b33cb8b1df6b6 (patch) | |
tree | 55bb949e1c68b5bfb5b1acc8411ec489bd6a595f /gcc/tree-vrp.c | |
parent | 8bc5448f39ccd26b6f06cd7120f09c2254bac3be (diff) | |
download | gcc-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.c | 12 |
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); } |