-
- Downloads
OpenACC: Don't gang-privatize artificial variables [PR90115]
This patch prevents compiler-generated artificial variables from being
treated as privatization candidates for OpenACC.
The rationale is that e.g. "gang-private" variables actually must be
shared by each worker and vector spawned within a particular gang, but
that sharing is not necessary for any compiler-generated variable (at
least at present, but no such need is anticipated either). Variables on
the stack (and machine registers) are already private per-"thread"
(gang, worker and/or vector), and that's fine for artificial variables.
We're restricting this to blocks, as we still need to understand what it
means for a 'DECL_ARTIFICIAL' to appear in a 'private' clause.
Several tests need their scan output patterns adjusted to compensate.
2022-10-14 Julian Brown <julian@codesourcery.com>
PR middle-end/90115
gcc/
* omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not
privatization candidates.
libgomp/
* testsuite/libgomp.oacc-fortran/declare-1.f90: Adjust scan output.
* testsuite/libgomp.oacc-fortran/host_data-5.F90: Likewise.
* testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/print-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/privatized-ref-2.f90: Likewise.
Co-authored-by:
Thomas Schwinge <thomas@codesourcery.com>
Showing
- gcc/omp-low.cc 22 additions, 0 deletionsgcc/omp-low.cc
- libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90 1 addition, 1 deletionlibgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
- libgomp/testsuite/libgomp.oacc-fortran/host_data-5.F90 12 additions, 12 deletionslibgomp/testsuite/libgomp.oacc-fortran/host_data-5.F90
- libgomp/testsuite/libgomp.oacc-fortran/if-1.f90 6 additions, 6 deletionslibgomp/testsuite/libgomp.oacc-fortran/if-1.f90
- libgomp/testsuite/libgomp.oacc-fortran/print-1.f90 1 addition, 12 deletionslibgomp/testsuite/libgomp.oacc-fortran/print-1.f90
- libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90 2 additions, 6 deletionslibgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90
Loading
Please register or sign in to comment