prefetch-5.c: xfail.
authorJan Hubicka <hubicka@ucw.cz>
Fri, 20 May 2016 12:41:45 +0000 (14:41 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 20 May 2016 12:41:45 +0000 (12:41 +0000)
* gcc.dg/tree-ssa/prefetch-5.c: xfail.
* tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
realistic upper bounds here.

From-SVN: r236508

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/prefetch-5.c
gcc/tree-ssa-loop-niter.c

index 403c01fa9972a811d410fab34f60a6aaf7db7fba..1d5bca7131b01a156fbc4fb696af25b762fa5234 100644 (file)
@@ -1,3 +1,8 @@
+2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
+       realistic upper bounds here.
+
 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/71210
index fe4727a5e3cfc4d2ec179a5d4a6304af2c864e4d..9ddd4f9e682259197031a8c4b7da9576b9136931 100644 (file)
@@ -1,3 +1,7 @@
+2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
+
+       * gcc.dg/tree-ssa/prefetch-5.c: xfail.
+
 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/71210
index f2b1d08d0ecc7caba0c2bf4e654d659b4531a719..fc2c267b178ef2364992c213762dd03566a09919 100644 (file)
@@ -54,5 +54,7 @@ int loop5 (int n, struct tail5 *x)
   return s;
 }
 
-/* { dg-final { scan-tree-dump-times "Issued prefetch" 2 "aprefetch" } } */
-/* { dg-final { scan-tree-dump-times "Not prefetching" 1 "aprefetch" } } */
+/* Until we are able to track likely upper bounds, we can't really work out that
+   small trailing arrays should not be prefetched.  */
+/* { dg-final { scan-tree-dump-times "Issued prefetch" 2 "aprefetch" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Not prefetching" 1 "aprefetch" { xfail *-*-* } } } */
index c61083e7fd3ea5ddd4d67ac65ecb2032aa32af41..5afc9b3fdf0284fe9bdae3631e05730d51bff201 100644 (file)
@@ -3115,7 +3115,6 @@ idx_infer_loop_bounds (tree base, tree *idx, void *dta)
   tree low, high, type, next;
   bool sign, upper = true, at_end = false;
   struct loop *loop = data->loop;
-  bool reliable = true;
 
   if (TREE_CODE (base) != ARRAY_REF)
     return true;
@@ -3187,14 +3186,14 @@ idx_infer_loop_bounds (tree base, tree *idx, void *dta)
       && tree_int_cst_compare (next, high) <= 0)
     return true;
 
-  /* If access is not executed on every iteration, we must ensure that overlow may
-     not make the access valid later.  */
+  /* If access is not executed on every iteration, we must ensure that overlow
+     may not make the access valid later.  */
   if (!dominated_by_p (CDI_DOMINATORS, loop->latch, gimple_bb (data->stmt))
       && scev_probably_wraps_p (initial_condition_in_loop_num (ev, loop->num),
                                step, data->stmt, loop, true))
-    reliable = false;
+    upper = false;
 
-  record_nonwrapping_iv (loop, init, step, data->stmt, low, high, reliable, upper);
+  record_nonwrapping_iv (loop, init, step, data->stmt, low, high, false, upper);
   return true;
 }