Handle oacc kernels with other directives
commit7109b39defb87bc839983339c9fb4cdcb3891238
authortschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Apr 2015 20:32:01 +0000 (21 20:32 +0000)
committertschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Apr 2015 20:32:01 +0000 (21 20:32 +0000)
treeeb6097013ac61f227a479f27aed537d963f205c8
parentabaf92b2db3c0799edac63cfb846af2dbde47423
Handle oacc kernels with other directives

Mark directives with fn spec attributes to prevent them from acting as
optimization barrier.

gcc/
* builtin-attrs.def (DOT_DOT_r_r_r): Add DEF_ATTR_FOR_STRING.
(ATTR_FNSPEC_DOT_DOT_r_r_r_NOTHROW_LIST): Add DEF_ATTR_TREE_LIST.
* omp-builtins.def (BUILT_IN_GOACC_DATA_START)
(BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Use
DEF_GOACC_BUILTIN_FNSPEC instead of DEF_GOACC_BUILTIN.

gcc/testsuite/
* c-c++-common/goacc/kernels-loop-data-2.c: New test.
* c-c++-common/goacc/kernels-loop-data-enter-exit-2.c: New test.
* c-c++-common/goacc/kernels-loop-data-enter-exit.c: New test.
* c-c++-common/goacc/kernels-loop-data-update.c: New test.
* c-c++-common/goacc/kernels-loop-data.c: New test.
* c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c: New
test.
* gfortran.dg/goacc/kernels-loop-data-2.f95: New test.
* gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95: New test.
* gfortran.dg/goacc/kernels-loop-data-enter-exit.f95: New test.
* gfortran.dg/goacc/kernels-loop-data-update.f95: New test.
* gfortran.dg/goacc/kernels-loop-data.f95: New test.
* gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95: New
test.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: New
test.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
New test.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
New test.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c:
New test.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: New
test.
* testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
New test.
* testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: New
test.
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
New test.
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95:
New test.
* testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: New
test.
* testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: New test.
* testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@222288 138bc75d-0d04-0410-961f-82ee72b054a4
29 files changed:
gcc/ChangeLog.gomp
gcc/builtin-attrs.def
gcc/omp-builtins.def
gcc/testsuite/ChangeLog.gomp
gcc/testsuite/c-c++-common/goacc/kernels-loop-data-2.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/kernels-loop-data-enter-exit-2.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/kernels-loop-data-enter-exit.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/kernels-loop-data-update.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/kernels-loop-data.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-2.f95 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-enter-exit.f95 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data-update.f95 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/kernels-loop-data.f95 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95 [new file with mode: 0644]
libgomp/ChangeLog.gomp
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95 [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95 [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95 [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95 [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data.f95 [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95 [new file with mode: 0644]