diff options
author | Kugan Vivekanandarajah <kuganv@linaro.org> | 2016-10-17 23:39:55 +0000 |
---|---|---|
committer | Kugan Vivekanandarajah <kugan@gcc.gnu.org> | 2016-10-17 23:39:55 +0000 |
commit | 7fd4f180b4cca4766001ad06dd21cd3c82181eaa (patch) | |
tree | d95015eb946bbd6b518fd07d6ed0f061be225658 /gcc | |
parent | 718625ad3a786a3df0405d2e080c211ccad915f4 (diff) | |
download | gcc-7fd4f180b4cca4766001ad06dd21cd3c82181eaa.zip gcc-7fd4f180b4cca4766001ad06dd21cd3c82181eaa.tar.gz gcc-7fd4f180b4cca4766001ad06dd21cd3c82181eaa.tar.bz2 |
Use get_ptr_nonnull in tree-vrp
Use get_ptr_nonnull in tree-vrp
gcc/testsuite/ChangeLog:
2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
* gcc.dg/ipa/vrp4.c: Adjust testcase.
gcc/ChangeLog:
2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
* tree-vrp.c (get_value_range): Check get_ptr_nonnull.
From-SVN: r241289
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/vrp4.c | 3 | ||||
-rw-r--r-- | gcc/tree-vrp.c | 3 |
4 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1c60346..0d3bd89 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org> + * tree-vrp.c (get_value_range): Check get_ptr_nonnull. + +2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org> + * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range for pointer type too. (ipcp_update_vr): set_ptr_nonnull for pointer. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 94048db..b962485 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org> + * gcc.dg/ipa/vrp4.c: Adjust testcase. + +2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org> + * gcc.dg/ipa/vrp4.c: New test. 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org> diff --git a/gcc/testsuite/gcc.dg/ipa/vrp4.c b/gcc/testsuite/gcc.dg/ipa/vrp4.c index d7e1f26..941f80e 100644 --- a/gcc/testsuite/gcc.dg/ipa/vrp4.c +++ b/gcc/testsuite/gcc.dg/ipa/vrp4.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-ipa-cp-details" } */ +/* { dg-options "-O2 -fdump-ipa-cp-details -fdump-tree-vrp1" } */ static __attribute__((noinline, noclone)) int foo (int *p) @@ -25,3 +25,4 @@ int bar (struct st *s) } /* { dg-final { scan-ipa-dump "Setting nonnull for 0" "cp" } } */ +/* { dg-final { scan-tree-dump-times "if" 1 "vrp1" } } */ diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index b11fc64..eb3eebd 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -685,7 +685,8 @@ get_value_range (const_tree var) anti-ranges for pointers. Note that this is only valid with default definitions of PARM_DECLs. */ if (POINTER_TYPE_P (TREE_TYPE (sym)) - && nonnull_arg_p (sym)) + && (nonnull_arg_p (sym) + || get_ptr_nonnull (var))) set_value_range_to_nonnull (vr, TREE_TYPE (sym)); else if (INTEGRAL_TYPE_P (TREE_TYPE (sym))) { |