From 8d2e5026d22b3f30e7df7adfd4ebf4ebc1e77e2d Mon Sep 17 00:00:00 2001 From: Julian Brown Date: Thu, 11 Jun 2020 06:43:59 -0700 Subject: openacc: GOMP_MAP_ATTACH handling in find_group_last Arrange for GOMP_MAP_ATTACH to be grouped together with a preceding GOMP_MAP_TO_PSET or other "to" data movement clause, except in cases where an explicit "attach" clause is used. 2020-07-09 Julian Brown include/ * gomp-constants.h (gomp_map_kind): Update comment for GOMP_MAP_TO_PSET. libgomp/ * oacc-mem.c (find_group_last): Group data-movement clauses (GOMP_MAP_TO_PSET, GOMP_MAP_TO, etc.) together with a subsequent GOMP_MAP_ATTACH. Allow standalone GOMP_MAP_ATTACH also. --- include/gomp-constants.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/gomp-constants.h b/include/gomp-constants.h index 1587e4d..b42b414 100644 --- a/include/gomp-constants.h +++ b/include/gomp-constants.h @@ -65,7 +65,10 @@ enum gomp_map_kind /* Also internal, behaves like GOMP_MAP_TO, but additionally any GOMP_MAP_POINTER records consecutive after it which have addresses falling into that range will not be ignored if GOMP_MAP_TO_PSET wasn't - mapped already. */ + mapped already. + For OpenACC attach operations (e.g. copyin of struct members), + GOMP_MAP_TO_PSET is followed by a single GOMP_MAP_ATTACH mapping + instead. */ GOMP_MAP_TO_PSET = (GOMP_MAP_FLAG_SPECIAL_0 | 1), /* Must already be present. */ GOMP_MAP_FORCE_PRESENT = (GOMP_MAP_FLAG_SPECIAL_0 | 2), -- cgit v1.1