aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2021-05-20 15:44:09 +0200
committerThomas Schwinge <thomas@codesourcery.com>2021-05-21 20:06:02 +0200
commit21803fcaebeab36de0d7b6b8cf6abb9389f5e51f (patch)
treee98cd378d56a207edb21d334e258acd9efc849f3 /gcc
parentff451ea723deb3fe8471eb96ac9381c063ec6533 (diff)
downloadgcc-21803fcaebeab36de0d7b6b8cf6abb9389f5e51f.zip
gcc-21803fcaebeab36de0d7b6b8cf6abb9389f5e51f.tar.gz
gcc-21803fcaebeab36de0d7b6b8cf6abb9389f5e51f.tar.bz2
[OpenACC privatization] Explain two different configurations [PR90115]
gcc/ PR middle-end/90115 * omp-offload.c (execute_oacc_device_lower): Explain.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/omp-offload.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/omp-offload.c b/gcc/omp-offload.c
index 36bd2e4..336b48d 100644
--- a/gcc/omp-offload.c
+++ b/gcc/omp-offload.c
@@ -2206,6 +2206,26 @@ execute_oacc_device_lower ()
gsi_next (&gsi);
}
+ /* Regarding the OpenACC privatization level, we're currently only looking at
+ making the gang-private level work. Regarding that, we have the following
+ configurations:
+
+ - GCN offloading: 'targetm.goacc.adjust_private_decl' does the work (in
+ particular, change 'TREE_TYPE', etc.) and there is no
+ 'targetm.goacc.expand_var_decl'.
+
+ - nvptx offloading: 'targetm.goacc.adjust_private_decl' only sets a
+ marker and then 'targetm.goacc.expand_var_decl' does the work.
+
+ Eventually (in particular, for worker-private level?), both
+ 'targetm.goacc.adjust_private_decl' and 'targetm.goacc.expand_var_decl'
+ may need to do things, but that's currently not meant to be addressed, and
+ thus not fully worked out and implemented, and thus untested. Hence,
+ 'assert' what currently is implemented/tested, only. */
+
+ if (targetm.goacc.expand_var_decl)
+ gcc_assert (adjusted_vars.is_empty ());
+
/* Make adjustments to gang-private local variables if required by the
target, e.g. forcing them into a particular address space. Afterwards,
ADDR_EXPR nodes which have adjusted variables as their argument need to