aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2015-12-02 16:53:34 +0100
committerThomas Schwinge <tschwinge@gcc.gnu.org>2015-12-02 16:53:34 +0100
commitff7a55bf56a6f148b29c8fd44ca90c4e535fc2bd (patch)
treec8f7da9f522b4ae53b8fc0d2a564056033d1bbfb
parentdb0f1c7a906bd8798a4016c1622f5999897e7469 (diff)
downloadgcc-ff7a55bf56a6f148b29c8fd44ca90c4e535fc2bd.zip
gcc-ff7a55bf56a6f148b29c8fd44ca90c4e535fc2bd.tar.gz
gcc-ff7a55bf56a6f148b29c8fd44ca90c4e535fc2bd.tar.bz2
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. Co-Authored-By: James Norris <James_Norris@mentor.com> Co-Authored-By: Julian Brown <julian@codesourcery.com> From-SVN: r231184
-rw-r--r--gcc/c/ChangeLog5
-rw-r--r--gcc/c/c-parser.c12
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/parser.c20
-rw-r--r--gcc/cp/pt.c2
-rw-r--r--gcc/testsuite/ChangeLog15
-rw-r--r--gcc/testsuite/c-c++-common/goacc/host_data-5.c (renamed from libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-3.c)6
-rw-r--r--gcc/testsuite/c-c++-common/goacc/host_data-6.c (renamed from libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c)6
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/coarray.f958
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/coarray_2.f902
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/host_data-tree.f951
-rw-r--r--libgomp/ChangeLog9
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c2
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c2
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c2
15 files changed, 61 insertions, 37 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index acb8ee4..e517467 100644
--- a/gcc/c/ChangeLog
+++ b/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 a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index d4c512f..ee0a305 100644
--- a/gcc/c/c-parser.c
+++ b/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 a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 385ba63..d2a7e99 100644
--- a/gcc/cp/ChangeLog
+++ b/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 a/gcc/cp/parser.c b/gcc/cp/parser.c
index f78df02..b4ecac7 100644
--- a/gcc/cp/parser.c
+++ b/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 a/gcc/cp/pt.c b/gcc/cp/pt.c
index 5befd64..d1d1e4e 100644
--- a/gcc/cp/pt.c
+++ b/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 a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5fe26bb..4f7af87 100644
--- a/gcc/testsuite/ChangeLog
+++ b/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 a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-3.c b/gcc/testsuite/c-c++-common/goacc/host_data-5.c
index 7d9b5f7..f372fbd 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-3.c
+++ b/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 a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c b/gcc/testsuite/c-c++-common/goacc/host_data-6.c
index a841488..8be7912 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/coarray.f95 b/gcc/testsuite/gfortran.dg/goacc/coarray.f95
index 130ffc3..d2f10d5 100644
--- a/gcc/testsuite/gfortran.dg/goacc/coarray.f95
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/coarray_2.f90 b/gcc/testsuite/gfortran.dg/goacc/coarray_2.f90
index f9cf9ac..87e04d5 100644
--- a/gcc/testsuite/gfortran.dg/goacc/coarray_2.f90
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95 b/gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
index e4c8205..7a5eea6 100644
--- a/gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
+++ b/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 a/libgomp/ChangeLog b/libgomp/ChangeLog
index ddf836a..cde0b5c 100644
--- a/libgomp/ChangeLog
+++ b/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 a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c
index 9820286..614f143 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-2.c
+++ b/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 a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c
index 3504f27..0ab5a35 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-4.c
+++ b/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 a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c
index 268e919..a3737a7 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c
+++ b/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>