gcc/libgomp/testsuite
Tobias Burnus 948d461954 OpenMP: Add strictly nested API call check [PR102972]
The teams construct only permits omp_get_num_teams and omp_get_team_num
as API call in strictly nested regions - check for it.

Additionally, for Fortran, using DECL_NAME does not show the mangled
name, hence, DECL_ASSEMBLER_NAME had to be used to.

Finally, 'target device(ancestor:1)' wrongly rejected non-API calls
as well.

	PR middle-end/102972
gcc/ChangeLog:

	* omp-low.c (omp_runtime_api_call): Use DECL_ASSEMBLER_NAME to get
	internal Fortran name; new permit_num_teams arg to permit
	omp_get_num_teams and omp_get_team_num.
	(scan_omp_1_stmt): Update call to it, add missing call for
	reverse offload, and check for strictly nested API calls in teams.

gcc/testsuite/ChangeLog:

	* c-c++-common/gomp/target-device-ancestor-3.c: Add non-API
	routine test.
	* gfortran.dg/gomp/order-6.f90: Add missing bind(C).
	* c-c++-common/gomp/teams-3.c: New test.
	* gfortran.dg/gomp/teams-3.f90: New test.
	* gfortran.dg/gomp/teams-4.f90: New test.

libgomp/ChangeLog:
	* testsuite/libgomp.c-c++-common/icv-3.c: Nest API calls inside
	parallel construct.
	* testsuite/libgomp.c-c++-common/icv-4.c: Likewise.
	* testsuite/libgomp.c/target-3.c: Likewise.
	* testsuite/libgomp.c/target-5.c: Likewise.
	* testsuite/libgomp.c/target-6.c: Likewise.
	* testsuite/libgomp.c/target-teams-1.c: Likewise.
	* testsuite/libgomp.c/teams-1.c: Likewise.
	* testsuite/libgomp.c/thread-limit-2.c: Likewise.
	* testsuite/libgomp.c/thread-limit-3.c: Likewise.
	* testsuite/libgomp.c/thread-limit-4.c: Likewise.
	* testsuite/libgomp.c/thread-limit-5.c: Likewise.
	* testsuite/libgomp.fortran/icv-3.f90: Likewise.
	* testsuite/libgomp.fortran/icv-4.f90: Likewise.
	* testsuite/libgomp.fortran/teams1.f90: Likewise.
2021-10-30 23:45:32 +02:00
..
config
lib
libgomp.c OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
libgomp.c-c++-common OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
libgomp.c++ vectorizer: Fix up -fsimd-cost-model= handling 2021-10-12 09:28:10 +02:00
libgomp.fortran OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
libgomp.graphite Remove VRP threader passes in exchange for better threading pre-VRP. 2021-10-29 17:57:27 +02:00
libgomp.oacc-c
libgomp.oacc-c-c++-common libgomp.oacc-c-c++-common/loop-gwv-2.c: Use __builtin_alloca 2021-10-25 20:48:38 +02:00
libgomp.oacc-c++
libgomp.oacc-fortran
libgomp-site-extra.exp.in
libgomp-test-support.exp.in
Makefile.am
Makefile.in