On 10/18/19 11:27 AM, Tobias Burnus wrote:
Currently, one has for
!$omp target exit data map(delete:x)
in the original dump:
#pragma omp target exit data map(delete:*x) map(alloc:x [pointer
assign, bias: 0])
The "alloc:" not only does not make sense but also gives run-time
messages like:
libgomp: GOMP_target_enter_exit_data unhandled kind 0x04
[Depending on the data type, in gfc_trans_omp_clauses's OMP_LIST_MAP,
add map clauses of type GOMP_MAP_POINTER and/or GOMP_MAP_TO_PSET.]
That's for release:/delete:. However, for 'target exit data'
(GOMP_target_enter_exit_data) the same issue occurs for
"from:"/"always, from:". But "from:" implies "alloc:". – While
"alloc:" does not make sense for "target exit data" or "update", for
"target" or "target data" it surely matters. Hence, I only exclude
"from:" for exit data and update.
See attached patch. I have additionally Fortran-fied
libgomp.c/target-20.c to have at least one 'enter/exit target data'
test case for Fortran.
Build + regtested on x86_64-gnu-linux w/o offloading. And I have
tested the new test case with nvptx.
Tobias