Use get_ptr_nonnull in tree-vrp
authorKugan Vivekanandarajah <kuganv@linaro.org>
Mon, 17 Oct 2016 23:39:55 +0000 (23:39 +0000)
committerKugan Vivekanandarajah <kugan@gcc.gnu.org>
Mon, 17 Oct 2016 23:39:55 +0000 (23:39 +0000)
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

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/ipa/vrp4.c
gcc/tree-vrp.c

index 1c6034685254d9845581fa0e61479a20e097bba0..0d3bd896aaceef02598d0bface0e55d3a7f84a2a 100644 (file)
@@ -1,3 +1,7 @@
+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
index 94048db18e5790ff89b770e533f170b2cadac9d2..b962485a50adbb1b030929c6a04e3fe0bb49e4bc 100644 (file)
@@ -1,3 +1,7 @@
+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.
index d7e1f26d23bcbdb1d26967b9adcc9fdfe569047a..941f80e00b23e702ee63c8006e6c9fb28a1c106e 100644 (file)
@@ -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" } } */
index b11fc64dd8da641304bde9137b7194035c0d6f07..eb3eebd44d5c38f7e6760df6fe5c70b5e4a1119d 100644 (file)
@@ -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)))
            {