https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90596
Bug ID: 90596
Summary: 'GOACC_parallel_keyed' should use
'GOMP_MAP_VARS_TARGET'
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: openacc
Severity: enhancement
Priority: P3
Component: libgomp
Assignee: unassigned at gcc dot gnu.org
Reporter: tschwinge at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
'GOACC_parallel_keyed' currently calls 'gomp_map_vars' with
'GOMP_MAP_VARS_OPENACC' instead of 'GOMP_MAP_VARS_TARGET', and does its own
'devaddrs' management, split between there and the device plugin. When
switching to 'GOMP_MAP_VARS_TARGET', it would benefit from 'gomp_coalesce_buf'
handling, and thus avoid each one device memory allocation, copy from host to
device, device memory deallocation call per kernel launch.