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

Reply via email to