diff options
author | tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-02-23 15:07:54 +0000 |
---|---|---|
committer | tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-02-23 15:07:54 +0000 |
commit | 3a37a410bbfed45d04f06887c348938182369d5a (patch) | |
tree | 2254ef08257dd66588405e88271ecffacfbad76a /libgomp | |
parent | 462aa751a4a46a447717d242faf1cdb19ba1c443 (diff) | |
download | gcc-3a37a410bbfed45d04f06887c348938182369d5a.tar.gz |
Use plain -fopenacc to enable OpenACC kernels processing
gcc/
* tree-parloops.c (create_parallel_loop, gen_parallel_loop)
(parallelize_loops): In OpenACC kernels mode, set n_threads to
zero.
(pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
flag_openacc.
* tree-ssa-loop.c (gate_oacc_kernels): Likewise.
gcc/testsuite/
* c-c++-common/goacc/kernels-counter-vars-function-scope.c: Adjust
to -ftree-parallelize-loops/-fopenacc changes.
* c-c++-common/goacc/kernels-double-reduction-n.c: Likewise.
* c-c++-common/goacc/kernels-double-reduction.c: Likewise.
* c-c++-common/goacc/kernels-loop-2.c: Likewise.
* c-c++-common/goacc/kernels-loop-3.c: Likewise.
* c-c++-common/goacc/kernels-loop-g.c: Likewise.
* c-c++-common/goacc/kernels-loop-mod-not-zero.c: Likewise.
* c-c++-common/goacc/kernels-loop-n.c: Likewise.
* c-c++-common/goacc/kernels-loop-nest.c: Likewise.
* c-c++-common/goacc/kernels-loop.c: Likewise.
* c-c++-common/goacc/kernels-one-counter-var.c: Likewise.
* c-c++-common/goacc/kernels-reduction.c: Likewise.
* gfortran.dg/goacc/kernels-loop-inner.f95: Likewise.
* gfortran.dg/goacc/kernels-loops-adjacent.f95: Likewise.
libgomp/
* oacc-parallel.c (GOACC_parallel_keyed): Initialize dims.
* plugin/plugin-nvptx.c (nvptx_exec): Provide default values for
dims.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Adjust to
-ftree-parallelize-loops/-fopenacc changes.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c:
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233634 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp')
18 files changed, 51 insertions, 47 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 1394126f98f..e6a708255b0 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,35 @@ +2016-02-23 Thomas Schwinge <thomas@codesourcery.com> + + * oacc-parallel.c (GOACC_parallel_keyed): Initialize dims. + * plugin/plugin-nvptx.c (nvptx_exec): Provide default values for + dims. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Adjust to + -ftree-parallelize-loops/-fopenacc changes. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: + Likewise. + 2016-02-22 Cesar Philippidis <cesar@codesourcery.com> * testsuite/libgomp.oacc-c-c++-common/vprop.c: New test. diff --git a/libgomp/oacc-parallel.c b/libgomp/oacc-parallel.c index bc246510e2a..f795bf7f92c 100644 --- a/libgomp/oacc-parallel.c +++ b/libgomp/oacc-parallel.c @@ -103,6 +103,10 @@ GOACC_parallel_keyed (int device, void (*fn) (void *), return; } + /* Default: let the runtime choose. */ + for (i = 0; i != GOMP_DIM_MAX; i++) + dims[i] = 0; + va_start (ap, kinds); /* TODO: This will need amending when device_type is implemented. */ while ((tag = va_arg (ap, unsigned)) != 0) diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c index 7ec1810a046..3f1bb6d90e9 100644 --- a/libgomp/plugin/plugin-nvptx.c +++ b/libgomp/plugin/plugin-nvptx.c @@ -894,9 +894,21 @@ nvptx_exec (void (*fn), size_t mapnum, void **hostaddrs, void **devaddrs, /* Initialize the launch dimensions. Typically this is constant, provided by the device compiler, but we must permit runtime values. */ - for (i = 0; i != 3; i++) - if (targ_fn->launch->dim[i]) - dims[i] = targ_fn->launch->dim[i]; + int seen_zero = 0; + for (i = 0; i != GOMP_DIM_MAX; i++) + { + if (targ_fn->launch->dim[i]) + dims[i] = targ_fn->launch->dim[i]; + if (!dims[i]) + seen_zero = 1; + } + + if (seen_zero) + { + for (i = 0; i != GOMP_DIM_MAX; i++) + if (!dims[i]) + dims[i] = /* TODO */ 32; + } /* This reserves a chunk of a pre-allocated page of memory mapped on both the host and the device. HP is a host pointer to the new chunk, and DP is diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c index 13e57bd9877..c7592d6a340 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N (1024 * 512) diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c index f61a74a00fb..31114ac86d7 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N (1024 * 512) diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c index 2e4100fa7a2..d36592f7233 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N 32 diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c index b3e736bf358..e62297129fd 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N 32 diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c index 8b9affabedc..c73127897a9 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N 32 diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c index 83d4e7faf8f..67dcce26c89 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N 32 diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c index 01d5e5e4c24..b8b5ddeab83 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N 32 diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c index 61d1283a36a..9d9308a4a1f 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N 32 diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c index f7f04cb9ed5..997d6c7aad2 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N 100 diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c index 96b6e4eaf45..88258be16bd 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c @@ -1,5 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ /* { dg-additional-options "-g" } */ #include "kernels-loop.c" diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c index 1433cb203b8..147ebb59945 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N ((1024 * 512) + 1) diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c index fd0d5b193a8..9a3eaca1380 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N ((1024 * 512) + 1) diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c index 21d2599f0aa..28c725a61a2 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N 1000 diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop.c index 3762e5a8b9a..355123c6088 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define N (1024 * 512) diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c index 511e25f882a..8647a9432fc 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c @@ -1,6 +1,3 @@ -/* { dg-do run } */ -/* { dg-additional-options "-ftree-parallelize-loops=32" } */ - #include <stdlib.h> #define n 10000 |