diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2020-05-20 10:56:55 +0200 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2020-06-05 18:04:13 +0200 |
commit | 1afc4672561a41dfbf4e3f2c1f35f7a5b7a20339 (patch) | |
tree | 18196bbe57bf3736f043a52b2204734bafbde9fb /gcc/gimplify.c | |
parent | 1809628fcff6f512206efd0ae03a3faccc4096f2 (diff) | |
download | gcc-1afc4672561a41dfbf4e3f2c1f35f7a5b7a20339.zip gcc-1afc4672561a41dfbf4e3f2c1f35f7a5b7a20339.tar.gz gcc-1afc4672561a41dfbf4e3f2c1f35f7a5b7a20339.tar.bz2 |
[OpenACC 'exit data'] Strip 'GOMP_MAP_STRUCT' mappings
These are not itself necessary for OpenACC 'exit data' directives, and are
skipped over (now) in libgomp. We might as well not emit them to start with,
in line with the equivalent OpenMP directive. We keep the no-op handling in
libgomp for the reason of backward compatibility.
gcc/
* gimplify.c (gimplify_adjust_omp_clauses): Remove
'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives.
gcc/testsuite/
* c-c++-common/goacc/struct-enter-exit-data-1.c: New file.
libgomp/
* oacc-mem.c (goacc_exit_data_internal) <GOMP_MAP_STRUCT>: Explain
special handling.
Co-Authored-By: Julian Brown <julian@codesourcery.com>
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index cb08b26..e14932f 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -10396,7 +10396,8 @@ gimplify_adjust_omp_clauses (gimple_seq *pre_p, gimple_seq body, tree *list_p, } } else if (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_STRUCT - && code == OMP_TARGET_EXIT_DATA) + && (code == OMP_TARGET_EXIT_DATA + || code == OACC_EXIT_DATA)) remove = true; else if (DECL_SIZE (decl) && TREE_CODE (DECL_SIZE (decl)) != INTEGER_CST |