[PATCH] D90771: [flang][openacc] Add parsing tests and semantic check for set directive
Valentin Clement via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 4 08:59:55 PST 2020
clementval updated this revision to Diff 302865.
clementval added a comment.
Remove unwanted code
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D90771/new/
https://reviews.llvm.org/D90771
Files:
flang/test/Semantics/acc-clause-validity.f90
llvm/include/llvm/Frontend/OpenACC/ACC.td
Index: llvm/include/llvm/Frontend/OpenACC/ACC.td
===================================================================
--- llvm/include/llvm/Frontend/OpenACC/ACC.td
+++ llvm/include/llvm/Frontend/OpenACC/ACC.td
@@ -415,9 +415,15 @@
// 2.14.3
def ACC_Set : Directive<"set"> {
let allowedOnceClauses = [
+ VersionedClause<ACCC_DefaultAsync>,
+ VersionedClause<ACCC_DeviceNum>,
+ VersionedClause<ACCC_DeviceType>,
VersionedClause<ACCC_If>
];
let requiredClauses = [
+ // The three following clauses are also in allowedOnceClauses list due to
+ // restriction 2255 - Two instances of the same clause may not appear on the
+ // same directive.
VersionedClause<ACCC_DefaultAsync>,
VersionedClause<ACCC_DeviceNum>,
VersionedClause<ACCC_DeviceType>
Index: flang/test/Semantics/acc-clause-validity.f90
===================================================================
--- flang/test/Semantics/acc-clause-validity.f90
+++ flang/test/Semantics/acc-clause-validity.f90
@@ -14,6 +14,7 @@
! 2.11 Parallel Loop
! 2.11 Kernels Loop
! 2.11 Serial Loop
+! 2.14.3 Set
! 2.16.13 Wait
program openacc_clause_validity
@@ -42,6 +43,31 @@
!$acc init device_type(2, i, j)
!$acc init device_num(i) device_type(i, j) if(ifCondition)
+ !ERROR: At least one of DEFAULT_ASYNC, DEVICE_NUM, DEVICE_TYPE clause must appear on the SET directive
+ !$acc set
+
+ !ERROR: At least one of DEFAULT_ASYNC, DEVICE_NUM, DEVICE_TYPE clause must appear on the SET directive
+ !$acc set if(.TRUE.)
+
+ !ERROR: At most one DEFAULT_ASYNC clause can appear on the SET directive
+ !$acc set default_async(2) default_async(1)
+
+ !ERROR: At most one DEFAULT_ASYNC clause can appear on the SET directive
+ !$acc set default_async(2) default_async(1)
+
+ !ERROR: At most one DEVICE_NUM clause can appear on the SET directive
+ !$acc set device_num(1) device_num(i)
+
+ !ERROR: At most one DEVICE_TYPE clause can appear on the SET directive
+ !$acc set device_type(i) device_type(2, i, j)
+
+ !$acc set default_async(2)
+ !$acc set default_async(i)
+ !$acc set device_num(1)
+ !$acc set device_num(i)
+ !$acc set device_type(i)
+ !$acc set device_type(2, i, j)
+
!ERROR: At least one of ATTACH, COPYIN, CREATE clause must appear on the ENTER DATA directive
!$acc enter data
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90771.302865.patch
Type: text/x-patch
Size: 2321 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201104/2e6dc705/attachment.bin>
More information about the llvm-commits
mailing list