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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits