diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2015-12-18 05:05:56 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2015-12-18 05:05:56 +0000 |
commit | eb48235033313f2a6afccbcd26788954c97a97b3 (patch) | |
tree | 8d085a5304caaf0c9e8ccab42e20f4c18452ca35 /clang/test/OpenMP/ordered_ast_print.cpp | |
parent | 125592dc8d483efb8ac2d6fb3710fcf356206ee0 (diff) | |
download | bcm5719-llvm-eb48235033313f2a6afccbcd26788954c97a97b3.tar.gz bcm5719-llvm-eb48235033313f2a6afccbcd26788954c97a97b3.zip |
[OPENMP 4.5] Parsing/sema analysis for 'depend(source)' clause in 'ordered' directive.
OpenMP 4.5 adds 'depend(source)' clause for 'ordered' directive to support cross-iteration dependence. Patch adds parsing and semantic analysis for this construct.
llvm-svn: 255986
Diffstat (limited to 'clang/test/OpenMP/ordered_ast_print.cpp')
-rw-r--r-- | clang/test/OpenMP/ordered_ast_print.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/clang/test/OpenMP/ordered_ast_print.cpp b/clang/test/OpenMP/ordered_ast_print.cpp index 6328ec0d766..1c68540db67 100644 --- a/clang/test/OpenMP/ordered_ast_print.cpp +++ b/clang/test/OpenMP/ordered_ast_print.cpp @@ -42,6 +42,11 @@ T tmain (T argc) { { a=2; } + #pragma omp parallel for ordered(1) + for (int i =0 ; i < argc; ++i) { + #pragma omp ordered depend(source) + a = 2; + } return (0); } @@ -76,7 +81,11 @@ T tmain (T argc) { // CHECK-NEXT: { // CHECK-NEXT: a = 2; // CHECK-NEXT: } - +// CHECK-NEXT: #pragma omp parallel for ordered(1) +// CHECK-NEXT: for (int i = 0; i < argc; ++i) { +// CHECK-NEXT: #pragma omp ordered depend(source) +// CHECK-NEXT: a = 2; +// CHECK-NEXT: } // CHECK: static T a; // CHECK-NEXT: #pragma omp for ordered // CHECK-NEXT: for (int i = 0; i < argc; ++i) @@ -108,7 +117,13 @@ T tmain (T argc) { // CHECK-NEXT: { // CHECK-NEXT: a = 2; // CHECK-NEXT: } +// CHECK-NEXT: #pragma omp parallel for ordered(1) +// CHECK-NEXT: for (int i = 0; i < argc; ++i) { +// CHECK-NEXT: #pragma omp ordered depend(source) +// CHECK-NEXT: a = 2; +// CHECK-NEXT: } +// CHECK-LABEL: int main( int main (int argc, char **argv) { int b = argc, c, d, e, f, g; static int a; @@ -143,6 +158,11 @@ int main (int argc, char **argv) { { a=2; } + #pragma omp parallel for ordered(1) + for (int i =0 ; i < argc; ++i) { + #pragma omp ordered depend(source) + a = 2; + } // CHECK-NEXT: #pragma omp for ordered // CHECK-NEXT: for (int i = 0; i < argc; ++i) // CHECK-NEXT: #pragma omp ordered @@ -173,6 +193,11 @@ int main (int argc, char **argv) { // CHECK-NEXT: { // CHECK-NEXT: a = 2; // CHECK-NEXT: } +// CHECK-NEXT: #pragma omp parallel for ordered(1) +// CHECK-NEXT: for (int i = 0; i < argc; ++i) { +// CHECK-NEXT: #pragma omp ordered depend(source) +// CHECK-NEXT: a = 2; +// CHECK-NEXT: } return tmain(argc); } |