8sa1-gcc/libgomp/testsuite/libgomp.fortran
Tobias Burnus 972da55746 OpenMP/Fortran: Fix (re)mapping of allocatable/pointer arrays [PR96668]
gcc/cp/ChangeLog:

	PR fortran/96668
	* cp-gimplify.c (cxx_omp_finish_clause): Add bool openacc arg.
	* cp-tree.h (cxx_omp_finish_clause): Likewise
	* semantics.c (handle_omp_for_class_iterator): Update call.

gcc/fortran/ChangeLog:

	PR fortran/96668
	* trans.h (gfc_omp_finish_clause): Add bool openacc arg.
	* trans-openmp.c (gfc_omp_finish_clause): Ditto. Use
	GOMP_MAP_ALWAYS_POINTER with PSET for pointers.
	(gfc_trans_omp_clauses): Like the latter and also if the always
	modifier is used.

gcc/ChangeLog:

	PR fortran/96668
	* gimplify.c (gimplify_omp_for): Add 'bool openacc' argument;
	update omp_finish_clause calls.
	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses,
	gimplify_expr, gimplify_omp_loop): Update omp_finish_clause
	and/or gimplify_for calls.
	* langhooks-def.h (lhd_omp_finish_clause): Add bool openacc arg.
	* langhooks.c (lhd_omp_finish_clause): Likewise.
	* langhooks.h (lhd_omp_finish_clause): Likewise.
	* omp-low.c (scan_sharing_clauses): Keep GOMP_MAP_TO_PSET cause for
	'declare target' vars.

include/ChangeLog:

	PR fortran/96668
	* gomp-constants.h (GOMP_MAP_ALWAYS_POINTER_P): Define.

libgomp/ChangeLog:

	PR fortran/96668
	* libgomp.h (struct target_var_desc): Add has_null_ptr_assoc member.
	* target.c (gomp_map_vars_existing): Add always_to_flag flag.
	(gomp_map_vars_existing): Update call to it.
	(gomp_map_fields_existing): Likewise
	(gomp_map_vars_internal): Update PSET handling such that if a nullptr is
	now allocated or if GOMP_MAP_POINTER is used PSET is updated and pointer
	remapped.
	(GOMP_target_enter_exit_data): Hanlde GOMP_MAP_ALWAYS_POINTER like
	GOMP_MAP_POINTER.
	* testsuite/libgomp.fortran/map-alloc-ptr-1.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-ptr-2.f90: New test.
2020-09-15 09:24:47 +02:00
..
appendix-a
examples-4
affinity1.f90
affinity2.f90
aligned1.f03
alloc-1.F90 libgomp.fortran/alloc-1.F90: Fix testcase for 32bit size_t 2020-07-15 17:23:04 +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 libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-5.f90 libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
alloc-comp-1.f90
alloc-comp-2.f90
alloc-comp-3.f90
allocatable1.f90
allocatable2.f90
allocatable3.f90
allocatable4.f90
allocatable5.f90
allocatable6.f90
allocatable7.f90
allocatable8.f90
allocatable9.f90
allocatable10.f90
allocatable11.f90
allocatable12.f90
associate1.f90
associate2.f90
associate3.f90
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 Fixes a hang on an invalid ID in a WAIT statement. 2020-05-23 19:01:43 +02: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
close_errors_1.f90 Add early return for invalid STATUS for close. 2020-05-14 18:33:24 +02:00
collapse1.f90
collapse2.f90
collapse3.f90
collapse4.f90
condinc1.f
condinc1.inc
condinc2.f
condinc3.f90
condinc4.f90
crayptr1.f90
crayptr2.f90
crayptr3.f90
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
declare-simd-2.f90
declare-simd-3.f90
declare-simd-4.f90
declare-target-1.f90
declare-target-2.f90
depend-1.f90
depend-2.f90
depend-3.f90
display-affinity-1.f90
do1.f90
do2.f90
do_concurrent_5.f90
doacross1.f90
doacross2.f90
doacross3.f90
fortran.exp
jacobi.f
lastprivate1.f90
lastprivate2.f90
lastprivate-conditional-10.f90 Fortran: Fix OpenMP's 'if(simd:' etc. conditions 2020-08-20 13:33:40 +02:00
lib1.f90
lib2.f
lib3.f
lib4.f90
lock-1.f90
lock-2.f90
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
nested1.f90
nestedfn1.f90
nestedfn2.f90
nestedfn3.f90
nestedfn4.f90
nestedfn5.f90
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
openmp_version-1.f
openmp_version-2.f90
optional-map.f90
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 [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 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) 2020-05-13 10:06:45 +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
pr71734-1.f90
pr71734-2.f90
pr81304.f90
pr81841.f90
pr84418-1.f90
pr84418-2.f90
pr88463-1.f90
pr88463-2.f90
pr90779.f90
pr93553.f90 openmp: Handle clauses with gimple sequences in convert_nonlocal_omp_clauses properly 2020-08-08 11:10:30 +02:00
procptr1.f90
recursion1.f90
reduction1.f90
reduction2.f90
reduction3.f90
reduction4.f90
reduction5.f90
reduction6.f90
reference1.f90
reference2.f90
retval1.f90
retval2.f90
sharing1.f90
sharing2.f90
simd1.f90
simd2.f90
simd3.f90
simd4.f90
simd5.f90
simd6.f90
simd7.f90
stack.f90
strassen.f90
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
tabs2.f
target1.f90
target2.f90
target3.f90
target4.f90
target5.f90
target6.f90
target7.f90
target8.f90
target9.f90
target-allocatable-1-1.f90
target-allocatable-1-2.f90
target-enter-data-1.f90
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-map-1.f90 [Fortran, OpenMP] Fix allocatable-components check (PR67311) 2020-07-14 12:55:53 +02:00
target-print-1-nvptx.f90
target-print-1.f90
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
task2.f90
task3.f90
task4.f90
taskgroup1.f90
taskloop1.f90
taskloop2.f90
taskloop3.f90
taskloop4.f90
teams1.f90
teams2.f90
threadprivate1.f90
threadprivate2.f90
threadprivate3.f90
threadprivate4.f90
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
use_device_addr-1.f90
use_device_addr-2.f90
use_device_addr-3.f90
use_device_addr-4.f90
use_device_ptr-1.f90
use_device_ptr-optional-1.f90
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
vla2.f90
vla3.f90
vla4.f90
vla5.f90
vla6.f90
vla7.f90
vla8.f90
workshare1.f90
workshare2.f90