gcc/libgomp/testsuite/libgomp.fortran
Tom de Vries 5ed77fb3ed [libgomp, nvptx] Fix hang in gomp_team_barrier_wait_end
Consider the following omp fragment.
...
  #pragma omp target
  #pragma omp parallel num_threads (2)
  #pragma omp task
    ;
...

This hangs at -O0 for nvptx.

Investigating the behaviour gives us the following trace of events:
- both threads execute GOMP_task, where they:
  - deposit a task, and
  - execute gomp_team_barrier_wake
- thread 1 executes gomp_team_barrier_wait_end and, not being the last thread,
  proceeds to wait at the team barrier
- thread 0 executes gomp_team_barrier_wait_end and, being the last thread, it
  calls gomp_barrier_handle_tasks, where it:
  - executes both tasks and marks the team barrier done
  - executes a gomp_team_barrier_wake which wakes up thread 1
- thread 1 exits the team barrier
- thread 0 returns from gomp_barrier_handle_tasks and goes to wait at
  the team barrier.
- thread 0 hangs.

To understand why there is a hang here, it's good to understand how things
are setup for nvptx.  The libgomp/config/nvptx/bar.c implementation is
a copy of the libgomp/config/linux/bar.c implementation, with uses of both
futex_wake and do_wait replaced with uses of ptx insn bar.sync:
...
  if (bar->total > 1)
    asm ("bar.sync 1, %0;" : : "r" (32 * bar->total));
...

The point where thread 0 goes to wait at the team barrier, corresponds in
the linux implementation with a do_wait.  In the linux case, the call to
do_wait doesn't hang, because it's waiting for bar->generation to become
a certain value, and if bar->generation already has that value, it just
proceeds, without any need for coordination with other threads.

In the nvtpx case, the bar.sync waits until thread 1 joins it in the same
logical barrier, which never happens: thread 1 is lingering in the
thread pool at the thread pool barrier (using a different logical barrier),
waiting to join a new team.

The easiest way to fix this is to revert to the posix implementation for
bar.{c,h}.  That however falls back on a busy-waiting approach, and
does not take advantage of the ptx bar.sync insn.

Instead, we revert to the linux implementation for bar.c,
and implement bar.c local functions futex_wait and futex_wake using the
bar.sync insn.

The bar.sync insn takes an argument specifying how many threads are
participating, and that doesn't play well with the futex syntax where it's
not clear in advance how many threads will be woken up.

This is solved by waking up all waiting threads each time a futex_wait or
futex_wake happens, and possibly going back to sleep with an updated thread
count.

Tested libgomp on x86_64 with nvptx accelerator.

libgomp/ChangeLog:

2021-04-20  Tom de Vries  <tdevries@suse.de>

	PR target/99555
	* config/nvptx/bar.c (generation_to_barrier): New function, copied
	from config/rtems/bar.c.
	(futex_wait, futex_wake): New function.
	(do_spin, do_wait): New function, copied from config/linux/wait.h.
	(gomp_barrier_wait_end, gomp_barrier_wait_last)
	(gomp_team_barrier_wake, gomp_team_barrier_wait_end):
	(gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): Remove
	and replace with include of config/linux/bar.c.
	* config/nvptx/bar.h (gomp_barrier_t): Add fields waiters and lock.
	(gomp_barrier_init): Init new fields.
	* testsuite/libgomp.c-c++-common/task-detach-6.c: Remove nvptx-specific
	workarounds.
	* testsuite/libgomp.c/pr99555-1.c: Same.
	* testsuite/libgomp.fortran/task-detach-6.f90: Same.
