From: Thomas Schwinge <thomas@codesourcery.com>
To: Julian Brown <julian@codesourcery.com>,
GCC Patches <gcc-patches@gcc.gnu.org>,
Jakub Jelinek <jakub@redhat.com>
Cc: James Norris <jnorris@codesourcery.com>,
"Joseph S. Myers" <joseph@codesourcery.com>,
Nathan Sidwell <Nathan_Sidwell@mentor.com>,
Cesar Philippidis <cesar@codesourcery.com>
Subject: Re: [OpenACC 0/7] host_data construct
Date: Wed, 02 Dec 2015 15:59:00 -0000 [thread overview]
Message-ID: <877fkwn8p6.fsf@kepler.schwinge.homeip.net> (raw)
In-Reply-To: <20151130193034.71143aa4@octopus>
[-- Attachment #1: Type: text/plain, Size: 21493 bytes --]
Hi!
Cesar and Jim copied, for help with Fortran and generally testsuite
things.
On Mon, 30 Nov 2015 19:30:34 +0000, Julian Brown <julian@codesourcery.com> wrote:
> [patch]
First, thanks!
> Tests look OK (libgomp/gcc/g++/libstdc++), and the new ones pass.
I see a regression (ICE) in gfortran.dg/goacc/coarray.f95 (done: XFAILed,
and obsolete dg-excess-errors directives removed; compare to
gfortran.dg/goacc/coarray_2.f90), and I see new FAILs for non-offloading
execution of libgomp.oacc-c-c++-common/host_data-2.c,
libgomp.oacc-c-c++-common/host_data-4.c, and
libgomp.oacc-c-c++-common/host_data-5.c (done: see below); confirmed by a
number of reports on the <gcc-regression@gcc.gnu.org> and
<gcc-testresults@gcc.gnu.org> mailing lists. I can understand that you
didn't see the Fortran problem if not running Fortrant testing (but
why?), but it's strange that you didn't see the libgomp C/C++ FAILs.
A few patch review items, some of which I've already addressed (see
below).
> --- a/gcc/c/c-parser.c
> +++ b/gcc/c/c-parser.c
> @@ -10279,6 +10279,8 @@ c_parser_omp_clause_name (c_parser *parser)
> result = PRAGMA_OMP_CLAUSE_UNTIED;
> else if (!strcmp ("use_device_ptr", p))
> result = PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR;
> + else if (!strcmp ("use_device", p))
> + result = PRAGMA_OACC_CLAUSE_USE_DEVICE;
"use_device" sorts before "use_device_ptr". (Done.)
> @@ -12940,6 +12951,10 @@ c_parser_oacc_all_clauses (c_parser *parser, omp_clause_mask mask,
> clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
> c_name = "self";
> break;
> + case PRAGMA_OACC_CLAUSE_USE_DEVICE:
> + clauses = c_parser_oacc_clause_use_device (parser, clauses);
> + c_name = "use_device";
> + break;
> case PRAGMA_OACC_CLAUSE_SEQ:
> clauses = c_parser_oacc_simple_clause (parser, OMP_CLAUSE_SEQ,
> clauses);
Sorting? (Done.)
> --- a/gcc/cp/parser.c
> +++ b/gcc/cp/parser.c
> @@ -29232,6 +29232,8 @@ cp_parser_omp_clause_name (cp_parser *parser)
> result = PRAGMA_OMP_CLAUSE_UNTIED;
> else if (!strcmp ("use_device_ptr", p))
> result = PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR;
> + else if (!strcmp ("use_device", p))
> + result = PRAGMA_OACC_CLAUSE_USE_DEVICE;
> break;
Likewise. (Done.)
> @@ -31598,6 +31600,11 @@ cp_parser_oacc_all_clauses (cp_parser *parser, omp_clause_mask mask,
> clauses = cp_parser_oacc_data_clause (parser, c_kind, clauses);
> c_name = "self";
> break;
> + case PRAGMA_OACC_CLAUSE_USE_DEVICE:
> + clauses = cp_parser_omp_var_list (parser, OMP_CLAUSE_USE_DEVICE,
> + clauses);
> + c_name = "use_device";
> + break;
> case PRAGMA_OACC_CLAUSE_SEQ:
> clauses = cp_parser_oacc_simple_clause (parser, OMP_CLAUSE_SEQ,
> clauses, here);
Likewise. (Done.)
> +#define OACC_HOST_DATA_CLAUSE_MASK \
> + ( (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_USE_DEVICE) )
> +
> +/* OpenACC 2.0:
> + # pragma acc host_data <clauses> new-line
> + structured-block */
Define OACC_HOST_DATA_CLAUSE_MASK after the "accepted syntax" comment.
(Done.)
There is no handlig of OMP_CLAUSE_USE_DEVICE in
gcc/cp/pt.c:tsubst_omp_clauses. (Done.)
> --- a/gcc/gimplify.c
> +++ b/gcc/gimplify.c
> @@ -6418,6 +6422,7 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p,
| if (!lang_GNU_Fortran ())
| switch (code)
| {
| case OMP_TARGET:
> case OMP_TARGET_DATA:
> case OMP_TARGET_ENTER_DATA:
> case OMP_TARGET_EXIT_DATA:
> + case OACC_HOST_DATA:
> ctx->target_firstprivatize_array_bases = true;
> default:
> break;
I understand it's not yet relevant/supported for OpenMP in Fortran, but
why is C/C++ vs. Fortran being handled differently here for OpenACC
host_data?
> --- a/libgomp/oacc-parallel.c
> +++ b/libgomp/oacc-parallel.c
> +void
> +GOACC_host_data (int device, size_t mapnum,
> + void **hostaddrs, size_t *sizes, unsigned short *kinds)
> +{
> + bool host_fallback = device == GOMP_DEVICE_HOST_FALLBACK;
> + struct target_mem_desc *tgt;
> +
> +#ifdef HAVE_INTTYPES_H
> + gomp_debug (0, "%s: mapnum=%"PRIu64", hostaddrs=%p, size=%p, kinds=%p\n",
> + __FUNCTION__, (uint64_t) mapnum, hostaddrs, sizes, kinds);
> +#else
> + gomp_debug (0, "%s: mapnum=%lu, hostaddrs=%p, sizes=%p, kinds=%p\n",
> + __FUNCTION__, (unsigned long) mapnum, hostaddrs, sizes, kinds);
> +#endif
> +
> + goacc_lazy_initialize ();
> +
> + struct goacc_thread *thr = goacc_thread ();
> + struct gomp_device_descr *acc_dev = thr->dev;
> +
> + /* Host fallback or 'do nothing'. */
> + if ((acc_dev->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
> + || host_fallback)
> + {
> + tgt = gomp_map_vars (NULL, 0, NULL, NULL, NULL, NULL, true,
> + GOMP_MAP_VARS_OPENACC);
> + tgt->prev = thr->mapped_data;
> + thr->mapped_data = tgt;
> +
> + return;
> + }
> +
> + gomp_debug (0, " %s: prepare mappings\n", __FUNCTION__);
> + tgt = gomp_map_vars (acc_dev, mapnum, hostaddrs, NULL, sizes, kinds, true,
> + GOMP_MAP_VARS_OPENACC);
> + gomp_debug (0, " %s: mappings prepared\n", __FUNCTION__);
> + tgt->prev = thr->mapped_data;
> + thr->mapped_data = tgt;
> +}
Isn't that identical to GOACC_data_start? Can we thus get rid of it?
> --- /dev/null
> +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-1.c
> @@ -0,0 +1,100 @@
> +/* { dg-do run { target openacc_nvidia_accel_selected } } */
> +[...]
> --- /dev/null
> +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c
> @@ -0,0 +1,31 @@
> +/* { dg-do run } */
FAILs for non-offloading execution; restrict testing as done in
libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-1.c. (Done.)
(Hopefully, that's the intention?)
> --- /dev/null
> +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c
> @@ -0,0 +1,29 @@
> +/* { dg-do run } */
Likewise. (Done.)
> --- /dev/null
> +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c
> @@ -0,0 +1,38 @@
> +/* { dg-do run } */
Likewise. (Done.)
> --- /dev/null
> +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-3.c
> @@ -0,0 +1,29 @@
> +/* { dg-do compile } */
Compile tests (checking compiler diagnostics) belong into
gcc/testsuite/. (Done.)
> --- /dev/null
> +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c
> @@ -0,0 +1,31 @@
> +/* { dg-do compile } */
Likewise. (Done.)
What about the test cases present on gomp-4_0-branch,
gcc/testsuite/c-c++-common/goacc/host_data-1.c,
gcc/testsuite/c-c++-common/goacc/host_data-2.c,
gcc/testsuite/c-c++-common/goacc/host_data-3.c, and
gcc/testsuite/c-c++-common/goacc/host_data-4.c, that have not been part
of your submission/commit?
Also, given the missing handling of OMP_CLAUSE_USE_DEVICE in
gcc/cp/pt.c:tsubst_omp_clauses, I assert we don't have any testsuite
coverage for C++ templates.
Your submission/commit didn't have any execution tests for OpenACC
host_data in Fortran. On gomp-4_0-branch, there is
libgomp/testsuite/libgomp.oacc-fortran/host_data-1.f90 at least.
For the "(Done.)" items, as obvious, committed to trunk in r231184:
commit 2a7545d57731de7d4918a8786c972259488dbc56
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed Dec 2 15:53:34 2015 +0000
Some OpenACC host_data cleanup
gcc/c/
* c-parser.c (c_parser_omp_clause_name)
(c_parser_oacc_all_clauses): Alphabetical sorting.
gcc/cp/
* parser.c (cp_parser_omp_clause_name)
(cp_parser_oacc_all_clauses): Alphabetical sorting.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE.
gcc/testsuite/
* c-c++-common/goacc/host_data-5.c: New file.
* c-c++-common/goacc/host_data-6.c: Likewise.
* gfortran.dg/goacc/coarray.f95: XFAIL.
* gfortran.dg/goacc/coarray_2.f90: Adjust dg-excess-errors
directive.
* gfortran.dg/goacc/host_data-tree.f95: Remove dg-prune-output
directive.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
target openacc_nvidia_accel_selected.
* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231184 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/c/ChangeLog | 5 +++++
gcc/c/c-parser.c | 12 ++++++------
gcc/cp/ChangeLog | 6 ++++++
gcc/cp/parser.c | 20 ++++++++++----------
gcc/cp/pt.c | 2 ++
gcc/testsuite/ChangeLog | 15 +++++++++++++++
.../testsuite/c-c++-common/goacc/host_data-5.c | 6 ------
.../testsuite/c-c++-common/goacc}/host_data-6.c | 6 ------
gcc/testsuite/gfortran.dg/goacc/coarray.f95 | 8 ++++----
gcc/testsuite/gfortran.dg/goacc/coarray_2.f90 | 2 +-
gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95 | 1 -
libgomp/ChangeLog | 9 +++++++++
.../libgomp.oacc-c-c++-common/host_data-2.c | 2 +-
.../libgomp.oacc-c-c++-common/host_data-4.c | 2 +-
.../libgomp.oacc-c-c++-common/host_data-5.c | 2 +-
15 files changed, 61 insertions(+), 37 deletions(-)
diff --git gcc/c/ChangeLog gcc/c/ChangeLog
index acb8ee4..e517467 100644
--- gcc/c/ChangeLog
+++ gcc/c/ChangeLog
@@ -1,3 +1,8 @@
+2015-12-02 Thomas Schwinge <thomas@codesourcery.com>
+
+ * c-parser.c (c_parser_omp_clause_name)
+ (c_parser_oacc_all_clauses): Alphabetical sorting.
+
2015-12-02 Jakub Jelinek <jakub@redhat.com>
PR c/68533
diff --git gcc/c/c-parser.c gcc/c/c-parser.c
index d4c512f..ee0a305 100644
--- gcc/c/c-parser.c
+++ gcc/c/c-parser.c
@@ -10277,10 +10277,10 @@ c_parser_omp_clause_name (c_parser *parser)
result = PRAGMA_OMP_CLAUSE_UNIFORM;
else if (!strcmp ("untied", p))
result = PRAGMA_OMP_CLAUSE_UNTIED;
- else if (!strcmp ("use_device_ptr", p))
- result = PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR;
else if (!strcmp ("use_device", p))
result = PRAGMA_OACC_CLAUSE_USE_DEVICE;
+ else if (!strcmp ("use_device_ptr", p))
+ result = PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR;
break;
case 'v':
if (!strcmp ("vector", p))
@@ -12951,10 +12951,6 @@ c_parser_oacc_all_clauses (c_parser *parser, omp_clause_mask mask,
clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
c_name = "self";
break;
- case PRAGMA_OACC_CLAUSE_USE_DEVICE:
- clauses = c_parser_oacc_clause_use_device (parser, clauses);
- c_name = "use_device";
- break;
case PRAGMA_OACC_CLAUSE_SEQ:
clauses = c_parser_oacc_simple_clause (parser, OMP_CLAUSE_SEQ,
clauses);
@@ -12964,6 +12960,10 @@ c_parser_oacc_all_clauses (c_parser *parser, omp_clause_mask mask,
clauses = c_parser_oacc_clause_tile (parser, clauses);
c_name = "tile";
break;
+ case PRAGMA_OACC_CLAUSE_USE_DEVICE:
+ clauses = c_parser_oacc_clause_use_device (parser, clauses);
+ c_name = "use_device";
+ break;
case PRAGMA_OACC_CLAUSE_VECTOR:
c_name = "vector";
clauses = c_parser_oacc_shape_clause (parser, OMP_CLAUSE_VECTOR,
diff --git gcc/cp/ChangeLog gcc/cp/ChangeLog
index 385ba63..d2a7e99 100644
--- gcc/cp/ChangeLog
+++ gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2015-12-02 Thomas Schwinge <thomas@codesourcery.com>
+
+ * parser.c (cp_parser_omp_clause_name)
+ (cp_parser_oacc_all_clauses): Alphabetical sorting.
+ * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE.
+
2015-12-02 Andreas Arnez <arnez@linux.vnet.ibm.com>
PR gcov-profile/68603
diff --git gcc/cp/parser.c gcc/cp/parser.c
index f78df02..b4ecac7 100644
--- gcc/cp/parser.c
+++ gcc/cp/parser.c
@@ -29230,10 +29230,10 @@ cp_parser_omp_clause_name (cp_parser *parser)
result = PRAGMA_OMP_CLAUSE_UNIFORM;
else if (!strcmp ("untied", p))
result = PRAGMA_OMP_CLAUSE_UNTIED;
- else if (!strcmp ("use_device_ptr", p))
- result = PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR;
else if (!strcmp ("use_device", p))
result = PRAGMA_OACC_CLAUSE_USE_DEVICE;
+ else if (!strcmp ("use_device_ptr", p))
+ result = PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR;
break;
case 'v':
if (!strcmp ("vector", p))
@@ -31600,11 +31600,6 @@ cp_parser_oacc_all_clauses (cp_parser *parser, omp_clause_mask mask,
clauses = cp_parser_oacc_data_clause (parser, c_kind, clauses);
c_name = "self";
break;
- case PRAGMA_OACC_CLAUSE_USE_DEVICE:
- clauses = cp_parser_omp_var_list (parser, OMP_CLAUSE_USE_DEVICE,
- clauses);
- c_name = "use_device";
- break;
case PRAGMA_OACC_CLAUSE_SEQ:
clauses = cp_parser_oacc_simple_clause (parser, OMP_CLAUSE_SEQ,
clauses, here);
@@ -31614,6 +31609,11 @@ cp_parser_oacc_all_clauses (cp_parser *parser, omp_clause_mask mask,
clauses = cp_parser_oacc_clause_tile (parser, here, clauses);
c_name = "tile";
break;
+ case PRAGMA_OACC_CLAUSE_USE_DEVICE:
+ clauses = cp_parser_omp_var_list (parser, OMP_CLAUSE_USE_DEVICE,
+ clauses);
+ c_name = "use_device";
+ break;
case PRAGMA_OACC_CLAUSE_VECTOR:
c_name = "vector";
clauses = cp_parser_oacc_shape_clause (parser, OMP_CLAUSE_VECTOR,
@@ -34516,13 +34516,13 @@ cp_parser_oacc_data (cp_parser *parser, cp_token *pragma_tok)
return stmt;
}
-#define OACC_HOST_DATA_CLAUSE_MASK \
- ( (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_USE_DEVICE) )
-
/* OpenACC 2.0:
# pragma acc host_data <clauses> new-line
structured-block */
+#define OACC_HOST_DATA_CLAUSE_MASK \
+ ( (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_USE_DEVICE) )
+
static tree
cp_parser_oacc_host_data (cp_parser *parser, cp_token *pragma_tok)
{
diff --git gcc/cp/pt.c gcc/cp/pt.c
index 5befd64..d1d1e4e 100644
--- gcc/cp/pt.c
+++ gcc/cp/pt.c
@@ -14387,6 +14387,7 @@ tsubst_omp_clauses (tree clauses, bool declare_simd, bool allow_fields,
case OMP_CLAUSE_FROM:
case OMP_CLAUSE_TO:
case OMP_CLAUSE_MAP:
+ case OMP_CLAUSE_USE_DEVICE:
case OMP_CLAUSE_USE_DEVICE_PTR:
case OMP_CLAUSE_IS_DEVICE_PTR:
OMP_CLAUSE_DECL (nc)
@@ -14513,6 +14514,7 @@ tsubst_omp_clauses (tree clauses, bool declare_simd, bool allow_fields,
case OMP_CLAUSE_COPYPRIVATE:
case OMP_CLAUSE_LINEAR:
case OMP_CLAUSE_REDUCTION:
+ case OMP_CLAUSE_USE_DEVICE:
case OMP_CLAUSE_USE_DEVICE_PTR:
case OMP_CLAUSE_IS_DEVICE_PTR:
/* tsubst_expr on SCOPE_REF results in returning
diff --git gcc/testsuite/ChangeLog gcc/testsuite/ChangeLog
index 5fe26bb..4f7af87 100644
--- gcc/testsuite/ChangeLog
+++ gcc/testsuite/ChangeLog
@@ -1,3 +1,18 @@
+2015-12-02 Thomas Schwinge <thomas@codesourcery.com>
+
+ * gfortran.dg/goacc/coarray.f95: XFAIL.
+ * gfortran.dg/goacc/coarray_2.f90: Adjust dg-excess-errors
+ directive.
+ * gfortran.dg/goacc/host_data-tree.f95: Remove dg-prune-output
+ directive.
+
+2015-12-02 Thomas Schwinge <thomas@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+ James Norris <James_Norris@mentor.com>
+
+ * c-c++-common/goacc/host_data-5.c: New file.
+ * c-c++-common/goacc/host_data-6.c: Likewise.
+
2015-12-02 Tom de Vries <tom@codesourcery.com>
* c-c++-common/goacc/kernels-default-2.c: New test.
diff --git libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-3.c gcc/testsuite/c-c++-common/goacc/host_data-5.c
similarity index 82%
rename from libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-3.c
rename to gcc/testsuite/c-c++-common/goacc/host_data-5.c
index 7d9b5f7..f372fbd 100644
--- libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-3.c
+++ gcc/testsuite/c-c++-common/goacc/host_data-5.c
@@ -1,8 +1,5 @@
/* { dg-do compile } */
-#include <openacc.h>
-#include <stdlib.h>
-
#define N 1024
int main (int argc, char* argv[])
@@ -20,9 +17,6 @@ int main (int argc, char* argv[])
xp = x;
}
}
-
- if (xp != acc_deviceptr (x))
- abort ();
}
return 0;
diff --git libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c gcc/testsuite/c-c++-common/goacc/host_data-6.c
similarity index 84%
rename from libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c
rename to gcc/testsuite/c-c++-common/goacc/host_data-6.c
index a841488..8be7912 100644
--- libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c
+++ gcc/testsuite/c-c++-common/goacc/host_data-6.c
@@ -1,8 +1,5 @@
/* { dg-do compile } */
-#include <openacc.h>
-#include <stdlib.h>
-
#define N 1024
int main (int argc, char* argv[])
@@ -22,9 +19,6 @@ int main (int argc, char* argv[])
xp = x; /* { dg-error "variable 'x' declared in enclosing 'host_data' region" } */
}
}
-
- if (xp != acc_deviceptr (x))
- abort ();
}
return 0;
diff --git gcc/testsuite/gfortran.dg/goacc/coarray.f95 gcc/testsuite/gfortran.dg/goacc/coarray.f95
index 130ffc3..d2f10d5 100644
--- gcc/testsuite/gfortran.dg/goacc/coarray.f95
+++ gcc/testsuite/gfortran.dg/goacc/coarray.f95
@@ -1,7 +1,9 @@
! { dg-do compile }
! { dg-additional-options "-fcoarray=single" }
-
-! TODO: These cases must fail
+!
+! PR fortran/63861
+! { dg-xfail-if "<http://gcc.gnu.org/PR63861>" { *-*-* } }
+! { dg-excess-errors "TODO" }
module test
contains
@@ -9,7 +11,6 @@ contains
implicit none
integer :: i
integer, codimension[*] :: a
- ! { dg-excess-errors "sorry, unimplemented: directive not yet implemented" }
!$acc declare device_resident (a)
!$acc data copy (a)
!$acc end data
@@ -17,7 +18,6 @@ contains
!$acc end data
!$acc parallel private (a)
!$acc end parallel
- ! { dg-excess-errors "sorry, unimplemented: directive not yet implemented" }
!$acc host_data use_device (a)
!$acc end host_data
!$acc parallel loop reduction(+:a)
diff --git gcc/testsuite/gfortran.dg/goacc/coarray_2.f90 gcc/testsuite/gfortran.dg/goacc/coarray_2.f90
index f9cf9ac..87e04d5 100644
--- gcc/testsuite/gfortran.dg/goacc/coarray_2.f90
+++ gcc/testsuite/gfortran.dg/goacc/coarray_2.f90
@@ -3,6 +3,7 @@
!
! PR fortran/63861
! { dg-xfail-if "<http://gcc.gnu.org/PR63861>" { *-*-* } }
+! { dg-excess-errors "TODO" }
module test
contains
@@ -106,4 +107,3 @@ contains
!$acc update self (a)
end subroutine oacc4
end module test
-! { dg-excess-errors "sorry, unimplemented: directive not yet implemented" }
diff --git gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95 gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
index e4c8205..7a5eea6 100644
--- gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
+++ gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
@@ -8,5 +8,4 @@ program test
!$acc host_data use_device(i)
!$acc end host_data
end program test
-! { dg-prune-output "unimplemented" }
! { dg-final { scan-tree-dump-times "pragma acc host_data use_device\\(i\\)" 1 "original" } }
diff --git libgomp/ChangeLog libgomp/ChangeLog
index ddf836a..cde0b5c 100644
--- libgomp/ChangeLog
+++ libgomp/ChangeLog
@@ -1,3 +1,12 @@
+2015-12-02 Thomas Schwinge <thomas@codesourcery.com>
+
+ * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
+ target openacc_nvidia_accel_selected.
+ * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
+ * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
+
2015-12-01 Julian Brown <julian@codesourcery.com>
James Norris <James_Norris@mentor.com>
diff --git libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c
index 9820286..614f143 100644
--- libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c
+++ libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target openacc_nvidia_accel_selected } } */
#include <stdlib.h>
#include <openacc.h>
diff --git libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c
index 3504f27..0ab5a35 100644
--- libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c
+++ libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target openacc_nvidia_accel_selected } } */
#include <openacc.h>
#include <stdlib.h>
diff --git libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c
index 268e919..a3737a7 100644
--- libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c
+++ libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target openacc_nvidia_accel_selected } } */
#include <openacc.h>
#include <stdlib.h>
Grüße
Thomas
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 472 bytes --]
next prev parent reply other threads:[~2015-12-02 15:59 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-22 19:14 James Norris
2015-10-22 19:15 ` [OpenACC 2/7] host_data construct (C FE) James Norris
2015-10-22 19:15 ` [OpenACC 1/7] host_data construct (C/C++ common) James Norris
2015-10-22 19:16 ` [OpenACC 3/7] host_data construct (C front-end) James Norris
2015-10-22 19:18 ` [OpenACC 4/7] host_data construct (middle end) James Norris
2015-10-22 19:19 ` [OpenACC 5/7] host_data construct (gcc tests) James Norris
2015-10-22 19:20 ` [OpenACC 6/7] host_data construct James Norris
2015-10-22 19:22 ` [OpenACC 7/7] host_data construct (runtime tests) James Norris
2015-10-22 20:42 ` [OpenACC 0/7] host_data construct Joseph Myers
2015-10-22 20:53 ` James Norris
2015-10-23 16:01 ` [Bulk] " James Norris
2015-10-26 18:36 ` Jakub Jelinek
2015-10-27 15:57 ` Cesar Philippidis
2015-11-02 18:33 ` Julian Brown
2015-11-02 19:29 ` Jakub Jelinek
2015-11-12 11:16 ` Julian Brown
2015-11-18 12:48 ` Julian Brown
2015-11-19 13:13 ` Jakub Jelinek
2015-11-19 14:29 ` Julian Brown
2015-11-19 15:57 ` Jakub Jelinek
2015-11-30 19:34 ` Julian Brown
2015-12-01 8:30 ` Jakub Jelinek
2015-12-02 15:27 ` Tom de Vries
2015-12-02 15:59 ` Thomas Schwinge [this message]
2015-12-02 19:16 ` Cesar Philippidis
2015-12-02 19:28 ` Steve Kargl
2015-12-02 19:35 ` Jakub Jelinek
2015-12-02 19:54 ` Cesar Philippidis
2015-12-02 22:14 ` [gomp4] " Thomas Schwinge
2016-04-08 13:41 ` Fortran OpenACC host_data construct ICE (was: [gomp4] Re: [OpenACC 0/7] host_data construct) Thomas Schwinge
2016-02-02 13:57 ` [OpenACC 0/7] host_data construct Thomas Schwinge
2015-11-13 15:31 ` [Bulk] " Jakub Jelinek
2015-12-23 11:02 ` Thomas Schwinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877fkwn8p6.fsf@kepler.schwinge.homeip.net \
--to=thomas@codesourcery.com \
--cc=Nathan_Sidwell@mentor.com \
--cc=cesar@codesourcery.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jakub@redhat.com \
--cc=jnorris@codesourcery.com \
--cc=joseph@codesourcery.com \
--cc=julian@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).