-
- Downloads
OpenACC 'kernels' decomposition: Mark variables used in synthesized data...
OpenACC 'kernels' decomposition: Mark variables used in synthesized data clauses as addressable [PR100280]
... as otherwise 'gcc/omp-low.c:lower_omp_target' has to create a temporary:
13073 else if (is_gimple_reg (var))
13074 {
13075 gcc_assert (offloaded);
13076 tree avar = create_tmp_var (TREE_TYPE (var));
13077 mark_addressable (avar);
..., which (a) is only implemented for actualy *offloaded* regions (but not
data regions), and (b) the subsequently synthesized code for writing to and
later reading back from the temporary fundamentally conflicts with OpenACC
'async' (as used by OpenACC 'kernels' decomposition). That's all not trivial
to make work, so let's just avoid this case.
gcc/
PR middle-end/100280
* omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
Mark variables used in synthesized data clauses as addressable.
gcc/testsuite/
PR middle-end/100280
* c-c++-common/goacc/kernels-decompose-pr100280-1.c: New.
* c-c++-common/goacc/classify-kernels-parloops.c: Likewise.
* c-c++-common/goacc/classify-kernels-unparallelized-parloops.c:
Likewise.
* c-c++-common/goacc/classify-kernels-unparallelized.c: Test
'--param openacc-kernels=decompose'.
* c-c++-common/goacc/classify-kernels.c: Likewise.
* c-c++-common/goacc/kernels-decompose-2.c: Update.
* c-c++-common/goacc/kernels-decompose-ice-1.c: Remove.
* c-c++-common/goacc/kernels-decompose-ice-2.c: Likewise.
* gfortran.dg/goacc/classify-kernels-parloops.f95: New.
* gfortran.dg/goacc/classify-kernels-unparallelized-parloops.f95:
Likewise.
* gfortran.dg/goacc/classify-kernels-unparallelized.f95: Test
'--param openacc-kernels=decompose'.
* gfortran.dg/goacc/classify-kernels.f95: Likewise.
libgomp/
PR middle-end/100280
* testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose-ice-1.c:
Update.
* testsuite/libgomp.oacc-c-c++-common/f-asyncwait-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c:
Likewise.
Suggested-by:
Julian Brown <julian@codesourcery.com>
Showing
- gcc/omp-oacc-kernels-decompose.cc 5 additions, 1 deletiongcc/omp-oacc-kernels-decompose.cc
- gcc/testsuite/c-c++-common/goacc/classify-kernels-parloops.c 41 additions, 0 deletionsgcc/testsuite/c-c++-common/goacc/classify-kernels-parloops.c
- gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized-parloops.c 45 additions, 0 deletions...+-common/goacc/classify-kernels-unparallelized-parloops.c
- gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized.c 4 additions, 1 deletion...uite/c-c++-common/goacc/classify-kernels-unparallelized.c
- gcc/testsuite/c-c++-common/goacc/classify-kernels.c 4 additions, 1 deletiongcc/testsuite/c-c++-common/goacc/classify-kernels.c
- gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c 15 additions, 1 deletiongcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
- gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-1.c 0 additions, 114 deletionsgcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-1.c
- gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c 0 additions, 22 deletionsgcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c
- gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c 19 additions, 0 deletions...stsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c
- gcc/testsuite/gfortran.dg/goacc/classify-kernels-parloops.f95 43 additions, 0 deletions...testsuite/gfortran.dg/goacc/classify-kernels-parloops.f95
- gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized-parloops.f95 47 additions, 0 deletions...ran.dg/goacc/classify-kernels-unparallelized-parloops.f95
- gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized.f95 4 additions, 1 deletion...ite/gfortran.dg/goacc/classify-kernels-unparallelized.f95
- gcc/testsuite/gfortran.dg/goacc/classify-kernels.f95 4 additions, 1 deletiongcc/testsuite/gfortran.dg/goacc/classify-kernels.f95
- libgomp/testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose-ice-1.c 1 addition, 1 deletion...p.oacc-c-c++-common/declare-vla-kernels-decompose-ice-1.c
- libgomp/testsuite/libgomp.oacc-c-c++-common/f-asyncwait-1.c 31 additions, 22 deletionslibgomp/testsuite/libgomp.oacc-c-c++-common/f-asyncwait-1.c
- libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c 1 addition, 5 deletions...testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c
Loading
Please register or sign in to comment