[OpenACC 'kernels'] '-fopenacc-kernels=[...]' -> '--param=openacc-kernels=[...]'
This configuration knob is temporary, and isn't really meant to be exposed to users. gcc/ * params.opt (-param=openacc-kernels=): Add. * omp-oacc-kernels-decompose.cc (pass_omp_oacc_kernels_decompose::gate): Use it. * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move... (--param): ... here, 'openacc-kernels'. gcc/c-family/ * c.opt (fopenacc-kernels=): Remove. gcc/fortran/ * lang.opt (fopenacc-kernels=): Remove. gcc/testsuite/ * c-c++-common/goacc/if-clause-2.c: '-fopenacc-kernels=[...]' -> '--param=openacc-kernels=[...]'. * c-c++-common/goacc/kernels-decompose-1.c: Likewise. * c-c++-common/goacc/kernels-decompose-2.c: Likewise. * c-c++-common/goacc/kernels-decompose-ice-1.c: Likewise. * c-c++-common/goacc/kernels-decompose-ice-2.c: Likewise. * gfortran.dg/goacc/kernels-decompose-1.f95: Likewise. * gfortran.dg/goacc/kernels-decompose-2.f95: Likewise. * gfortran.dg/goacc/kernels-tree.f95: Likewise. libgomp/ * testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose-ice-1.c: '-fopenacc-kernels=[...]' -> '--param=openacc-kernels=[...]'. * testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c: Likewise. * testsuite/libgomp.oacc-fortran/pr94358-1.f90: Likewise.
This commit is contained in:
parent
15cfa8ddac
commit
3395dfc4da
17 changed files with 37 additions and 43 deletions
|
@ -1873,19 +1873,6 @@ fopenacc-dim=
|
|||
C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
|
||||
Specify default OpenACC compute dimensions.
|
||||
|
||||
fopenacc-kernels=
|
||||
C ObjC C++ ObjC++ RejectNegative Joined Enum(openacc_kernels) Var(flag_openacc_kernels) Init(OPENACC_KERNELS_PARLOOPS)
|
||||
-fopenacc-kernels=[decompose|parloops] Specify mode of OpenACC 'kernels' constructs handling.
|
||||
|
||||
Enum
|
||||
Name(openacc_kernels) Type(enum openacc_kernels)
|
||||
|
||||
EnumValue
|
||||
Enum(openacc_kernels) String(decompose) Value(OPENACC_KERNELS_DECOMPOSE)
|
||||
|
||||
EnumValue
|
||||
Enum(openacc_kernels) String(parloops) Value(OPENACC_KERNELS_PARLOOPS)
|
||||
|
||||
fopenmp
|
||||
C ObjC C++ ObjC++ LTO Var(flag_openmp)
|
||||
Enable OpenMP (implies -frecursive in Fortran).
|
||||
|
|
|
@ -202,7 +202,7 @@ in the following sections.
|
|||
-aux-info @var{filename} -fallow-parameterless-variadic-functions @gol
|
||||
-fno-asm -fno-builtin -fno-builtin-@var{function} -fgimple@gol
|
||||
-fhosted -ffreestanding @gol
|
||||
-fopenacc -fopenacc-dim=@var{geom} -fopenacc-kernels=@var{mode} @gol
|
||||
-fopenacc -fopenacc-dim=@var{geom} @gol
|
||||
-fopenmp -fopenmp-simd @gol
|
||||
-fms-extensions -fplan9-extensions -fsso-struct=@var{endianness} @gol
|
||||
-fallow-single-precision -fcond-mismatch -flax-vector-conversions @gol
|
||||
|
@ -2619,18 +2619,6 @@ not explicitly specify. The @var{geom} value is a triple of
|
|||
':'-separated sizes, in order 'gang', 'worker' and, 'vector'. A size
|
||||
can be omitted, to use a target-specific default value.
|
||||
|
||||
@item -fopenacc-kernels=@var{mode}
|
||||
@opindex fopenacc-kernels
|
||||
@cindex OpenACC accelerator programming
|
||||
Specify mode of OpenACC `kernels' constructs handling.
|
||||
With @option{-fopenacc-kernels=decompose}, OpenACC `kernels'
|
||||
constructs are decomposed into parts, a sequence of compute
|
||||
constructs, each then handled individually.
|
||||
This is work in progress.
|
||||
With @option{-fopenacc-kernels=parloops}, OpenACC `kernels' constructs
|
||||
are handled by the @samp{parloops} pass, en bloc.
|
||||
This is the current default.
|
||||
|
||||
@item -fopenmp
|
||||
@opindex fopenmp
|
||||
@cindex OpenMP parallel
|
||||
|
@ -14376,6 +14364,16 @@ The parameter is used only in GIMPLE FE.
|
|||
The maximum number of 'after supernode' exploded nodes within the analyzer
|
||||
per supernode, before terminating analysis.
|
||||
|
||||
@item openacc-kernels
|
||||
Specify mode of OpenACC `kernels' constructs handling.
|
||||
With @option{--param=openacc-kernels=decompose}, OpenACC `kernels'
|
||||
constructs are decomposed into parts, a sequence of compute
|
||||
constructs, each then handled individually.
|
||||
This is work in progress.
|
||||
With @option{--param=openacc-kernels=parloops}, OpenACC `kernels'
|
||||
constructs are handled by the @samp{parloops} pass, en bloc.
|
||||
This is the current default.
|
||||
|
||||
@end table
|
||||
|
||||
The following choices of @var{name} are available on AArch64 targets:
|
||||
|
|
|
@ -691,10 +691,6 @@ fopenacc-dim=
|
|||
Fortran LTO Joined Var(flag_openacc_dims)
|
||||
; Documented in C
|
||||
|
||||
fopenacc-kernels=
|
||||
Fortran RejectNegative Joined Enum(openacc_kernels) Var(flag_openacc_kernels) Init(OPENACC_KERNELS_PARLOOPS)
|
||||
; Documented in C
|
||||
|
||||
fopenmp
|
||||
Fortran LTO
|
||||
; Documented in C
|
||||
|
|
|
@ -1527,7 +1527,7 @@ public:
|
|||
virtual bool gate (function *)
|
||||
{
|
||||
return (flag_openacc
|
||||
&& flag_openacc_kernels == OPENACC_KERNELS_DECOMPOSE);
|
||||
&& param_openacc_kernels == OPENACC_KERNELS_DECOMPOSE);
|
||||
}
|
||||
virtual unsigned int execute (function *)
|
||||
{
|
||||
|
|
|
@ -777,6 +777,19 @@ The minimum probability of reaching a source block for interblock speculative sc
|
|||
Common Joined UInteger Var(param_min_vect_loop_bound) Param Optimization
|
||||
If -ftree-vectorize is used, the minimal loop bound of a loop to be considered for vectorization.
|
||||
|
||||
-param=openacc-kernels=
|
||||
Common Joined Enum(openacc_kernels) Var(param_openacc_kernels) Init(OPENACC_KERNELS_PARLOOPS) Param
|
||||
--param=openacc-kernels=[decompose|parloops] Specify mode of OpenACC 'kernels' constructs handling.
|
||||
|
||||
Enum
|
||||
Name(openacc_kernels) Type(enum openacc_kernels)
|
||||
|
||||
EnumValue
|
||||
Enum(openacc_kernels) String(decompose) Value(OPENACC_KERNELS_DECOMPOSE)
|
||||
|
||||
EnumValue
|
||||
Enum(openacc_kernels) String(parloops) Value(OPENACC_KERNELS_PARLOOPS)
|
||||
|
||||
-param=parloops-chunk-size=
|
||||
Common Joined UInteger Var(param_parloops_chunk_size) Param Optimization
|
||||
Chunk size of omp schedule for loops parallelized by parloops.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-additional-options "-fdump-tree-gimple" } */
|
||||
/* { dg-additional-options "-fopenacc-kernels=decompose" }
|
||||
/* { dg-additional-options "--param=openacc-kernels=decompose" }
|
||||
{ dg-additional-options "-fdump-tree-omp_oacc_kernels_decompose" } */
|
||||
|
||||
void
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
/* { dg-additional-options "-fopt-info-omp-all" } */
|
||||
/* { dg-additional-options "-fdump-tree-gimple" } */
|
||||
/* { dg-additional-options "-fopenacc-kernels=decompose" }
|
||||
/* { dg-additional-options "--param=openacc-kernels=decompose" }
|
||||
{ dg-additional-options "-fdump-tree-omp_oacc_kernels_decompose" } */
|
||||
|
||||
/* See also '../../gfortran.dg/goacc/kernels-decompose-1.f95'. */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* Test OpenACC 'kernels' construct decomposition. */
|
||||
|
||||
/* { dg-additional-options "-fopt-info-omp-all" } */
|
||||
/* { dg-additional-options "-fopenacc-kernels=decompose" }
|
||||
/* { dg-additional-options "--param=openacc-kernels=decompose" }
|
||||
/* { dg-additional-options "-O2" } for 'parloops'. */
|
||||
|
||||
/* See also '../../gfortran.dg/goacc/kernels-decompose-2.f95'. */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* Test OpenACC 'kernels' construct decomposition. */
|
||||
|
||||
/* { dg-additional-options "-fopt-info-omp-all" } */
|
||||
/* { dg-additional-options "-fopenacc-kernels=decompose" } */
|
||||
/* { dg-additional-options "--param=openacc-kernels=decompose" } */
|
||||
/* { dg-ice "TODO" }
|
||||
{ dg-prune-output "during GIMPLE pass: omplower" } */
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Test OpenACC 'kernels' construct decomposition. */
|
||||
|
||||
/* { dg-additional-options "-fopenacc-kernels=decompose" } */
|
||||
/* { dg-additional-options "--param=openacc-kernels=decompose" } */
|
||||
/* { dg-ice "TODO" }
|
||||
{ dg-prune-output "during GIMPLE pass: omplower" } */
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
! { dg-additional-options "-fopt-info-omp-all" }
|
||||
! { dg-additional-options "-fdump-tree-gimple" }
|
||||
! { dg-additional-options "-fopenacc-kernels=decompose" }
|
||||
! { dg-additional-options "--param=openacc-kernels=decompose" }
|
||||
! { dg-additional-options "-fdump-tree-omp_oacc_kernels_decompose" }
|
||||
|
||||
! See also '../../c-c++-common/goacc/kernels-decompose-1.c'.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Test OpenACC 'kernels' construct decomposition.
|
||||
|
||||
! { dg-additional-options "-fopt-info-omp-all" }
|
||||
! { dg-additional-options "-fopenacc-kernels=decompose" }
|
||||
! { dg-additional-options "--param=openacc-kernels=decompose" }
|
||||
! { dg-additional-options "-O2" } for 'parloops'.
|
||||
|
||||
! See also '../../c-c++-common/goacc/kernels-decompose-2.c'.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! { dg-do compile }
|
||||
! { dg-additional-options "-fdump-tree-original" }
|
||||
! { dg-additional-options "-fopenacc-kernels=decompose" }
|
||||
! { dg-additional-options "--param=openacc-kernels=decompose" }
|
||||
! { dg-additional-options "-fdump-tree-omp_oacc_kernels_decompose" }
|
||||
|
||||
program test
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* { dg-additional-options "-fopenacc-kernels=decompose" } */
|
||||
/* { dg-additional-options "--param=openacc-kernels=decompose" } */
|
||||
/* Hopefully, this is the same issue as '../../../gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-1.c'.
|
||||
{ dg-ice "TODO" }
|
||||
TODO { dg-prune-output "during GIMPLE pass: omplower" }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* { dg-additional-options "-fopenacc-kernels=decompose" } */
|
||||
/* { dg-additional-options "--param=openacc-kernels=decompose" } */
|
||||
|
||||
/* See also 'declare-vla-kernels-decompose-ice-1.c'. */
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* Test OpenACC 'kernels' construct decomposition. */
|
||||
|
||||
/* { dg-additional-options "-fopt-info-omp-all" } */
|
||||
/* { dg-additional-options "-fopenacc-kernels=decompose" } */
|
||||
/* { dg-additional-options "--param=openacc-kernels=decompose" } */
|
||||
|
||||
/* It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
|
||||
passed to 'incr' may be unset, and in that case, it will be set to [...]",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! { dg-do run }
|
||||
! { dg-additional-options "-fopt-info-omp-all" }
|
||||
! { dg-additional-options "-fopenacc-kernels=decompose" }
|
||||
! { dg-additional-options "--param=openacc-kernels=decompose" }
|
||||
|
||||
! It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
|
||||
! passed to 'incr' may be unset, and in that case, it will be set to [...]",
|
||||
|
|
Loading…
Add table
Reference in a new issue