2022-02-22 15:48:03 +01:00
..
appendix-a
examples-4 [libgomp, testsuite] Reduce recursion depth in declare_target-*.f90 2022-02-01 08:13:06 +01:00
affinity1.f90 openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
affinity2.f90
aligned1.f03 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
alloc-1.F90 libgomp: alloc* test fixes [PR102628, PR102668] 2021-10-12 09:30:41 +02:00
alloc-2.F90 libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-3.F libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-4.f90 Fortran/OpenMP: Add memory routines existing for C/C++ 2021-08-18 11:15:47 +02:00
alloc-5.f90 libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-6.f90 openmp: Add omp_aligned_{,c}alloc and omp_{c,re}alloc for Fortran 2021-09-30 14:26:46 +02:00
alloc-7.c openmp: Add omp_aligned_{,c}alloc and omp_{c,re}alloc for Fortran 2021-09-30 14:26:46 +02:00
alloc-7.f90 Add/update libgomp.fortran/alloc-*.f90 2021-10-01 20:03:25 +02:00
alloc-8.f90 Add/update libgomp.fortran/alloc-*.f90 2021-10-01 20:03:25 +02:00
alloc-9.f90 libgomp.fortran/alloc-*.f90: Add missing dg-prune-output 2021-09-30 14:44:06 +02:00
alloc-10.f90 Add/update libgomp.fortran/alloc-*.f90 2021-10-01 20:03:25 +02:00
alloc-11.f90 libgomp: alloc* test fixes [PR102628, PR102668] 2021-10-12 09:30:41 +02:00
alloc-12.f90 libgomp: Add tests for omp_atv_serialized and deprecate omp_atv_sequential. 2021-10-11 04:34:51 -07:00
alloc-comp-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
alloc-comp-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
alloc-comp-3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable2.f90 libgomp/testsuite - use unique numbers with Fortran's 'stop' 2019-11-04 11:01:22 +01:00
allocatable3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable6.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable7.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable8.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable9.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable10.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable11.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocatable12.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
allocate-1.c libgomp.fortran/allocate-1.f90: Minor cleanup 2022-02-04 14:51:01 +01:00
allocate-1.f90 libgomp.fortran/allocate-1.f90: Fix minor cleanup 2022-02-04 17:31:21 +01:00
associate1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
associate2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
associate3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
async_io_1.f90
async_io_2.f90
async_io_3.f90
async_io_4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
async_io_5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
async_io_6.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
async_io_7.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
async_io_8.f90
async_io_9.f90 Fixes a hang on an invalid ID in a WAIT statement. 2020-05-23 19:01:43 +02:00
atomic1.f90 re PR fortran/92899 ([OpenMP] ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:3769) 2019-12-12 00:58:04 +01:00
atomic-19.f90 Fortran: Handle compare in OpenMP atomic 2021-12-13 12:38:26 +01:00
cancel-do-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
cancel-do-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
cancel-parallel-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
cancel-parallel-3.f90
cancel-sections-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
cancel-taskgroup-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
character1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
character2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
class-firstprivate-1.f90 OpenMP/Fortran: Handle polymorphic scalars in data-sharing FIRSTPRIVATE [PR86470] 2021-05-24 16:50:51 +02:00
class-firstprivate-2.f90 OpenMP/Fortran: Handle polymorphic scalars in data-sharing FIRSTPRIVATE [PR86470] 2021-05-24 16:50:51 +02:00
class-firstprivate-3.f90 OpenMP/Fortran: Handle polymorphic scalars in data-sharing FIRSTPRIVATE [PR86470] 2021-05-24 16:50:51 +02:00
close_errors_1.f90 Add early return for invalid STATUS for close. 2020-05-14 18:33:24 +02:00
collapse1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
collapse2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
collapse3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
collapse4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
condinc1.f
condinc1.inc
condinc2.f
condinc3.f90
condinc4.f90
crayptr1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
crayptr2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
crayptr3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
critical-hint-1.f90 critical-hint-*.{c,f90}: Move from gcc/testsuite to libgomp/testsuite 2020-07-22 12:14:22 +02:00
critical-hint-2.f90 critical-hint-*.{c,f90}: Move from gcc/testsuite to libgomp/testsuite 2020-07-22 12:14:22 +02:00
declare-simd-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
declare-simd-2.f90
declare-simd-3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
declare-simd-4.f90
declare-target-1.f90
declare-target-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
declare-target-3.f90 OpenMP: Add implicit declare target for nested procedures 2020-09-30 14:59:27 +02:00
declare-variant-1.f90 openmp, fortran: Add support for OpenMP declare variant directive in Fortran 2021-10-14 09:16:36 -07:00
defaultmap-8.f90 libgomp.fortran/defaultmap-8.f90: Fix non-shared memory handling 2021-06-29 15:50:23 +02:00
depend-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
depend-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
depend-3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
depend-4.f90 Fortran/OpenMP: Fix depend-clause handling 2022-02-15 12:26:48 +01:00
depend-iterator-2.f90 OpenMP: Add iterator support to Fortran's depend; add affinity clause 2021-05-28 10:46:23 +02:00
depobj-1.f90 OpenMP/Fortran - fix pasto + testcase in depobj [PR100397] 2021-05-04 09:22:36 +02:00
display-affinity-1.f90
do1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
do2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
do_concurrent_5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
doacross1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
doacross2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
doacross3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
dummy-procs-1.f90 Fortran/OpenMP: Fix optional dummy procedures [PR99171] 2021-02-22 13:20:26 +01:00
error-1.f90 libgomp.*/error-1.{c,f90}: Fix dg-output newline pattern 2021-09-03 15:27:00 +02:00
fortran.exp Fortran: Improve -Wmissing-include-dirs warnings [PR55534] 2021-09-22 20:58:35 +02:00
icv-3.f90 OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
icv-4.f90 OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
is_device_ptr-1.f90 OpenMP/Fortran: Fixes for {use,is}_device_ptr 2021-01-19 11:58:21 +01:00
jacobi.f libgomp – spelling fixes, incl. omp_lib.h.in 2019-12-11 12:45:49 +01:00
lastprivate1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
lastprivate2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
lastprivate-conditional-10.f90 Fortran: Fix OpenMP's 'if(simd:' etc. conditions 2020-08-20 13:33:40 +02:00
lib1.f90 openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
lib2.f openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
lib3.f
lib4.f90 openmp: Add support for the omp_get_supported_active_levels runtime library routine 2020-10-13 13:21:02 -07:00
lock-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
lock-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
map-alloc-ptr-1.f90 OpenMP/Fortran: Fix (re)mapping of allocatable/pointer arrays [PR96668] 2020-09-15 09:24:47 +02:00
map-alloc-ptr-2.f90 OpenMP/Fortran: Fix (re)mapping of allocatable/pointer arrays [PR96668] 2020-09-15 09:24:47 +02:00
masked-1.f90 Fortran/OpenMP: Add support for OpenMP 5.1 masked construct 2021-08-16 09:26:26 +02:00
my-usleep.c Add libgomp.fortran/order-reproducible-*.f90 2021-10-02 11:29:35 +02:00
nested1.f90 openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
nestedfn1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
nestedfn2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
nestedfn3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
nestedfn4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
nestedfn5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_atomic1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_atomic2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_atomic3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_atomic4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_atomic5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_cond1.f libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_cond2.f libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_cond3.F90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_cond4.F90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_hello.f
omp_orphan.f
omp_parse1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_parse2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_parse3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_parse4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
omp_reduction.f
omp_workshare1.f
omp_workshare2.f
on_device_arch.c libgomp: Fix on_device_arch.c aux-file handling [PR99555] 2021-03-29 10:40:38 +02:00
openmp_version-1.f libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
openmp_version-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
optional-bind-c.f90 Fortran: Fix Bind(C) Array-Descriptor Conversion 2021-10-18 10:29:30 +02:00
optional-map.f90 Fortran] OpenMP/OpenACC – fix more issues with OPTIONAL 2020-01-03 13:56:46 +01:00
order-reproducible-1.f90 Add libgomp.fortran/order-reproducible-*.f90 2021-10-02 11:29:35 +02:00
order-reproducible-2.f90 Add libgomp.fortran/order-reproducible-*.f90 2021-10-02 11:29:35 +02:00
parallel-master.f90 Fortran/OpenMP: Support 'omp parallel master' 2021-05-14 19:21:47 +02:00
parloops-exit-first-loop-alt-2.f95 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
parloops-exit-first-loop-alt.f95 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pointer1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pointer2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr25162.f
pr25219.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr27395-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr27395-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr27416-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr27916-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr27916-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr28390.f libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr29629.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr32359.f90
pr32550.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr33880.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr34020.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr35130.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr42162.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr46753.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr48894.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr49792-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr49792-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr63938-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr63938-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr65597.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr66199-1.f90 libgomp - remove dg-run if dg-options O2 is used 2019-11-04 14:18:50 +01:00
pr66199-2.f90 libgomp - remove dg-run if dg-options O2 is used 2019-11-04 14:18:50 +01:00
pr66199-3.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-4.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-5.f90 libgomp.fortran/pr66199-5.f90: Make stop codes unique 2020-09-22 19:16:34 +02:00
pr66199-6.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-7.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-8.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66199-9.f90 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +02:00
pr66680.f90
pr71014.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr71734-1.f90
pr71734-2.f90
pr81304.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr81841.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr84418-1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr84418-2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
pr88463-1.f90
pr88463-2.f90
pr90030.f90 fortran: OpenMP/OpenACC array mapping alignment fix (PR90030) 2021-12-02 18:27:16 +08:00
pr90779.f90
pr93553.f90 openmp: Handle clauses with gimple sequences in convert_nonlocal_omp_clauses properly 2020-08-08 11:10:30 +02:00
pr95654.f90 [omp, ftracer] Don't duplicate blocks in SIMT region 2020-10-05 08:53:11 +02:00
pr100981-2.f90 testsuite: Fix up libgomp.fortran/pr100981-2.f90 testcase [PR100981] 2021-06-10 09:31:06 +02:00
procptr1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
recursion1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
reduction1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
reduction2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
reduction3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
reduction4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
reduction5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
reduction6.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
refcount-1.f90 Fortran/OpenMP: Add memory routines existing for C/C++ 2021-08-18 11:15:47 +02:00
reference1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
reference2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
retval1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
retval2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
scan-1.f90 Fortran: Add 'omp scan' support of OpenMP 5.0 2020-12-08 16:54:22 +01:00
scope-1.f90 Fortran: Implement OpenMP 5.1 scope construct 2021-08-17 15:51:03 +02:00
sharing1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
sharing2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
simd1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
simd2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
simd3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
simd4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
simd5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
simd6.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
simd7.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
stack.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
strassen.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
struct-elem-map-1.f90 libgomp.fortran/struct-elem-map-1.f90: Add char kind=4 tests 2020-07-15 12:34:03 +02:00
tabs1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
tabs2.f libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target6.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target7.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target8.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
target9.f90 Torture testing: 'libgomp.fortran/target9.f90' 2019-11-11 09:50:40 +01:00
target10.f90 Improve Intel MIC offloading XFAILing for 'omp_get_device_num' 2022-01-13 13:09:36 +01:00
target-12.f90 Fortran/OpenMP: Add memory routines existing for C/C++ 2021-08-18 11:15:47 +02:00
target-allocatable-1-1.f90
target-allocatable-1-2.f90
target-enter-data-1.f90 Add 'dg-do run' to 'libgomp.fortran/target-enter-data-1.f90' 2020-04-10 15:44:17 +02:00
target-enter-data-2.F90 Add 'dg-do run' to 'libgomp.fortran/target-enter-data-2.F90' 2020-04-20 23:16:40 +02:00
target-has-device-addr-1.f90 C, C++, Fortran, OpenMP: Add 'has_device_addr' clause to 'target' construct. 2022-02-09 23:47:12 -08:00
target-has-device-addr-2.f90 C, C++, Fortran, OpenMP: Add 'has_device_addr' clause to 'target' construct. 2022-02-09 23:47:12 -08:00
target-has-device-addr-3.f90 C, C++, Fortran, OpenMP: Add 'has_device_addr' clause to 'target' construct. 2022-02-09 23:47:12 -08:00
target-has-device-addr-4.f90 C, C++, Fortran, OpenMP: Add 'has_device_addr' clause to 'target' construct. 2022-02-09 23:47:12 -08:00
target-in-reduction-1.f90 openmp: in_reduction support for Fortran 2021-10-20 23:25:02 +08:00
target-in-reduction-2.f90 openmp: in_reduction support for Fortran 2021-10-20 23:25:02 +08:00
target-map-1.f90 [Fortran, OpenMP] Fix allocatable-components check (PR67311) 2020-07-14 12:55:53 +02:00
target-print-1-nvptx.f90 Fix 'libgomp.fortran/target-print-1.f90', 'libgomp.oacc-fortran/print-1.f90' for offload target nvptx 2019-11-27 18:50:55 +01:00
target-print-1.f90 Fix 'libgomp.fortran/target-print-1.f90', 'libgomp.oacc-fortran/print-1.f90' for offload target nvptx 2019-11-27 18:50:55 +01:00
target-simd.f90
target-var.f90 openmp: ensure variables in offload table are streamed out (PRs 94848 + 95551) 2020-06-08 23:24:57 +02:00
task1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
task2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
task3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
task4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
task-detach-1.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-2.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-3.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-4.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-5.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-6.f90 [libgomp, nvptx] Fix hang in gomp_team_barrier_wait_end 2022-02-22 15:48:03 +01:00
task-detach-7.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-8.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-9.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-10.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-11.f90 openmp: Fix intermittent hanging of task-detach-6 libgomp tests [PR98738] 2021-02-25 14:47:11 -08:00
task-detach-12.f90 OpenMP: detach - fix firstprivate handling 2021-05-13 00:14:34 +02:00
task-reduction-16.f90 openmp: Fortran strictly-structured blocks support 2021-10-21 14:57:25 +08:00
taskgroup1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
taskloop1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
taskloop2.f90 libgomp - remove dg-run if dg-options O2 is used 2019-11-04 14:18:50 +01:00
taskloop3.f90 libgomp - remove dg-run if dg-options O2 is used 2019-11-04 14:18:50 +01:00
taskloop4.f90 libgomp - remove dg-run if dg-options O2 is used 2019-11-04 14:18:50 +01:00
taskloop-4-a.f90 Fortran/OpenMP: strict modifier on grainsize/num_tasks 2021-08-23 15:15:30 +02:00
taskloop-4.f90 Fortran/OpenMP: strict modifier on grainsize/num_tasks 2021-08-23 15:15:30 +02:00
taskloop-5-a.f90 Fortran/OpenMP: strict modifier on grainsize/num_tasks 2021-08-23 15:15:30 +02:00
taskloop-5.f90 Fortran/OpenMP: strict modifier on grainsize/num_tasks 2021-08-23 15:15:30 +02:00
teams1.f90 OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
teams2.f90 re PR fortran/92756 (ICE in lower_omp, at omp-low.c:12988) 2019-12-04 09:47:13 +01:00
teams-1.f90 Fortran/openmp: Add support for 2 argument num_teams clause 2021-11-11 17:27:00 +01:00
thread-limit-1.f90 Fortran: openmp: Add support for thread_limit clause on target 2021-11-15 15:44:11 +01:00
threadprivate1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
threadprivate2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
threadprivate3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
threadprivate4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr6.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr7.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr8.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr9.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr10.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr11.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr12.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr13.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr14.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
udr15.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
use_device_addr-1.f90 [OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) arguments 2019-12-06 14:06:53 +01:00
use_device_addr-2.f90 [OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) arguments 2019-12-06 14:06:53 +01:00
use_device_addr-3.f90 libgomp/testsuite/*fortran – make 'stop' values unique 2019-12-09 12:21:22 +01:00
use_device_addr-4.f90 libgomp/testsuite/*fortran – make 'stop' values unique 2019-12-09 12:21:22 +01:00
use_device_ptr-1.f90 Torture testing: 'libgomp.fortran/use_device_addr-3.f90', 'libgomp.fortran/use_device_addr-4.f90', 'libgomp.fortran/use_device_ptr-1.f90' 2019-11-11 09:50:29 +01:00
use_device_ptr-3.f90 Fortran/OpenMP: Fix use_device_{ptr,addr} with assumed-size array [PR98858] 2021-03-12 16:33:02 +01:00
use_device_ptr-optional-1.f90 Fortran] Support absent optional args with use_device_{ptr,addr} 2019-11-11 10:19:29 +01:00
use_device_ptr-optional-2.f90 Torture testing: 'libgomp.fortran/use_device_ptr-optional-2.f90' 2020-04-29 09:24:07 +02:00
use_device_ptr-optional-3.f90 Add 'dg-do run' to 'libgomp.fortran/use_device_ptr-optional-3.f90' [PR94848] 2020-06-18 00:14:46 +02:00
use_intrinsic_1.f90
vla1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
vla2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
vla3.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
vla4.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
vla5.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
vla6.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
vla7.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
vla8.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
workshare1.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00
workshare2.f90 libgomp/testsuite – use 'stop' 2019-10-30 12:44:54 +01:00