diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2021-05-20 15:44:09 +0200 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2021-05-21 20:06:02 +0200 |
commit | 21803fcaebeab36de0d7b6b8cf6abb9389f5e51f (patch) | |
tree | e98cd378d56a207edb21d334e258acd9efc849f3 /gcc | |
parent | ff451ea723deb3fe8471eb96ac9381c063ec6533 (diff) | |
download | gcc-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.c | 20 |
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 |