gcc/libgomp/testsuite/libgomp.fortran
Tobias Burnus 99cd28c473 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping)
When mapping an allocatable variable (or derived-type component), explicitly
or implicitly, all its allocated allocatable components will automatically be
mapped. The patch implements the target hooks, added for this feature to
omp-low.cc with commit r15-3895-ge4a58b6f28383c.

Namely, there is a check whether there are allocatable components at all:
gfc_omp_deep_mapping_p. Then gfc_omp_deep_mapping_cnt, counting the number
of required mappings; this is a dynamic value as it depends on array
bounds and whether an allocatable is allocated or not.
And, finally, the actual mapping: gfc_omp_deep_mapping.

Polymorphic variables are partially supported: the mapping of the _data
component is fully supported, but only components of the declared type
are processed for additional allocatables. Additionally, _vptr is not
touched. This means that everything needing _vtab information requires
unified shared memory; in particular, _size data is required when
accessing elements of polymorphic arrays.
However, for scalar arrays, accessing components of the declare type
should work just fine.

As polymorphic variables are not (really) supported and OpenMP 6
explicitly disallows them, there is now a warning (-Wopenmp) when
they are encountered. Unlimited polymorphics are rejected (error).

Additionally, PRIVATE and FIRSTPRIVATE are not quite supported for
allocatable components, polymorphic components and as polymorphic
variable. Thus, those are now rejected as well.

