@@ -1,3 +1,8 @@
+2017-05-17 Thomas Schwinge <thomas@codesourcery.com>
+
+ * gimplify.c (gimplify_oacc_declare_1) <GOMP_MAP_ALLOC>: Use
+ "GOMP_MAP_RELEASE".
+
2017-05-16 Cesar Philippidis <cesar@codesourcery.com>
* doc/include/texinfo.tex: Backport @title linewrap changes from
@@ -1,3 +1,8 @@
+2017-05-17 Thomas Schwinge <thomas@codesourcery.com>
+
+ * c-parser.c (c_parser_oacc_data_clause)
+ <PRAGMA_OACC_CLAUSE_DELETE>: Use "GOMP_MAP_RELEASE".
+
2017-05-16 Chung-Lin Tang <cltang@codesourcery.com>
* c-parser.c (c_parser_omp_clause_name): Handle 'finalize' clause.
@@ -10805,7 +10805,7 @@ c_parser_oacc_data_clause (c_parser *parser, pragma_omp_clause c_kind,
kind = GOMP_MAP_ALLOC;
break;
case PRAGMA_OACC_CLAUSE_DELETE:
- kind = GOMP_MAP_DELETE;
+ kind = GOMP_MAP_RELEASE;
break;
case PRAGMA_OACC_CLAUSE_DEVICE:
kind = GOMP_MAP_FORCE_TO;
@@ -1,3 +1,8 @@
+2017-05-17 Thomas Schwinge <thomas@codesourcery.com>
+
+ * parser.c (cp_parser_oacc_data_clause)
+ <PRAGMA_OACC_CLAUSE_DELETE>: Use "GOMP_MAP_RELEASE".
+
2017-05-16 Chung-Lin Tang <cltang@codesourcery.com>
* parser.c (cp_parser_omp_clause_name): Handle 'finalize' clause.
@@ -30222,7 +30222,7 @@ cp_parser_oacc_data_clause (cp_parser *parser, pragma_omp_clause c_kind,
kind = GOMP_MAP_ALLOC;
break;
case PRAGMA_OACC_CLAUSE_DELETE:
- kind = GOMP_MAP_DELETE;
+ kind = GOMP_MAP_RELEASE;
break;
case PRAGMA_OACC_CLAUSE_DEVICE:
kind = GOMP_MAP_FORCE_TO;
@@ -1,5 +1,8 @@
2017-05-17 Thomas Schwinge <thomas@codesourcery.com>
+ * openmp.c (gfc_match_omp_clauses) <OMP_CLAUSE_DELETE>: Use
+ "OMP_MAP_RELEASE".
+
* openmp.c (gfc_match_omp_clauses): Handle "OMP_CLAUSE_DELETE"
just once.
@@ -1149,7 +1149,7 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, omp_mask mask,
if ((mask & OMP_CLAUSE_DELETE)
&& gfc_match ("delete ( ") == MATCH_YES
&& gfc_match_omp_map_clause (&c->lists[OMP_LIST_MAP],
- OMP_MAP_DELETE, true,
+ OMP_MAP_RELEASE, true,
allow_derived))
continue;
if ((mask & OMP_CLAUSE_DEPEND)
@@ -8593,7 +8593,7 @@ gimplify_oacc_declare_1 (tree clause)
switch (kind)
{
case GOMP_MAP_ALLOC:
- new_op = GOMP_MAP_DELETE;
+ new_op = GOMP_MAP_RELEASE;
ret = true;
break;
@@ -1,3 +1,8 @@
+2017-05-17 Thomas Schwinge <thomas@codesourcery.com>
+
+ * oacc-parallel.c (GOACC_enter_exit_data, GOACC_declare): Handle
+ "GOMP_MAP_RELEASE".
+
2017-05-16 Cesar Philippidis <cesar@codesourcery.com>
* libgomp.texi: Update OpenACC references to version 2.5. Add entries
@@ -628,7 +628,8 @@ GOACC_enter_exit_data (int device, size_t mapnum,
break;
}
- if (kind == GOMP_MAP_DELETE
+ if (kind == GOMP_MAP_RELEASE
+ || kind == GOMP_MAP_DELETE
|| kind == GOMP_MAP_FROM
|| kind == GOMP_MAP_FORCE_FROM
|| kind == GOMP_MAP_DECLARE_DEALLOCATE)
@@ -786,6 +787,7 @@ GOACC_enter_exit_data (int device, size_t mapnum,
{
switch (kind)
{
+ case GOMP_MAP_RELEASE:
case GOMP_MAP_DELETE:
if (acc_is_present (hostaddrs[i], sizes[i]))
{
@@ -1097,6 +1099,7 @@ GOACC_declare (int device, size_t mapnum,
case GOMP_MAP_FORCE_FROM:
case GOMP_MAP_FORCE_TO:
case GOMP_MAP_POINTER:
+ case GOMP_MAP_RELEASE:
case GOMP_MAP_DELETE:
GOACC_enter_exit_data (device, 1, &hostaddrs[i], &sizes[i],
&kinds[i], 0, 0, 0);
Hi! On Tue, 16 May 2017 20:55:46 +0800, Chung-Lin Tang <chunglin_tang@mentor.com> wrote: > finalize clause of the exit data directive The OpenACC front end code currently maps the OpenACC delete clause to "OMP_CLAUSE_DELETE" -- however, without a finalize clause, this clause actually has "OMP_CLAUSE_RELEASE" semantics. Committed to gomp-4_0-branch in r248147: commit 09ce4545696d19c65a552098187184f179096b45 Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed May 17 11:46:53 2017 +0000 Use "GOMP_MAP_RELEASE" for OpenACC delete clause without finalize clause gcc/c/ * c-parser.c (c_parser_oacc_data_clause) <PRAGMA_OACC_CLAUSE_DELETE>: Use "GOMP_MAP_RELEASE". gcc/cp/ * parser.c (cp_parser_oacc_data_clause) <PRAGMA_OACC_CLAUSE_DELETE>: Use "GOMP_MAP_RELEASE". gcc/fortran/ * openmp.c (gfc_match_omp_clauses) <OMP_CLAUSE_DELETE>: Use "OMP_MAP_RELEASE". gcc/ * gimplify.c (gimplify_oacc_declare_1) <GOMP_MAP_ALLOC>: Use "GOMP_MAP_RELEASE". libgomp/ * oacc-parallel.c (GOACC_enter_exit_data, GOACC_declare): Handle "GOMP_MAP_RELEASE". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@248147 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.gomp | 5 +++++ gcc/c/ChangeLog.gomp | 5 +++++ gcc/c/c-parser.c | 2 +- gcc/cp/ChangeLog.gomp | 5 +++++ gcc/cp/parser.c | 2 +- gcc/fortran/ChangeLog.gomp | 3 +++ gcc/fortran/openmp.c | 2 +- gcc/gimplify.c | 2 +- libgomp/ChangeLog.gomp | 5 +++++ libgomp/oacc-parallel.c | 5 ++++- 10 files changed, 31 insertions(+), 5 deletions(-)