Message ID | 87oaacrmg8.fsf@kepler.schwinge.homeip.net |
---|---|
State | New |
Headers | show |
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 --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" } }