]> git.ipfire.org Git - people/ms/gcc.git/commit
Annotate inner loops in "acc kernels loop" directives (Fortran).
authorSandra Loosemore <sandra@codesourcery.com>
Thu, 20 Aug 2020 02:24:43 +0000 (19:24 -0700)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Tue, 21 Jun 2022 13:11:27 +0000 (14:11 +0100)
commit8fa50b8d9ad1d5cb8cd911ef7566d7a95dd8656c
tree6435ac0f55e9230a4569811c60125c9ce91e73de
parentcdd128b106cd91bf4764e91bdde5b7a8220fd4d0
Annotate inner loops in "acc kernels loop" directives (Fortran).

Normally explicit loop directives in a kernels region inhibit
automatic annotation of other loops in the same nest, on the theory
that users have indicated they want manual control over that section
of code.  However there seems to be an expectation in user code that
the combined "kernels loop" directive should still allow annotation of
inner loops.  This patch implements this behavior in Fortran.

2020-08-19  Sandra Loosemore  <sandra@codesourcery.com>

gcc/fortran/
* openmp.cc (annotate_do_loops_in_kernels): Handle
EXEC_OACC_KERNELS_LOOP separately to permit annotation of inner
loops in a combined "acc kernels loop" directive.

gcc/testsuite/
* gfortran.dg/goacc/kernels-loop-annotation-18.f95: New.
* gfortran.dg/goacc/kernels-loop-annotation-19.f95: New.
* gfortran.dg/goacc/combined-directives.f90: Adjust expected
patterns.
* gfortran.dg/goacc/private-explicit-kernels-1.f95: Likewise.
* gfortran.dg/goacc/private-predetermined-kernels-1.f95:
Likewise.
gcc/fortran/ChangeLog.omp
gcc/fortran/openmp.cc
gcc/testsuite/ChangeLog.omp
gcc/testsuite/gfortran.dg/goacc/combined-directives.f90
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-18.f95 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-19.f95 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/private-explicit-kernels-1.f95
gcc/testsuite/gfortran.dg/goacc/private-predetermined-kernels-1.f95