summaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
authortschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-23 15:07:54 +0000
committertschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-23 15:07:54 +0000
commit3a37a410bbfed45d04f06887c348938182369d5a (patch)
tree2254ef08257dd66588405e88271ecffacfbad76a /libgomp
parent462aa751a4a46a447717d242faf1cdb19ba1c443 (diff)
downloadgcc-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')
-rw-r--r--libgomp/ChangeLog32
-rw-r--r--libgomp/oacc-parallel.c4
-rw-r--r--libgomp/plugin/plugin-nvptx.c18
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c2
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c3
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