]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc/
authorienkovich <ienkovich@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 8 Dec 2015 07:16:04 +0000 (07:16 +0000)
committerienkovich <ienkovich@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 8 Dec 2015 07:16:04 +0000 (07:16 +0000)
PR tree-optimization/68766
* tree-vectorizer.c (vectorize_loops): Check for
if-converted loops when debug counters are used.

gcc/testsuite/

PR tree-optimization/68766
* gcc.dg/pr68766.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231395 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr68766.c [new file with mode: 0644]
gcc/tree-vectorizer.c

index 858d2b8ffa0ab0d5fc80164a80c691a37c4d43cd..de4cdef459efc18e66664a686f721ec7aca832a4 100644 (file)
@@ -1,3 +1,9 @@
+2015-12-08  Ilya Enkovich  <enkovich.gnu@gmail.com>
+
+       PR tree-optimization/68766
+       * tree-vectorizer.c (vectorize_loops): Check for
+       if-converted loops when debug counters are used.
+
 2015-12-07  DJ Delorie  <dj@redhat.com>
 
        * config/rl78/constraints.md (Wfr): Change to be a non-memory
index fec47e137fb80f3dd690fa4cfde080a68f7d4123..7feb510e1d4deda059a5d09e1fd749b313582e5a 100644 (file)
@@ -1,3 +1,8 @@
+2015-12-08  Ilya Enkovich  <enkovich.gnu@gmail.com>
+
+       PR tree-optimization/68766
+       * gcc.dg/pr68766.c: New test.
+
 2015-12-07  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc.target/sparc/struct-ret-check.c: Rename to...
diff --git a/gcc/testsuite/gcc.dg/pr68766.c b/gcc/testsuite/gcc.dg/pr68766.c
new file mode 100644 (file)
index 0000000..a0d549b
--- /dev/null
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-vectorize -fdbg-cnt=vect_loop:1" } */
+/* { dg-additional-options "-mavx2" { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-prune-output "dbg_cnt 'vect_loop' set to 1" } */
+
+int a, b, g, h;
+int c[58];
+int d[58];
+int fn1() {
+  for (; g; g++)
+    if (a)
+      c[g] = b;
+}
+
+int fn2() {
+  fn1();
+  for (; h; h++)
+    d[h] = 0;
+}
index b721c56d62acb4dc5f9ff285752c5d57cd3bb561..c496c4b2f7e7ac334f8a9a8717f79e1a4415500c 100644 (file)
@@ -536,7 +536,13 @@ vectorize_loops (void)
          continue;
 
         if (!dbg_cnt (vect_loop))
-         break;
+         {
+           /* We may miss some if-converted loops due to
+              debug counter.  Set any_ifcvt_loops to visit
+              them at finalization.  */
+           any_ifcvt_loops = true;
+           break;
+         }
 
        gimple *loop_vectorized_call = vect_loop_vectorized_call (loop);
        if (loop_vectorized_call)