[clang] e27fe2e - [OpenACC][NFC] Add the _Pragma spelling to a bunch of the tests
via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 12 11:01:43 PDT 2025
Author: erichkeane
Date: 2025-03-12T11:01:38-07:00
New Revision: e27fe2e07c040719075da79d6880bf57b2dc5dbc
URL: https://github.com/llvm/llvm-project/commit/e27fe2e07c040719075da79d6880bf57b2dc5dbc
DIFF: https://github.com/llvm/llvm-project/commit/e27fe2e07c040719075da79d6880bf57b2dc5dbc.diff
LOG: [OpenACC][NFC] Add the _Pragma spelling to a bunch of the tests
OpenACC PR 475(targetting OpenACC3.4) added support for the _Pragma
spelling of an OpenACC pragma. We already implemented this, as clang
doesn't really differentiate between the spellings (so we did it as an
inadvertent extension).
This patch adds a few spot-check tests to make sure we support this
spelling and that it results in the same AST as the traditional
spelling.
Added:
Modified:
clang/test/SemaOpenACC/atomic-construct-ast.cpp
clang/test/SemaOpenACC/cache-construct-ast.cpp
clang/test/SemaOpenACC/combined-construct-ast.cpp
clang/test/SemaOpenACC/compute-construct-ast.cpp
clang/test/SemaOpenACC/data-construct-default-ast.cpp
clang/test/SemaOpenACC/declare-construct-ast.cpp
clang/test/SemaOpenACC/init-construct-ast.cpp
clang/test/SemaOpenACC/loop-ast.cpp
clang/test/SemaOpenACC/shutdown-construct-ast.cpp
Removed:
################################################################################
diff --git a/clang/test/SemaOpenACC/atomic-construct-ast.cpp b/clang/test/SemaOpenACC/atomic-construct-ast.cpp
index 6579b87941e5a..bfd7f32884f1d 100644
--- a/clang/test/SemaOpenACC/atomic-construct-ast.cpp
+++ b/clang/test/SemaOpenACC/atomic-construct-ast.cpp
@@ -21,6 +21,14 @@ void foo(int v, int x) {
#pragma acc atomic read
v = x;
+// CHECK-NEXT: OpenACCAtomicConstruct{{.*}} atomic read
+// CHECK-NEXT: BinaryOperator{{.*}} 'int' lvalue '='
+// CHECK-NEXT: DeclRefExpr{{.*}}'v' 'int'
+// CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>
+// CHECK-NEXT: DeclRefExpr{{.*}}'x' 'int'
+_Pragma("acc atomic read")
+ v = x;
+
// CHECK-NEXT: OpenACCAtomicConstruct{{.*}} atomic write
// CHECK-NEXT: BinaryOperator{{.*}} 'int' lvalue '='
// CHECK-NEXT: DeclRefExpr{{.*}}'v' 'int'
diff --git a/clang/test/SemaOpenACC/cache-construct-ast.cpp b/clang/test/SemaOpenACC/cache-construct-ast.cpp
index 3d2e6a0eb0c3f..44c80beed77a3 100644
--- a/clang/test/SemaOpenACC/cache-construct-ast.cpp
+++ b/clang/test/SemaOpenACC/cache-construct-ast.cpp
@@ -20,6 +20,12 @@ void use() {
// CHECK-NEXT: ImplicitCastExpr{{.*}}'int *' <ArrayToPointerDecay>
// CHECK-NEXT: DeclRefExpr{{.*}}'Array' 'int[5]'
// CHECK-NEXT: IntegerLiteral{{.*}} 'int' 1
+_Pragma("acc cache(Array[1])")
+ // CHECK-NEXT: OpenACCCacheConstruct{{.*}} cache
+ // CHECK-NEXT: ArraySubscriptExpr{{.*}}'int' lvalue
+ // CHECK-NEXT: ImplicitCastExpr{{.*}}'int *' <ArrayToPointerDecay>
+ // CHECK-NEXT: DeclRefExpr{{.*}}'Array' 'int[5]'
+ // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 1
#pragma acc cache(Array[1:2])
// CHECK-NEXT: OpenACCCacheConstruct{{.*}} cache
// CHECK-NEXT: ArraySectionExpr{{.*}}'<array section type>' lvalue
diff --git a/clang/test/SemaOpenACC/combined-construct-ast.cpp b/clang/test/SemaOpenACC/combined-construct-ast.cpp
index 1b818e3aa12e0..eb59dc919c900 100644
--- a/clang/test/SemaOpenACC/combined-construct-ast.cpp
+++ b/clang/test/SemaOpenACC/combined-construct-ast.cpp
@@ -27,6 +27,22 @@ void NormalFunc() {
// CHECK-NEXT: DeclRefExpr{{.*}}'i'
// CHECK-NEXT: NullStmt
+_Pragma("acc parallel loop")
+ for(int i = 0; i < 5;++i);
+ // CHECK-NEXT: OpenACCCombinedConstruct{{.*}} parallel loop
+ // CHECK-NEXT: ForStmt
+ // CHECK-NEXT: DeclStmt
+ // CHECK-NEXT: VarDecl{{.*}}i
+ // CHECK-NEXT: IntegerLiteral {{.*}}'int' 0
+ // CHECK-NEXT: <<<NULL>>>
+ // CHECK-NEXT: BinaryOperator {{.*}} 'bool' '<'
+ // CHECK-NEXT: ImplicitCastExpr
+ // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'
+ // CHECK-NEXT: IntegerLiteral {{.*}}'int' 5
+ // CHECK-NEXT: UnaryOperator{{.*}} '++'
+ // CHECK-NEXT: DeclRefExpr{{.*}}'i'
+ // CHECK-NEXT: NullStmt
+
#pragma acc serial loop
for(int i = 0; i < 5;++i);
// CHECK-NEXT: OpenACCCombinedConstruct{{.*}} serial loop
diff --git a/clang/test/SemaOpenACC/compute-construct-ast.cpp b/clang/test/SemaOpenACC/compute-construct-ast.cpp
index b24ad91087404..620ec2e4a2e24 100644
--- a/clang/test/SemaOpenACC/compute-construct-ast.cpp
+++ b/clang/test/SemaOpenACC/compute-construct-ast.cpp
@@ -45,6 +45,10 @@ void NormalFunc() {
#pragma acc kernels
{}
}
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}kernels
+ // CHECK-NEXT: CompoundStmt
+ _Pragma("acc kernels")
+ {}
}
template<typename T>
diff --git a/clang/test/SemaOpenACC/data-construct-default-ast.cpp b/clang/test/SemaOpenACC/data-construct-default-ast.cpp
index ef9b1348c6709..8ab34783dce9e 100644
--- a/clang/test/SemaOpenACC/data-construct-default-ast.cpp
+++ b/clang/test/SemaOpenACC/data-construct-default-ast.cpp
@@ -15,6 +15,9 @@ void NormalFunc() {
// CHECK: OpenACCDataConstruct {{.*}}data
// CHECK-NEXT: default(present)
#pragma acc data default(present)
+ // CHECK-NEXT: OpenACCDataConstruct {{.*}}data
+ // CHECK-NEXT: default(present)
+_Pragma("acc data default(present)")
;
}
template<typename T>
diff --git a/clang/test/SemaOpenACC/declare-construct-ast.cpp b/clang/test/SemaOpenACC/declare-construct-ast.cpp
index dfc79039fc9e6..ab49c9e42ea4e 100644
--- a/clang/test/SemaOpenACC/declare-construct-ast.cpp
+++ b/clang/test/SemaOpenACC/declare-construct-ast.cpp
@@ -18,6 +18,17 @@ int GlobalArray[5];
// CHECK-NEXT: copyin clause
// CHECK-NEXT: DeclRefExpr{{.*}}'GlobalArray' 'int[5]'
+int *Global1;
+// CHECK-NEXT: VarDecl{{.*}}Global1 'int *'
+int GlobalArray1[5];
+// CHECK-NEXT: VarDecl{{.*}}GlobalArray1 'int[5]'
+_Pragma("acc declare deviceptr(Global1), copyin(GlobalArray1)")
+// CHECK-NEXT: OpenACCDeclareDecl
+// CHECK-NEXT: deviceptr clause
+// CHECK-NEXT: DeclRefExpr{{.*}}'Global1' 'int *'
+// CHECK-NEXT: copyin clause
+// CHECK-NEXT: DeclRefExpr{{.*}}'GlobalArray1' 'int[5]'
+
int *Global2;
// CHECK: VarDecl{{.*}}Global2 'int *'
int GlobalArray2[5];
diff --git a/clang/test/SemaOpenACC/init-construct-ast.cpp b/clang/test/SemaOpenACC/init-construct-ast.cpp
index 7c7d07a450d51..ba0ca1ec36327 100644
--- a/clang/test/SemaOpenACC/init-construct-ast.cpp
+++ b/clang/test/SemaOpenACC/init-construct-ast.cpp
@@ -15,6 +15,8 @@ void NormalFunc() {
#pragma acc init
// CHECK-NEXT: OpenACCInitConstruct{{.*}}init
+_Pragma("acc init")
+ // CHECK-NEXT: OpenACCInitConstruct{{.*}}init
#pragma acc init if (some_int() < some_long())
// CHECK-NEXT: OpenACCInitConstruct{{.*}}init
// CHECK-NEXT: if clause
diff --git a/clang/test/SemaOpenACC/loop-ast.cpp b/clang/test/SemaOpenACC/loop-ast.cpp
index d8ecef9741dee..c926c2252558f 100644
--- a/clang/test/SemaOpenACC/loop-ast.cpp
+++ b/clang/test/SemaOpenACC/loop-ast.cpp
@@ -28,6 +28,22 @@ void NormalFunc() {
// CHECK-NEXT: DeclRefExpr{{.*}} 'i' 'int'
// CHECK-NEXT: NullStmt
+_Pragma("acc loop")
+ for(int i = 0; i < 5;++i);
+ // CHECK-NEXT: OpenACCLoopConstruct{{.*}} <orphan>
+ // CHECK-NEXT: ForStmt
+ // CHECK-NEXT: DeclStmt
+ // CHECK-NEXT: VarDecl {{.*}} used i 'int'
+ // CHECK-NEXT: IntegerLiteral {{.*}} 'int' 0
+ // CHECK-NEXT: <<<NULL>>
+ // CHECK-NEXT: BinaryOperator{{.*}}'bool' '<'
+ // CHECK-NEXT: ImplicitCastExpr
+ // CHECK-NEXT: DeclRefExpr
+ // CHECK-NEXT: IntegerLiteral {{.*}} 'int' 5
+ // CHECK-NEXT: UnaryOperator{{.*}} prefix '++'
+ // CHECK-NEXT: DeclRefExpr{{.*}} 'i' 'int'
+ // CHECK-NEXT: NullStmt
+
int array[5];
// CHECK-NEXT: DeclStmt
// CHECK-NEXT: VarDecl
diff --git a/clang/test/SemaOpenACC/shutdown-construct-ast.cpp b/clang/test/SemaOpenACC/shutdown-construct-ast.cpp
index 3ec1c0d936493..13f345799e0cd 100644
--- a/clang/test/SemaOpenACC/shutdown-construct-ast.cpp
+++ b/clang/test/SemaOpenACC/shutdown-construct-ast.cpp
@@ -15,6 +15,8 @@ void NormalFunc() {
#pragma acc shutdown
// CHECK-NEXT: OpenACCShutdownConstruct{{.*}}shutdown
+_Pragma("acc shutdown")
+ // CHECK-NEXT: OpenACCShutdownConstruct{{.*}}shutdown
#pragma acc shutdown if (some_int() < some_long())
// CHECK-NEXT: OpenACCShutdownConstruct{{.*}}shutdown
// CHECK-NEXT: if clause
More information about the cfe-commits
mailing list