diff mbox

Scan for parallelization of the oacc kernels test-cases in gfortran.dg/goacc (was: [PATCH, 15/16] Add libgomp.oacc-c-c++-common/kernels-*.c)

Message ID 87oaacrmg8.fsf@kepler.schwinge.homeip.net
State New
Headers show

Commit Message

Thomas Schwinge March 18, 2016, 12:37 p.m. UTC
Hi!

On Wed, 9 Mar 2016 10:17:28 +0100, Tom de Vries <Tom_deVries@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)?  (Note
that I had to XFAIL gfortran.dg/goacc/kernels-loop-n.f95.)  OK to commit?

commit f0294eeb30ef285c3930b975ccbc1b6d7052cc03
Author: Thomas Schwinge <thomas@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(+)



Grüße
 Thomas

Comments

Tom de Vries April 5, 2016, 9:12 a.m. UTC | #1
On 18/03/16 13:37, Thomas Schwinge wrote:
> Hi!
>
> On Wed, 9 Mar 2016 10:17:28 +0100, Tom de Vries <Tom_deVries@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 <thomas@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
>
diff mbox

Patch

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" } }