aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKugan Vivekanandarajah <kuganv@linaro.org>2016-10-17 23:39:55 +0000
committerKugan Vivekanandarajah <kugan@gcc.gnu.org>2016-10-17 23:39:55 +0000
commit7fd4f180b4cca4766001ad06dd21cd3c82181eaa (patch)
treed95015eb946bbd6b518fd07d6ed0f061be225658 /gcc
parent718625ad3a786a3df0405d2e080c211ccad915f4 (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/ipa/vrp4.c3
-rw-r--r--gcc/tree-vrp.c3
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)))
{