Message ID | 5640C0D0.8060509@mentor.com |
---|---|
State | New |
Headers | show |
On 09/11/15 16:50, Tom de Vries wrote: > On 09/11/15 16:35, Tom de Vries wrote: >> Hi, >> >> this patch series for stage1 trunk adds support to: >> - parallelize oacc kernels regions using parloops, and >> - map the loops onto the oacc gang dimension. >> >> The patch series contains these patches: >> >> 1 Insert new exit block only when needed in >> transform_to_exit_first_loop_alt >> 2 Make create_parallel_loop return void >> 3 Ignore reduction clause on kernels directive >> 4 Implement -foffload-alias >> 5 Add in_oacc_kernels_region in struct loop >> 6 Add pass_oacc_kernels >> 7 Add pass_dominator_oacc_kernels >> 8 Add pass_ch_oacc_kernels >> 9 Add pass_parallelize_loops_oacc_kernels >> 10 Add pass_oacc_kernels pass group in passes.def >> 11 Update testcases after adding kernels pass group >> 12 Handle acc loop directive >> 13 Add c-c++-common/goacc/kernels-*.c >> 14 Add gfortran.dg/goacc/kernels-*.f95 >> 15 Add libgomp.oacc-c-c++-common/kernels-*.c >> 16 Add libgomp.oacc-fortran/kernels-*.f95 >> >> The first 9 patches are more or less independent, but patches 10-16 are >> intended to be committed at the same time. >> >> Bootstrapped and reg-tested on x86_64. >> >> Build and reg-tested with nvidia accelerator, in combination with a >> patch that enables accelerator testing (which is submitted at >> https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01771.html ). >> >> I'll post the individual patches in reply to this message. > > As discussed here ( > https://gcc.gnu.org/ml/gcc-patches/2015-11/msg00785.html ), the kernels > directive does not allow the reduction clause. This patch fixes that. > Ping. Thanks, - Tom
On 24/11/15 13:21, Tom de Vries wrote: > On 09/11/15 16:50, Tom de Vries wrote: >> On 09/11/15 16:35, Tom de Vries wrote: >>> Hi, >>> >>> this patch series for stage1 trunk adds support to: >>> - parallelize oacc kernels regions using parloops, and >>> - map the loops onto the oacc gang dimension. >>> >>> The patch series contains these patches: >>> >>> 1 Insert new exit block only when needed in >>> transform_to_exit_first_loop_alt >>> 2 Make create_parallel_loop return void >>> 3 Ignore reduction clause on kernels directive >>> 4 Implement -foffload-alias >>> 5 Add in_oacc_kernels_region in struct loop >>> 6 Add pass_oacc_kernels >>> 7 Add pass_dominator_oacc_kernels >>> 8 Add pass_ch_oacc_kernels >>> 9 Add pass_parallelize_loops_oacc_kernels >>> 10 Add pass_oacc_kernels pass group in passes.def >>> 11 Update testcases after adding kernels pass group >>> 12 Handle acc loop directive >>> 13 Add c-c++-common/goacc/kernels-*.c >>> 14 Add gfortran.dg/goacc/kernels-*.f95 >>> 15 Add libgomp.oacc-c-c++-common/kernels-*.c >>> 16 Add libgomp.oacc-fortran/kernels-*.f95 >>> >>> The first 9 patches are more or less independent, but patches 10-16 are >>> intended to be committed at the same time. >>> >>> Bootstrapped and reg-tested on x86_64. >>> >>> Build and reg-tested with nvidia accelerator, in combination with a >>> patch that enables accelerator testing (which is submitted at >>> https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01771.html ). >>> >>> I'll post the individual patches in reply to this message. >> >> As discussed here ( >> https://gcc.gnu.org/ml/gcc-patches/2015-11/msg00785.html ), the kernels >> directive does not allow the reduction clause. This patch fixes that. >> > Ping^2. Thanks, - Tom
On Mon, Jan 18, 2016 at 03:24:21PM +0100, Tom de Vries wrote: > >>As discussed here ( > >>https://gcc.gnu.org/ml/gcc-patches/2015-11/msg00785.html ), the kernels > >>directive does not allow the reduction clause. This patch fixes that. > >> > > > > Ping^2. Ok. Jakub
Ignore reduction clause on kernels directive 2015-11-08 Tom de Vries <tom@codesourcery.com> * c-omp.c (c_oacc_split_loop_clauses): Don't copy OMP_CLAUSE_REDUCTION, classify as loop clause. --- gcc/c-family/c-omp.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/gcc/c-family/c-omp.c b/gcc/c-family/c-omp.c index 3e93b59..a3b99b2 100644 --- a/gcc/c-family/c-omp.c +++ b/gcc/c-family/c-omp.c @@ -867,7 +867,7 @@ c_omp_check_loop_iv_exprs (location_t stmt_loc, tree declv, tree decl, tree c_oacc_split_loop_clauses (tree clauses, tree *not_loop_clauses) { - tree next, loop_clauses, t; + tree next, loop_clauses; loop_clauses = *not_loop_clauses = NULL_TREE; for (; clauses ; clauses = next) @@ -886,16 +886,11 @@ c_oacc_split_loop_clauses (tree clauses, tree *not_loop_clauses) case OMP_CLAUSE_SEQ: case OMP_CLAUSE_INDEPENDENT: case OMP_CLAUSE_PRIVATE: + case OMP_CLAUSE_REDUCTION: OMP_CLAUSE_CHAIN (clauses) = loop_clauses; loop_clauses = clauses; break; - /* Reductions belong in both constructs. */ - case OMP_CLAUSE_REDUCTION: - t = copy_node (clauses); - OMP_CLAUSE_CHAIN (t) = loop_clauses; - loop_clauses = t; - /* Parallel/kernels clauses. */ default: OMP_CLAUSE_CHAIN (clauses) = *not_loop_clauses; -- 1.9.1