On 18/03/16 13:37, Thomas Schwinge wrote:
Hi!
On Wed, 9 Mar 2016 10:17:28 +0100, Tom de Vries <tom_devr...@mentor.com> wrote:
[Should have cited
<http://news.gmane.org/find-root.php?message_id=%3C5640FD6A.3080807%40mentor.com%3E>
instead of the C/C++ tests]
Retested on current trunk.
Committed, minus the kernels-parallel-loop-data-enter-exit.f95 test.
Is there a reason why you omitted the following tree scanning tests (as
done for C/C++, and also present for Fortran on gomp-4_0-branch)?
I think that was a question of trying to avoid interaction between:
- the tests I was committing and
- removing the dependency of openacc kernels on
-ftree-parallelize-loops=<n>
which were sort of happening in parallel.
(Note
that I had to XFAIL gfortran.dg/goacc/kernels-loop-n.f95.)
Right. I remember looking into this before, and classified it as the
openacc version of PR68787 - fipa-pta to interpret restrict.
Now that we'll have an xfail for it, I've filed it as PR70545 -
'[openacc] gfortran.dg/goacc/kernels-loop-n.f95 not parallelized'.
OK to commit?
Yes please.
Thanks,
- Tom
commit f0294eeb30ef285c3930b975ccbc1b6d7052cc03
Author: Thomas Schwinge <tho...@codesourcery.com>
Date: Fri Mar 18 12:52:37 2016 +0100
Scan for parallelization of the oacc kernels test-cases in
gfortran.dg/goacc
gcc/testsuite/
* gfortran.dg/goacc/kernels-loop-2.f95: Scan for parallelization.
* gfortran.dg/goacc/kernels-loop-data-2.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-enter-exit.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-update.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data.f95: Likewise.
* gfortran.dg/goacc/kernels-loop.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-n.f95: Likewise, XFAILed.
---
gcc/testsuite/gfortran.dg/goacc/kernels-loop-2.f95 | 2 ++
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-2.f95 | 1 +
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95 | 2 ++
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit.f95 | 2 ++
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-update.f95 | 2 ++
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data.f95 | 2 ++
gcc/testsuite/gfortran.dg/goacc/kernels-loop-n.f95 | 7 +++++++
gcc/testsuite/gfortran.dg/goacc/kernels-loop.f95 | 2 ++
8 files changed, 20 insertions(+)
diff --git gcc/testsuite/gfortran.dg/goacc/kernels-loop-2.f95
gcc/testsuite/gfortran.dg/goacc/kernels-loop-2.f95
index 5cc2e8b..865f7a6 100644
--- gcc/testsuite/gfortran.dg/goacc/kernels-loop-2.f95
+++ gcc/testsuite/gfortran.dg/goacc/kernels-loop-2.f95
@@ -40,3 +40,5 @@ end program main
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.0 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.1 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.2 " 1
"optimized" } }
+
+! { dg-final { scan-tree-dump-times "(?n)oacc function \\(0," 3 "parloops1" } }
diff --git gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-2.f95
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-2.f95
index d1bfc70..c9f3a62 100644
--- gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-2.f95
+++ gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-2.f95
@@ -47,3 +47,4 @@ end program main
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.1 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.2 " 1
"optimized" } }
+! { dg-final { scan-tree-dump-times "(?n)oacc function \\(0," 3 "parloops1" } }
diff --git gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95
index feac7b2..3361607 100644
--- gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95
+++ gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95
@@ -46,3 +46,5 @@ end program main
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.0 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.1 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.2 " 1
"optimized" } }
+
+! { dg-final { scan-tree-dump-times "(?n)oacc function \\(0," 3 "parloops1" } }
diff --git gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit.f95
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit.f95
index 632983f..5ba56fb 100644
--- gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit.f95
+++ gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit.f95
@@ -44,3 +44,5 @@ end program main
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.0 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.1 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.2 " 1
"optimized" } }
+
+! { dg-final { scan-tree-dump-times "(?n)oacc function \\(0," 3 "parloops1" } }
diff --git gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-update.f95
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-update.f95
index 41b0d96..a622a96 100644
--- gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-update.f95
+++ gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-update.f95
@@ -43,3 +43,5 @@ end program main
! Check that the loop has been split off into a function.
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.0 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.1 " 1
"optimized" } }
+
+! { dg-final { scan-tree-dump-times "(?n)oacc function \\(0," 2 "parloops1" } }
diff --git gcc/testsuite/gfortran.dg/goacc/kernels-loop-data.f95
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data.f95
index 3de2057..4ec2ac3 100644
--- gcc/testsuite/gfortran.dg/goacc/kernels-loop-data.f95
+++ gcc/testsuite/gfortran.dg/goacc/kernels-loop-data.f95
@@ -44,3 +44,5 @@ end program main
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.0 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.1 " 1
"optimized" } }
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.2 " 1
"optimized" } }
+
+! { dg-final { scan-tree-dump-times "(?n)oacc function \\(0," 3 "parloops1" } }
diff --git gcc/testsuite/gfortran.dg/goacc/kernels-loop-n.f95
gcc/testsuite/gfortran.dg/goacc/kernels-loop-n.f95
index 21e2e86..90439ca 100644
--- gcc/testsuite/gfortran.dg/goacc/kernels-loop-n.f95
+++ gcc/testsuite/gfortran.dg/goacc/kernels-loop-n.f95
@@ -36,3 +36,10 @@ end module test
! Check that the loop has been split off into a function.
! { dg-final { scan-tree-dump-times "(?n);; Function __test_MOD_foo._omp_fn.0 " 1
"optimized" } }
+
+! TODO, *.parloops1:
+! SUCCESS: may be parallelized
+! Stmt *_9 = 0;
+! conflicts with entry/exit stmt: _7 = *_6;
+! entry/exit not ok: FAILED
+! { dg-final { scan-tree-dump-times "(?n)oacc function \\(0," 1 "parloops1" {
xfail *-*-* } } }
diff --git gcc/testsuite/gfortran.dg/goacc/kernels-loop.f95
gcc/testsuite/gfortran.dg/goacc/kernels-loop.f95
index f7e14b4..ae2cac6 100644
--- gcc/testsuite/gfortran.dg/goacc/kernels-loop.f95
+++ gcc/testsuite/gfortran.dg/goacc/kernels-loop.f95
@@ -34,3 +34,5 @@ end program main
! Check that the loop has been split off into a function.
! { dg-final { scan-tree-dump-times "(?n);; Function MAIN__._omp_fn.0 " 1
"optimized" } }
+
+! { dg-final { scan-tree-dump-times "(?n)oacc function \\(0," 1 "parloops1" } }
Grüße
Thomas