Hi! On Mon, 19 Oct 2015 12:34:08 +0200, Jakub Jelinek wrote: > On Mon, Oct 19, 2015 at 12:20:23PM +0200, Thomas Schwinge wrote: > > > @@ -77,7 +79,21 @@ enum gomp_map_kind > > > + /* OpenMP 4.1 alias for forced deallocation. */ > > > + GOMP_MAP_DELETE = GOMP_MAP_FORCE_DEALLOC, > > > > To avoid confusion about two different identifiers naming the same > > functionality, I'd prefer to avoid such aliases ("GOMP_MAP_DELETE = > > GOMP_MAP_FORCE_DEALLOC"), and instead just rename GOMP_MAP_FORCE_DEALLOC > > to GOMP_MAP_DELETE, if that's the name you prefer. > > If you are ok with removing GOMP_MAP_FORCE_DEALLOC and just use > GOMP_MAP_DELETE, that is ok by me, just post a patch. That's simple enouch; OK to commit? (I'm also including the related change, to rename the Fortran OMP_MAP_FORCE_DEALLOC to OMP_MAP_DELETE, because I think that's what you'd do, once starting the OpenMP 4.5 Fortran front end work.) commit d60e36a2a935a9319602221360b1a6abf282f434 Author: Thomas Schwinge Date: Wed Mar 16 18:10:26 2016 +0100 Rename GOMP_MAP_FORCE_DEALLOC to GOMP_MAP_DELETE Also rename the Fortran OMP_MAP_FORCE_DEALLOC to OMP_MAP_DELETE. include/ * gomp-constants.h (enum gomp_map_kind): Rename GOMP_MAP_FORCE_DEALLOC to GOMP_MAP_DELETE. Adjust all users. gcc/fortran/ * gfortran.h (enum gfc_omp_map_op): Rename OMP_MAP_FORCE_DEALLOC to OMP_MAP_DELETE. Adjust all users. --- gcc/c/c-parser.c | 2 +- gcc/cp/parser.c | 2 +- gcc/fortran/gfortran.h | 2 +- gcc/fortran/openmp.c | 2 +- gcc/fortran/trans-openmp.c | 6 +++--- gcc/gimplify.c | 2 +- gcc/omp-low.c | 2 +- gcc/tree-pretty-print.c | 2 +- include/gomp-constants.h | 6 ++---- libgomp/oacc-parallel.c | 6 +++--- 10 files changed, 15 insertions(+), 17 deletions(-) diff --git gcc/c/c-parser.c gcc/c/c-parser.c index 60ec996..82d6eca 100644 --- gcc/c/c-parser.c +++ gcc/c/c-parser.c @@ -10715,7 +10715,7 @@ c_parser_oacc_data_clause (c_parser *parser, pragma_omp_clause c_kind, kind = GOMP_MAP_FORCE_ALLOC; break; case PRAGMA_OACC_CLAUSE_DELETE: - kind = GOMP_MAP_FORCE_DEALLOC; + kind = GOMP_MAP_DELETE; break; case PRAGMA_OACC_CLAUSE_DEVICE: kind = GOMP_MAP_FORCE_TO; diff --git gcc/cp/parser.c gcc/cp/parser.c index 62570d4..8ba4ffe 100644 --- gcc/cp/parser.c +++ gcc/cp/parser.c @@ -30086,7 +30086,7 @@ cp_parser_oacc_data_clause (cp_parser *parser, pragma_omp_clause c_kind, kind = GOMP_MAP_FORCE_ALLOC; break; case PRAGMA_OACC_CLAUSE_DELETE: - kind = GOMP_MAP_FORCE_DEALLOC; + kind = GOMP_MAP_DELETE; break; case PRAGMA_OACC_CLAUSE_DEVICE: kind = GOMP_MAP_FORCE_TO; diff --git gcc/fortran/gfortran.h gcc/fortran/gfortran.h index 33fffd8..a0fb5fd 100644 --- gcc/fortran/gfortran.h +++ gcc/fortran/gfortran.h @@ -1112,8 +1112,8 @@ enum gfc_omp_map_op OMP_MAP_TO, OMP_MAP_FROM, OMP_MAP_TOFROM, + OMP_MAP_DELETE, OMP_MAP_FORCE_ALLOC, - OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM, diff --git gcc/fortran/openmp.c gcc/fortran/openmp.c index 51ab96e..a6c39cd 100644 --- gcc/fortran/openmp.c +++ gcc/fortran/openmp.c @@ -764,7 +764,7 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, uint64_t mask, if ((mask & OMP_CLAUSE_DELETE) && gfc_match ("delete ( ") == MATCH_YES && gfc_match_omp_map_clause (&c->lists[OMP_LIST_MAP], - OMP_MAP_FORCE_DEALLOC)) + OMP_MAP_DELETE)) continue; if ((mask & OMP_CLAUSE_PRESENT) && gfc_match ("present ( ") == MATCH_YES diff --git gcc/fortran/trans-openmp.c gcc/fortran/trans-openmp.c index 5990202..a905ca6 100644 --- gcc/fortran/trans-openmp.c +++ gcc/fortran/trans-openmp.c @@ -2119,12 +2119,12 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses, case OMP_MAP_TOFROM: OMP_CLAUSE_SET_MAP_KIND (node, GOMP_MAP_TOFROM); break; + case OMP_MAP_DELETE: + OMP_CLAUSE_SET_MAP_KIND (node, GOMP_MAP_DELETE); + break; case OMP_MAP_FORCE_ALLOC: OMP_CLAUSE_SET_MAP_KIND (node, GOMP_MAP_FORCE_ALLOC); break; - case OMP_MAP_FORCE_DEALLOC: - OMP_CLAUSE_SET_MAP_KIND (node, GOMP_MAP_FORCE_DEALLOC); - break; case OMP_MAP_FORCE_TO: OMP_CLAUSE_SET_MAP_KIND (node, GOMP_MAP_FORCE_TO); break; diff --git gcc/gimplify.c gcc/gimplify.c index f3e5c39..3687e7a 100644 --- gcc/gimplify.c +++ gcc/gimplify.c @@ -8194,7 +8194,7 @@ gimplify_oacc_declare_1 (tree clause) case GOMP_MAP_ALLOC: case GOMP_MAP_FORCE_ALLOC: case GOMP_MAP_FORCE_TO: - new_op = GOMP_MAP_FORCE_DEALLOC; + new_op = GOMP_MAP_DELETE; ret = true; break; diff --git gcc/omp-low.c gcc/omp-low.c index 82dec9d..3fd6eb3 100644 --- gcc/omp-low.c +++ gcc/omp-low.c @@ -15746,7 +15746,7 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx) case GOMP_MAP_TOFROM: case GOMP_MAP_POINTER: case GOMP_MAP_TO_PSET: - case GOMP_MAP_FORCE_DEALLOC: + case GOMP_MAP_DELETE: case GOMP_MAP_RELEASE: case GOMP_MAP_ALWAYS_TO: case GOMP_MAP_ALWAYS_FROM: diff --git gcc/tree-pretty-print.c gcc/tree-pretty-print.c index 9c13d84..39e3691 100644 --- gcc/tree-pretty-print.c +++ gcc/tree-pretty-print.c @@ -621,7 +621,7 @@ dump_omp_clause (pretty_printer *pp, tree clause, int spc, int flags) case GOMP_MAP_FORCE_PRESENT: pp_string (pp, "force_present"); break; - case GOMP_MAP_FORCE_DEALLOC: + case GOMP_MAP_DELETE: pp_string (pp, "delete"); break; case GOMP_MAP_FORCE_DEVICEPTR: diff --git include/gomp-constants.h include/gomp-constants.h index a8e7723..e31c2e0 100644 --- include/gomp-constants.h +++ include/gomp-constants.h @@ -67,7 +67,7 @@ enum gomp_map_kind /* Must already be present. */ GOMP_MAP_FORCE_PRESENT = (GOMP_MAP_FLAG_SPECIAL_0 | 2), /* Deallocate a mapping, without copying from device. */ - GOMP_MAP_FORCE_DEALLOC = (GOMP_MAP_FLAG_SPECIAL_0 | 3), + GOMP_MAP_DELETE = (GOMP_MAP_FLAG_SPECIAL_0 | 3), /* Is a device pointer. OMP_CLAUSE_SIZE for these is unused; is implicitly POINTER_SIZE_UNITS. */ GOMP_MAP_FORCE_DEVICEPTR = (GOMP_MAP_FLAG_SPECIAL_1 | 0), @@ -125,11 +125,9 @@ enum gomp_map_kind GOMP_MAP_DELETE_ZERO_LEN_ARRAY_SECTION = (GOMP_MAP_FLAG_SPECIAL_2 | GOMP_MAP_FLAG_SPECIAL | 3), - /* OpenMP 4.5 alias for forced deallocation. */ - GOMP_MAP_DELETE = GOMP_MAP_FORCE_DEALLOC, /* Decrement usage count and deallocate if zero. */ GOMP_MAP_RELEASE = (GOMP_MAP_FLAG_SPECIAL_2 - | GOMP_MAP_FORCE_DEALLOC), + | GOMP_MAP_DELETE), /* Internal to GCC, not used in libgomp. */ /* Do not map, but pointer assign a pointer instead. */ diff --git libgomp/oacc-parallel.c libgomp/oacc-parallel.c index f795bf7..1fdb01d 100644 --- libgomp/oacc-parallel.c +++ libgomp/oacc-parallel.c @@ -307,7 +307,7 @@ GOACC_enter_exit_data (int device, size_t mapnum, break; } - if (kind == GOMP_MAP_FORCE_DEALLOC + if (kind == GOMP_MAP_DELETE || kind == GOMP_MAP_FORCE_FROM) break; @@ -374,7 +374,7 @@ GOACC_enter_exit_data (int device, size_t mapnum, == GOMP_MAP_FORCE_FROM, async, 1); break; - case GOMP_MAP_FORCE_DEALLOC: + case GOMP_MAP_DELETE: acc_delete (hostaddrs[i], sizes[i]); break; case GOMP_MAP_FORCE_FROM: @@ -522,10 +522,10 @@ GOACC_declare (int device, size_t mapnum, switch (kind) { case GOMP_MAP_FORCE_ALLOC: - case GOMP_MAP_FORCE_DEALLOC: case GOMP_MAP_FORCE_FROM: case GOMP_MAP_FORCE_TO: case GOMP_MAP_POINTER: + case GOMP_MAP_DELETE: GOACC_enter_exit_data (device, 1, &hostaddrs[i], &sizes[i], &kinds[i], 0, 0); break; Grüße Thomas