[OpenACC] Extract 'pass_oacc_loop_designation' out of 'pass_oacc_device_lower'
authorThomas Schwinge <thomas@codesourcery.com>
Tue, 2 Mar 2021 12:20:11 +0000 (04:20 -0800)
committerThomas Schwinge <thomas@codesourcery.com>
Thu, 29 Jul 2021 07:19:44 +0000 (09:19 +0200)
commit0829ab79d37be6c59072af0c4f54043f7e9d23ea
tree77519632e6c2ea8281f55e17c3687c21cde62429
parentf0529d96f56758e56151f409c55bab3034163210
[OpenACC] Extract 'pass_oacc_loop_designation' out of 'pass_oacc_device_lower'

This really is a separate step -- and another pass to be added between the two,
later on.

gcc/
* omp-offload.c (oacc_loop_xform_head_tail, oacc_loop_process):
'update_stmt' after modification.
(pass_oacc_loop_designation): New function, extracted out of...
(pass_oacc_device_lower): ... this.
(pass_data_oacc_loop_designation, pass_oacc_loop_designation)
(make_pass_oacc_loop_designation): New
* passes.def: Add it.
* tree-parloops.c (create_parallel_loop): Adjust.
* tree-pass.h (make_pass_oacc_loop_designation): New.
gcc/testsuite/
* c-c++-common/goacc/classify-kernels-unparallelized.c:
's%oaccdevlow%oaccloops%g'.
* c-c++-common/goacc/classify-kernels.c: Likewise.
* c-c++-common/goacc/classify-parallel.c: Likewise.
* c-c++-common/goacc/classify-routine-nohost.c: Likewise.
* c-c++-common/goacc/classify-routine.c: Likewise.
* c-c++-common/goacc/classify-serial.c: Likewise.
* c-c++-common/goacc/routine-nohost-1.c: Likewise.
* g++.dg/goacc/template.C: Likewise.
* gcc.dg/goacc/loop-processing-1.c: Likewise.
* gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise.
* gfortran.dg/goacc/classify-kernels.f95: Likewise.
* gfortran.dg/goacc/classify-parallel.f95: Likewise.
* gfortran.dg/goacc/classify-routine-nohost.f95: Likewise.
* gfortran.dg/goacc/classify-routine.f95: Likewise.
* gfortran.dg/goacc/classify-serial.f95: Likewise.
* gfortran.dg/goacc/routine-multiple-directives-1.f90: Likewise.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/pr85486-2.c:
's%oaccdevlow%oaccloops%g'.
* testsuite/libgomp.oacc-c-c++-common/pr85486-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/pr85486.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/routine-nohost-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c:
Likewise.
* testsuite/libgomp.oacc-fortran/routine-nohost-1.f90: Likewise.

Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>
32 files changed:
gcc/omp-offload.c
gcc/passes.def
gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized.c
gcc/testsuite/c-c++-common/goacc/classify-kernels.c
gcc/testsuite/c-c++-common/goacc/classify-parallel.c
gcc/testsuite/c-c++-common/goacc/classify-routine-nohost.c
gcc/testsuite/c-c++-common/goacc/classify-routine.c
gcc/testsuite/c-c++-common/goacc/classify-serial.c
gcc/testsuite/c-c++-common/goacc/routine-nohost-1.c
gcc/testsuite/g++.dg/goacc/template.C
gcc/testsuite/gcc.dg/goacc/loop-processing-1.c
gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized.f95
gcc/testsuite/gfortran.dg/goacc/classify-kernels.f95
gcc/testsuite/gfortran.dg/goacc/classify-parallel.f95
gcc/testsuite/gfortran.dg/goacc/classify-routine-nohost.f95
gcc/testsuite/gfortran.dg/goacc/classify-routine.f95
gcc/testsuite/gfortran.dg/goacc/classify-serial.f95
gcc/testsuite/gfortran.dg/goacc/routine-multiple-directives-1.f90
gcc/tree-parloops.c
gcc/tree-pass.h
libgomp/testsuite/libgomp.oacc-c-c++-common/pr85486-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/pr85486-3.c
libgomp/testsuite/libgomp.oacc-c-c++-common/pr85486.c
libgomp/testsuite/libgomp.oacc-c-c++-common/routine-nohost-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c
libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c
libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c
libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c
libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c
libgomp/testsuite/libgomp.oacc-fortran/routine-nohost-1.f90