gcc/fortran/ChangeLog:

	* f95-lang.cc (LANG_HOOKS_OMP_DEEP_MAPPING,
	LANG_HOOKS_OMP_DEEP_MAPPING_P, LANG_HOOKS_OMP_DEEP_MAPPING_CNT):
	Define.
	* openmp.cc (gfc_match_omp_clause_reduction): Fix location setting.
	(resolve_omp_clauses): Permit allocatable components, reject
	them and polymorphic variables in PRIVATE/FIRSTPRIVATE.
	* trans-decl.cc (add_clause): Set clause location.
	* trans-openmp.cc (gfc_has_alloc_comps): Add ptr_ok and
	shallow_alloc_only Boolean arguments.
	(gfc_omp_replace_alloc_by_to_mapping): New.
	(gfc_omp_private_outer_ref, gfc_walk_alloc_comps,
	gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
	gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Update call to it.
	(gfc_omp_finish_clause): Minor cleanups, improve location data,
	handle allocatable components.
	(gfc_omp_deep_mapping_map, gfc_omp_deep_mapping_item,
	gfc_omp_deep_mapping_comps, gfc_omp_gen_simple_loop,
	gfc_omp_get_array_size, gfc_omp_elmental_loop,
	gfc_omp_deep_map_kind_p, gfc_omp_deep_mapping_int_p,
	gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_do,
	gfc_omp_deep_mapping_cnt, gfc_omp_deep_mapping): New.
	(gfc_trans_omp_array_section): Save array descriptor in case
	deep-mapping lang hook will need it.
	(gfc_trans_omp_clauses): Likewise; use better clause location data.
	* trans.h (gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_cnt,
	gfc_omp_deep_mapping): Add function prototypes.

libgomp/ChangeLog:

	* libgomp.texi (5.0 Impl. Status): Mark mapping alloc comps as 'Y'.
	* testsuite/libgomp.fortran/allocatable-comp.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-comp-3.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-comp-4.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-comp-5.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-comp-6.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-comp-7.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-comp-8.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-comp-9.f90: New test.

gcc/testsuite/ChangeLog:

	* gfortran.dg/gomp/map-alloc-comp-1.f90: Remove dg-error.
	* gfortran.dg/gomp/polymorphic-mapping-2.f90: Update warn wording.
	* gfortran.dg/gomp/polymorphic-mapping.f90: Change expected
	diagnostic; some tests moved to ...
	* gfortran.dg/gomp/polymorphic-mapping-1.f90: ... here as new test.
	* gfortran.dg/gomp/polymorphic-mapping-3.f90: New test.
	* gfortran.dg/gomp/polymorphic-mapping-4.f90: New test.
	* gfortran.dg/gomp/polymorphic-mapping-5.f90: New test.
2025-04-15 16:42:42 +02:00
..
appendix-a
examples-4 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
affinity1.f90
affinity2.f90
aligned1.f03
alloc-1.F90 libgomp: alloc* test fixes [PR102628, PR102668] 2021-10-12 09:30:41 +02:00
alloc-2.F90
alloc-3.F
alloc-4.f90 Fortran/OpenMP: Add memory routines existing for C/C++ 2021-08-18 11:15:47 +02:00
alloc-5.f90
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 '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
alloc-8.f90 Add/update libgomp.fortran/alloc-*.f90 2021-10-01 20:03:25 +02:00
alloc-9.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
alloc-10.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
alloc-11.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01: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
alloc-comp-2.f90
alloc-comp-3.f90 Increase timeout by 2 in libgomp.fortran/alloc-comp-3.f90 on hppa*-*-* 2024-01-20 21:47:35 +00:00
alloc-pinned-1.f90 libgomp, openmp: Add ompx_gnu_pinned_mem_alloc 2024-07-01 10:59:59 +00:00
allocatable-comp.f90 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping) 2025-04-15 16:42:42 +02:00
allocatable1.f90
allocatable2.f90
allocatable3.f90
allocatable4.f90
allocatable5.f90
allocatable6.f90
allocatable7.f90
allocatable8.f90
allocatable9.f90
allocatable10.f90
allocatable11.f90
allocatable12.f90
allocate-1.c libgomp.fortran/allocate-1.f90: Minor cleanup 2022-02-04 14:51:01 +01:00
allocate-1.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
allocate-2.f90 Fortran/OpenMP: align/allocator modifiers to the allocate clause 2022-12-09 21:45:37 +01:00
allocate-3.f90 Fortran: Extend align-clause checks of OpenMP's allocate directive 2023-02-01 14:51:00 +01:00
allocate-4.f90 Fortran/OpenMP: Add parsing support for allocators/allocate directives 2023-05-26 20:41:02 +02:00
allocate-5.f90 Fortran: Support OpenMP's 'allocate' directive for stack vars 2023-10-14 11:07:47 +02:00
allocate-6.f90 libgomp.fortran/allocate-6.f90: Run with -fdump-tree-gimple 2023-10-14 20:09:34 +02:00
allocate-7.f90 Fortran: Support OpenMP's 'allocate' directive for stack vars 2023-10-14 11:07:47 +02:00
allocate-8.f90 Fortran: Support OpenMP's 'allocate' directive for stack vars 2023-10-14 11:07:47 +02:00
allocate-static.f90 Move gfortran.dg/gomp/allocate-static.f90 to libgomp.fortran/ 2024-10-07 23:57:42 +02:00
allocators-1.f90 OpenMP/Fortran: Implement omp allocators/allocate for ptr/allocatables 2023-12-08 15:18:25 +01:00
allocators-2.f90 OpenMP/Fortran: Implement omp allocators/allocate for ptr/allocatables 2023-12-08 15:18:25 +01:00
allocators-3.f90 OpenMP/Fortran: Implement omp allocators/allocate for ptr/allocatables 2023-12-08 15:18:25 +01:00
allocators-4.f90 OpenMP/Fortran: Implement omp allocators/allocate for ptr/allocatables 2023-12-08 15:18:25 +01:00
allocators-5.f90 OpenMP/Fortran: Implement omp allocators/allocate for ptr/allocatables 2023-12-08 15:18:25 +01:00
associate1.f90
associate2.f90
associate3.f90
associate4.f90 Fortran/OpenMP: Fix privatization of associated names 2022-03-18 17:40:22 +01:00
async_io_1.f90
async_io_2.f90
async_io_3.f90
async_io_4.f90
async_io_5.f90
async_io_6.f90
async_io_7.f90
async_io_8.f90
async_io_9.f90
atomic-19.f90 Fortran: Handle compare in OpenMP atomic 2021-12-13 12:38:26 +01:00
atomic1.f90
cancel-do-1.f90
cancel-do-2.f90
cancel-parallel-1.f90
cancel-parallel-3.f90
cancel-sections-1.f90
cancel-taskgroup-2.f90
character1.f90
character2.f90
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
collapse1.f90
collapse2.f90
collapse3.f90
collapse4.f90
combined-directive-splitting-1.f90 OpenMP/Fortran: Combined directives with map/firstprivate of same symbol 2022-12-14 14:11:45 +00:00
condinc1.f
condinc1.inc
condinc2.f
condinc3.f90
condinc4.f90
crayptr1.f90
crayptr2.f90
crayptr3.f90
critical-hint-1.f90
critical-hint-2.f90
declare-simd-1.f90 Fix tests for gomp 2023-12-15 13:48:08 +00:00
declare-simd-2.f90
declare-simd-3.f90
declare-simd-4.f90
declare-target-1.f90 OpenMP/Fortran: Add support for enter clause on declare target 2022-05-28 20:42:38 +02:00
declare-target-2.f90 OpenMP/Fortran: Add support for enter clause on declare target 2022-05-28 20:42:38 +02:00
declare-target-3.f90
declare-target-indirect-1.f90 openmp, fortran: Add Fortran support for indirect clause on the declare target directive 2024-02-15 21:04:53 +00:00
declare-target-indirect-2.f90 openmp: Change to using a hashtab to lookup offload target addresses for indirect function calls 2024-03-22 18:09:40 +00:00
declare-target-indirect-3.f90 openmp, fortran: Add Fortran support for indirect clause on the declare target directive 2024-02-15 21:04:53 +00:00
declare-target-indirect-4.f90 OpenMP/Fortran: Fix defaultmap(none) issue with dummy procedures [PR114283] 2024-03-13 09:35:28 +01:00
declare-target-link.f90 omp-offload.cc: Fix value-expr handling of 'declare target link' vars [PR115637] 2024-08-01 09:06:32 +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
declare-variant-2-aux.f90 OpenMP: Fortran front-end support for dispatch + adjust_args 2025-01-02 21:18:56 +01:00
declare-variant-2.f90 OpenMP: Fortran front-end support for dispatch + adjust_args 2025-01-02 21:18:56 +01:00
declare-variant-mod-1-use.f90 Move gfortran.dg/gomp/declare-variant-mod-1*.f90 to libgomp.fortran/ [PR115271] 2025-03-17 10:12:44 +01:00
declare-variant-mod-1.f90 Move gfortran.dg/gomp/declare-variant-mod-1*.f90 to libgomp.fortran/ [PR115271] 2025-03-17 10:12:44 +01: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
depend-2.f90
depend-3.f90
depend-4.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
depend-5.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
depend-6.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
depend-7.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
depend-inoutset-1.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +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
device_uid.f90 OpenMP: Fix omp_get_device_from_uid, minor cleanup 2024-09-23 15:58:39 +02:00
dispatch-1.f90 Add missing target directive in OpenMP dispatch Fortran runtime test 2025-01-13 16:05:14 +01:00
dispatch-2.f90 OpenMP: Fortran front-end support for dispatch + adjust_args 2025-01-02 21:18:56 +01:00
dispatch-3.f90 OpenMP: Fortran front-end support for dispatch + adjust_args 2025-01-02 21:18:56 +01:00
display-affinity-1.f90
do1.f90
do2.f90
do_concurrent_5.f90
doacross1.f90
doacross2.f90
doacross3.f90
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-torture_execute_math.f90 driver: Forward '-lgfortran', '-lm' to offloading compilation 2023-06-14 11:41:45 +02:00
fortran.exp driver: Forward '-lgfortran', '-lm' to offloading compilation 2023-06-14 11:41:45 +02:00
get-mapped-ptr-1.f90 libgomp.fortran/get-mapped-ptr-1.f90: Use -6 for non-conf dev number 2025-03-22 00:36:44 +01:00
get-mapped-ptr-2.f90 OpenMP, libgomp: Add new runtime routine omp_get_mapped_ptr. 2022-05-02 23:56:44 -07:00
get-mapped-ptr-3.f90 OpenMP, libgomp: Add new runtime routine omp_get_mapped_ptr. 2022-05-02 23:56:44 -07:00
get-mapped-ptr-4.f90 OpenMP, libgomp: Add new runtime routine omp_get_mapped_ptr. 2022-05-02 23:56:44 -07:00
has_device_addr.f90 OpenMP/Fortran: Fix has_device_addr clause splitting [PR108558] 2023-01-27 11:33:46 +01: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
icv-5.f90 OpenMP: omp_get_max_teams, omp_set_num_teams, and omp_{gs}et_teams_thread_limit on offload devices 2022-12-06 06:03:50 -08:00
icv-6.f90 OpenMP: omp_get_max_teams, omp_set_num_teams, and omp_{gs}et_teams_thread_limit on offload devices 2022-12-06 06:03:50 -08:00
icv-8.f90 OpenMP, Fortran: Bugfix for omp_set_num_teams. 2022-03-16 07:38:54 -07:00
imperfect-destructor.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00:00
imperfect-transform-1.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
imperfect-transform-2.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
imperfect1.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00:00
imperfect2.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00:00
imperfect3.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00:00
imperfect4.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00:00
inner-1.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
interop-routines-1.F90 libgomp: Add interop types and routines to OpenMP's headers and module 2024-08-28 11:50:43 +02:00
interop-routines-2.F90 libgomp: Add interop types and routines to OpenMP's headers and module 2024-08-28 11:50:43 +02:00
interop-routines-3.F libgomp: Add interop types and routines to OpenMP's headers and module 2024-08-28 11:50:43 +02:00
interop-routines-4.F libgomp: Add interop types and routines to OpenMP's headers and module 2024-08-28 11:50:43 +02:00
interop-routines-5.F libgomp: Add interop types and routines to OpenMP's headers and module 2024-08-28 11:50:43 +02:00
interop-routines-6.F libgomp: Add interop types and routines to OpenMP's headers and module 2024-08-28 11:50:43 +02:00
interop-routines-7.F90 libgomp: Add interop types and routines to OpenMP's headers and module 2024-08-28 11:50:43 +02:00
is_device_ptr-1.f90 OpenMP/Fortran: Fixes for {use,is}_device_ptr 2021-01-19 11:58:21 +01:00
is_device_ptr-2.f90 Fortran: Update use_device_ptr for OpenMP 5.1 [PR105318] 2022-09-30 13:37:18 +02:00
is_device_ptr-3.f90 OpenMP/Fortran: Fix handling of optional is_device_ptr + bind(C) [PR108546] 2023-03-01 13:53:09 +01:00
jacobi.f
lastprivate-conditional-10.f90
lastprivate1.f90
lastprivate2.f90
lib1.f90
lib2.f
lib3.f
lib4.f90
lock-1.f90
lock-2.f90
map-alloc-comp-3.f90 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping) 2025-04-15 16:42:42 +02:00
map-alloc-comp-4.f90 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping) 2025-04-15 16:42:42 +02:00
map-alloc-comp-5.f90 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping) 2025-04-15 16:42:42 +02:00
map-alloc-comp-6.f90 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping) 2025-04-15 16:42:42 +02:00
map-alloc-comp-7.f90 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping) 2025-04-15 16:42:42 +02:00
map-alloc-comp-8.f90 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping) 2025-04-15 16:42:42 +02:00
map-alloc-comp-9.f90 Fortran/OpenMP: Support automatic mapping allocatable components (deep mapping) 2025-04-15 16:42:42 +02:00
map-alloc-ptr-1.f90
map-alloc-ptr-2.f90
map-subarray-2.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
map-subarray-3.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
map-subarray-4.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
map-subarray-5.f90 In 'libgomp.fortran/map-subarray-5.f90', restrict 'dg-output's to 'target offload_device_nonshared_as' 2023-12-15 13:58:53 +01:00
map-subarray-6.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
map-subarray-7.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
map-subarray-8.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
map-subarray.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
map-subcomponents.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
masked-1.f90 Fortran/OpenMP: Add support for OpenMP 5.1 masked construct 2021-08-16 09:26:26 +02:00
metadirective-1.f90 OpenMP: Fortran support for metadirectives and dynamic selectors 2025-01-30 19:12:34 +00:00
metadirective-2.f90 OpenMP: Fortran support for metadirectives and dynamic selectors 2025-01-30 19:12:34 +00:00
metadirective-3.f90 OpenMP: Fortran support for metadirectives and dynamic selectors 2025-01-30 19:12:34 +00:00
metadirective-4.f90 OpenMP: Fortran support for metadirectives and dynamic selectors 2025-01-30 19:12:34 +00:00
metadirective-5.f90 OpenMP: Fortran support for metadirectives and dynamic selectors 2025-01-30 19:12:34 +00:00
metadirective-6.f90 OpenMP: Fortran support for metadirectives and dynamic selectors 2025-01-30 19:12:34 +00:00
my-usleep.c Add libgomp.fortran/order-reproducible-*.f90 2021-10-02 11:29:35 +02:00
nested-fn.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
nested1.f90
nestedfn1.f90
nestedfn2.f90
nestedfn3.f90
nestedfn4.f90
nestedfn5.f90
non-rectangular-loop-1.f90 OpenMP/Fortran: Non-rectangular loops with constant steps other than 1 or -1 [PR107424] 2023-07-19 10:18:49 +02:00
non-rectangular-loop-2.f90 OpenMP/Fortran: Partially fix non-rect loop nests [PR107424] 2023-02-09 15:51:13 +01:00
non-rectangular-loop-3.f90 OpenMP/Fortran: Partially fix non-rect loop nests [PR107424] 2023-02-09 15:51:13 +01:00
non-rectangular-loop-4.f90 OpenMP/Fortran: Partially fix non-rect loop nests [PR107424] 2023-02-09 15:51:13 +01:00
non-rectangular-loop-5.f90 OpenMP/Fortran: Non-rectangular loops with constant steps other than 1 or -1 [PR107424] 2023-07-19 10:18:49 +02:00
non-rectangular-loop-6.f90 OpenMP/Fortran: Non-rectangular loops with constant steps other than 1 or -1 [PR107424] 2023-07-19 10:18:49 +02:00
omp_atomic1.f90
omp_atomic2.f90
omp_atomic3.f90
omp_atomic4.f90
omp_atomic5.f90
omp_cond1.f
omp_cond2.f
omp_cond3.F90
omp_cond4.F90
omp_hello.f
omp_orphan.f
omp_parse1.f90
omp_parse2.f90
omp_parse3.f90
omp_parse4.f90
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
openmp_version-2.f90
optional-bind-c.f90 Fortran: Fix Bind(C) Array-Descriptor Conversion 2021-10-18 10:29:30 +02:00
optional-map.f90
order-reproducible-1.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01:00
order-reproducible-2.f90 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +01: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
parloops-exit-first-loop-alt.f95
pointer1.f90
pointer2.f90
pr25162.f
pr25219.f90
pr27395-1.f90
pr27395-2.f90
pr27416-1.f90
pr27916-1.f90
pr27916-2.f90
pr28390.f
pr29629.f90
pr32359.f90
pr32550.f90
pr33880.f90
pr34020.f90
pr35130.f90
pr42162.f90
pr46753.f90
pr48894.f90
pr49792-1.f90
pr49792-2.f90
pr63938-1.f90
pr63938-2.f90
pr65597.f90
pr66199-1.f90
pr66199-2.f90
pr66199-3.f90
pr66199-4.f90
pr66199-5.f90
pr66199-6.f90
pr66199-7.f90
pr66199-8.f90
pr66199-9.f90
pr66680.f90
pr71014.f90
pr71734-1.f90
pr71734-2.f90
pr81304.f90
pr81841.f90
pr84418-1.f90
pr84418-2.f90
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
pr95654.f90
pr100981-2.f90 testsuite: Fix up libgomp.fortran/pr100981-2.f90 testcase [PR100981] 2021-06-10 09:31:06 +02:00
procptr1.f90
recursion1.f90
reduction1.f90
reduction2.f90
reduction3.f90
reduction4.f90
reduction5.f90
reduction6.f90
refcount-1.f90 Fortran/OpenMP: Add memory routines existing for C/C++ 2021-08-18 11:15:47 +02:00
reference1.f90
reference2.f90
requires-1-aux.f90 OpenMP: Move omp requires checks to libgomp 2022-07-04 13:52:02 +02:00
requires-1.f90 Fix one issue in OpenMP 'requires' directive diagnostics 2022-07-08 08:53:58 +02:00
requires-unified-addr-1.f90 libgomp/testsuite: Add requires-unified-addr-1.{c,f90} [PR109837] 2023-06-13 11:27:47 +02:00
retval1.f90
retval2.f90
reverse-offload-1-aux.f90 OpenMP: Support reverse offload (middle end part) 2022-08-26 12:12:25 +02:00
reverse-offload-1.f90 nvptx/mkoffload.cc: Warn instead of error when reverse offload is not possible 2022-09-12 15:25:13 +02:00
reverse-offload-2.f90 libgomp: Handle OpenMP's reverse offloads 2022-12-10 13:42:08 +01:00
reverse-offload-3.f90 libgomp: Handle OpenMP's reverse offloads 2022-12-10 13:42:08 +01:00
reverse-offload-4.f90 libgomp: Handle OpenMP's reverse offloads 2022-12-10 13:42:08 +01:00
reverse-offload-5.f90 libgomp: Fix reverse-offload for GOMP_MAP_TO_PSET 2023-02-15 11:21:11 +01:00
reverse-offload-5a.f90 libgomp: Handle OpenMP's reverse offloads 2022-12-10 13:42:08 +01:00
reverse-offload-6.f90 Fix 'libgomp.fortran/reverse-offload-6.f90' nvptx offloading compilation 2023-02-07 23:44:33 +01:00
rwlock_1.f90 libgfortran: Replace mutex with rwlock 2023-12-11 09:43:59 -08:00
rwlock_2.f90 libgfortran: Replace mutex with rwlock 2023-12-11 09:43:59 -08:00
rwlock_3.f90 libgfortran: Replace mutex with rwlock 2023-12-11 09:43:59 -08:00
scan-1.f90
scan-2.f90 'omp scan' struct block seq update for OpenMP 5.x 2023-04-25 16:29:14 +02:00
scope-1.f90 Fortran: Implement OpenMP 5.1 scope construct 2021-08-17 15:51:03 +02:00
scope-2.f90 OpenMP/Fortran: Add support for firstprivate and allocate clauses on scope construct 2022-06-03 15:54:02 +02:00
self_maps.f90 OpenMP: Add support for 'self_maps' to the 'require' directive 2024-09-24 10:53:59 +02:00
sharing1.f90
sharing2.f90
simd1.f90
simd2.f90
simd3.f90
simd4.f90
simd5.f90
simd6.f90
simd7.f90
stack.f90
strassen.f90
strictly-structured-block-1.f90 Fortran/OpenMP: Fix handling of strictly structured blocks 2023-10-08 11:54:07 +02:00
struct-elem-map-1.f90 OpenMP: Pointers and member mappings 2023-12-13 20:30:49 +00:00
tabs1.f90
tabs2.f
target-11.f90 OpenMP/Fortran: 'target update' with DT components 2022-11-03 15:03:52 +01:00
target-12.f90 OpenMP: Call cuMemcpy2D/cuMemcpy3D for nvptx for omp_target_memcpy_rect 2023-07-26 16:22:35 +02:00
target-13.f90 OpenMP/Fortran: 'target update' with DT components 2022-11-03 15:03:52 +01:00
target-allocatable-1-1.f90
target-allocatable-1-2.f90
target-enter-data-1.f90
target-enter-data-2.F90
target-enter-data-3.f90 Fortran/OpenMP: Fix mapping of array descriptors and deferred-length strings 2023-05-17 12:28:14 +02:00
target-enter-data-4.f90 Fortran/OpenMP: Fix mapping of array descriptors and deferred-length strings 2023-05-17 12:28:14 +02:00
target-enter-data-5.f90 Fortran/OpenMP: Fix mapping of array descriptors and deferred-length strings 2023-05-17 12:28:14 +02:00
target-enter-data-6.f90 OpenMP/OpenACC: Reorganise OMP map clause handling in gimplify.cc 2023-12-21 13:12:12 +00:00
target-enter-data-7.f90 Fortran/OpenMP: Fix mapping of array descriptors and deferred-length strings 2023-05-17 12:28:14 +02:00
target-firstprivate-1.f90 OpenMP: Handle descriptors in target's firstprivate [PR104949] 2022-05-23 10:54:32 +02:00
target-firstprivate-2.f90 OpenMP: Handle descriptors in target's firstprivate [PR104949] 2022-05-23 10:54:32 +02:00
target-firstprivate-3.f90 OpenMP: Handle descriptors in target's firstprivate [PR104949] 2022-05-23 10:54:32 +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-imperfect-transform-1.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
target-imperfect-transform-2.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
target-imperfect1.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00:00
target-imperfect2.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00:00
target-imperfect3.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00:00
target-imperfect4.f90 OpenMP: Fortran support for imperfectly-nested loops 2023-08-25 19:42:51 +00: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-is-accessible-1.f90 openmp: Conforming device numbers and omp_{initial,invalid}_device 2022-06-13 14:02:37 +02:00
target-is-initial-device-3.f90 Fortran: Use OpenACC's acc_on_device builtin, fix OpenMP' __builtin_is_initial_device 2024-10-13 10:18:31 +02:00
target-is-initial-host-2.f90 OpenMP: Constructors and destructors for "declare target" static aggregates: Fix effective-target keyword in test cases 2024-08-09 12:59:03 +02:00
target-is-initial-host.f OpenMP: Constructors and destructors for "declare target" static aggregates: Fix effective-target keyword in test cases 2024-08-09 12:59:03 +02:00
target-is-initial-host.f90 OpenMP: Constructors and destructors for "declare target" static aggregates: Fix effective-target keyword in test cases 2024-08-09 12:59:03 +02:00
target-map-1.f90
target-memcpy-async-1.f90 libgomp: Add new runtime routines omp_target_memcpy_async and omp_target_memcpy_rect_async 2022-05-20 02:29:32 -07:00
target-memcpy-async-2.f90 libgomp: Add new runtime routines omp_target_memcpy_async and omp_target_memcpy_rect_async 2022-05-20 02:29:32 -07:00
target-memcpy-rect-1.f90 OpenMP: Call cuMemcpy2D/cuMemcpy3D for nvptx for omp_target_memcpy_rect 2023-07-26 16:22:35 +02:00
target-memcpy-rect-async-1.f90 libgomp: Add new runtime routines omp_target_memcpy_async and omp_target_memcpy_rect_async 2022-05-20 02:29:32 -07:00
target-memcpy-rect-async-2.f90 libgomp: Add new runtime routines omp_target_memcpy_async and omp_target_memcpy_rect_async 2022-05-20 02:29:32 -07:00
target-nowait-array-section.f90 libgomp: Fix comment typo 2023-02-16 12:10:19 +01:00
target-present-1.f90 OpenMP: Cleanups related to the 'present' modifier 2023-06-12 18:15:28 +02:00
target-present-2.f90 OpenMP: Cleanups related to the 'present' modifier 2023-06-12 18:15:28 +02:00
target-present-3.f90 OpenMP: Cleanups related to the 'present' modifier 2023-06-12 18:15:28 +02:00
target-print-1.f90 nvptx, libgfortran: Switch out of "minimal" mode 2024-06-06 13:41:47 +02:00
target-simd.f90
target-var.f90
target1.f90
target2.f90
target3.f90
target4.f90
target5.f90
target6.f90
target7.f90
target8.f90
target9.f90
target10.f90 Remove support for Intel MIC offloading 2022-11-04 10:51:01 +01:00
task-7.f90 libgomp: Add Fortran testcases for omp_in_explicit_task 2022-10-13 20:38:27 +02:00
task-8.f90 libgomp: Add Fortran testcases for omp_in_explicit_task 2022-10-13 20:38:27 +02: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 Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere 2023-02-22 09:19:51 +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-in-explicit-1.f90 libgomp: Add Fortran testcases for omp_in_explicit_task 2022-10-13 20:38:27 +02:00
task-in-explicit-2.f90 libgomp: Add Fortran testcases for omp_in_explicit_task 2022-10-13 20:38:27 +02:00
task-in-explicit-3.f90 libgomp: Add Fortran testcases for omp_in_explicit_task 2022-10-13 20:38:27 +02:00
task-reduction-16.f90 openmp: Fortran strictly-structured blocks support 2021-10-21 14:57:25 +08:00
task-reduction-17.f90 libgomp: Add Fortran testcases for omp_in_explicit_task 2022-10-13 20:38:27 +02:00
task-reduction-18.f90 libgomp: Add Fortran testcases for omp_in_explicit_task 2022-10-13 20:38:27 +02:00
task1.f90
task2.f90
task3.f90
task4.f90
taskgroup1.f90
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
taskloop1.f90
taskloop2.f90
taskloop3.f90
taskloop4.f90
taskwait-depend-nowait-1.f90 OpenMP: Support nowait with Fortran [PR105378] 2022-05-24 10:45:26 +02:00
teams-1.f90 Fortran/openmp: Add support for 2 argument num_teams clause 2021-11-11 17:27:00 +01:00
teams1.f90 OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
teams2.f90
thread-limit-1.f90 Fortran: openmp: Add support for thread_limit clause on target 2021-11-15 15:44:11 +01:00
threadprivate1.f90
threadprivate2.f90
threadprivate3.f90
threadprivate4.f90
tile-1.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
tile-2.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
tile-unroll-1.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
tile-unroll-2.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
tile-unroll-3.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
tile-unroll-4.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
udr1.f90
udr2.f90
udr3.f90
udr4.f90
udr5.f90
udr6.f90
udr7.f90
udr8.f90
udr9.f90
udr10.f90
udr11.f90
udr12.f90
udr13.f90
udr14.f90
udr15.f90
unroll-1.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-2.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-3.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-4.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-5.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-6.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-7.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-7a.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-7b.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-7c.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-8.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-simd-1.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-tile-1.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
unroll-tile-2.f90 openmp: OpenMP loop transformation support 2024-06-05 19:10:26 +02:00
use_device_addr-1.f90
use_device_addr-2.f90
use_device_addr-3.f90
use_device_addr-4.f90
use_device_addr-5.f90 Fix up 'libgomp.fortran/use_device_addr-5.f90' multi-device testing 2022-05-10 14:48:11 +02:00
use_device_ptr-1.f90
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-4.f90 OpenMP: Fix nested use_device_ptr 2022-04-05 08:31:34 -07:00
use_device_ptr-optional-1.f90
use_device_ptr-optional-2.f90
use_device_ptr-optional-3.f90
use_device_ptr-optional-4.f90 OpenMP/Fortran: Fix handling of optional is_device_ptr + bind(C) [PR108546] 2023-03-01 13:53:09 +01:00
use_intrinsic_1.f90
uses_allocators_1.f90 OpenMP/Fortran: Parsing support for 'uses_allocators' 2023-07-17 15:13:44 +02:00
uses_allocators_2.f90 OpenMP/Fortran: Parsing support for 'uses_allocators' 2023-07-17 15:13:44 +02:00
vla1.f90
vla2.f90
vla3.f90
vla4.f90
vla5.f90
vla6.f90
vla7.f90
vla8.f90
workshare1.f90
workshare2.f90