summaryrefslogtreecommitdiffstats
path: root/clang/test/OpenMP/nesting_of_regions.cpp
diff options
context:
space:
mode:
authorCarlo Bertolli <cbertol@us.ibm.com>2016-06-24 19:20:02 +0000
committerCarlo Bertolli <cbertol@us.ibm.com>2016-06-24 19:20:02 +0000
commitb8503d5399d0693e49e731d96ca06ce22e425c2b (patch)
tree06ddc1cf4b280859a97cb8139c7737de7941eb67 /clang/test/OpenMP/nesting_of_regions.cpp
parent3830479f4155cd30473453e8bdc5c00c1e013482 (diff)
downloadbcm5719-llvm-b8503d5399d0693e49e731d96ca06ce22e425c2b.tar.gz
bcm5719-llvm-b8503d5399d0693e49e731d96ca06ce22e425c2b.zip
Revert r273705
[OpenMP] Initial implementation of parse and sema for composite pragma 'distribute parallel for' llvm-svn: 273709
Diffstat (limited to 'clang/test/OpenMP/nesting_of_regions.cpp')
-rw-r--r--clang/test/OpenMP/nesting_of_regions.cpp745
1 files changed, 3 insertions, 742 deletions
diff --git a/clang/test/OpenMP/nesting_of_regions.cpp b/clang/test/OpenMP/nesting_of_regions.cpp
index 8d884a2e614..23ba70776db 100644
--- a/clang/test/OpenMP/nesting_of_regions.cpp
+++ b/clang/test/OpenMP/nesting_of_regions.cpp
@@ -137,13 +137,7 @@ void foo() {
{
#pragma omp target update to(a)
}
-#pragma omp parallel
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-
+
// SIMD DIRECTIVE
#pragma omp simd
for (int i = 0; i < 10; ++i) {
@@ -307,12 +301,6 @@ void foo() {
for (int i = 0; i < 10; ++i) {
#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
}
-#pragma omp simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for// expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// FOR DIRECTIVE
#pragma omp for
@@ -500,12 +488,6 @@ void foo() {
for (int i = 0; i < 10; ++i) {
#pragma omp target update to(a)
}
-#pragma omp for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// FOR SIMD DIRECTIVE
#pragma omp for simd
@@ -671,12 +653,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
bar();
}
-#pragma omp for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// SECTIONS DIRECTIVE
#pragma omp sections
@@ -869,12 +845,6 @@ void foo() {
{
#pragma omp target update to(a)
}
-#pragma omp sections
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SECTION DIRECTIVE
#pragma omp section // expected-error {{orphaned 'omp section' directives are prohibited, it must be closely nested to a sections region}}
@@ -1121,13 +1091,6 @@ void foo() {
#pragma omp target update to(a)
}
}
-#pragma omp sections
- {
-#pragma omp section
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SINGLE DIRECTIVE
#pragma omp single
@@ -1306,12 +1269,6 @@ void foo() {
#pragma omp target update to(a)
bar();
}
-#pragma omp single
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// MASTER DIRECTIVE
#pragma omp master
@@ -1490,12 +1447,6 @@ void foo() {
#pragma omp target update to(a)
bar();
}
-#pragma omp master
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// CRITICAL DIRECTIVE
#pragma omp critical
@@ -1688,12 +1639,6 @@ void foo() {
#pragma omp target update to(a)
bar();
}
-#pragma omp critical
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// PARALLEL FOR DIRECTIVE
#pragma omp parallel for
@@ -1886,12 +1831,6 @@ void foo() {
for (int i = 0; i < 10; ++i) {
#pragma omp target update to(a)
}
-#pragma omp parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// PARALLEL FOR SIMD DIRECTIVE
#pragma omp parallel for simd
@@ -2085,12 +2024,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
bar();
}
-#pragma omp parallel for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// PARALLEL SECTIONS DIRECTIVE
#pragma omp parallel sections
@@ -2272,12 +2205,6 @@ void foo() {
{
#pragma omp target update to(a)
}
-#pragma omp parallel sections
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TASK DIRECTIVE
#pragma omp task
@@ -2406,12 +2333,6 @@ void foo() {
#pragma omp target update to(a)
bar();
}
-#pragma omp task
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// ORDERED DIRECTIVE
#pragma omp ordered
@@ -2611,12 +2532,6 @@ void foo() {
#pragma omp target update to(a)
bar();
}
-#pragma omp ordered
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// ATOMIC DIRECTIVE
#pragma omp atomic
@@ -2838,14 +2753,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside an atomic region}}
bar();
}
-#pragma omp atomic
- // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an l-value expression with scalar type}}
- // expected-note@+1 {{expected an expression statement}}
- {
-#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET DIRECTIVE
#pragma omp target
@@ -2984,12 +2891,6 @@ void foo() {
{
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
}
-#pragma omp target
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET PARALLEL DIRECTIVE
#pragma omp target parallel
@@ -3128,12 +3029,6 @@ void foo() {
{
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel' region}}
}
-#pragma omp target parallel
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET PARALLEL FOR DIRECTIVE
#pragma omp target parallel for
@@ -3326,12 +3221,6 @@ void foo() {
for (int i = 0; i < 10; ++i) {
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel for' region}}
}
-#pragma omp target parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// TEAMS DIRECTIVE
#pragma omp target
@@ -3500,16 +3389,7 @@ void foo() {
{
#pragma omp target update to(a) // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp target update' directive into a parallel region?}}
}
-#pragma omp target
-#pragma omp teams
- {
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i)
- ;
-#pragma omp distribute parallel for
- for (int j = 0; j < 10; ++j)
- ;
- }
+
// TASKLOOP DIRECTIVE
#pragma omp taskloop
for (int i = 0; i < 10; ++i) {
@@ -3686,18 +3566,6 @@ void foo() {
#pragma omp target update to(a)
bar();
}
-#pragma omp taskloop
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
- for (int j = 0; j < 10; ++j)
- ++a;
- }
-#pragma omp taskloop
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int j = 0; j < 10; ++j)
- ++a;
- }
// DISTRIBUTE DIRECTIVE
@@ -3924,239 +3792,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
++a;
}
-
-// DISTRIBUTE PARALLEL FOR DIRECTIVE
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp simd
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp for simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp sections // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a distribute parallel for region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp single // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp master // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp critical
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel
- {
-#pragma omp single
- {
- bar();
- }
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for simd
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel sections
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp task
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskyield
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp barrier // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskwait
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp flush
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp ordered // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp atomic
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
}
void foo() {
@@ -4292,12 +3927,6 @@ void foo() {
#pragma omp target update to(a)
a++;
}
-#pragma omp parallel
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SIMD DIRECTIVE
#pragma omp simd
@@ -4456,12 +4085,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
a++;
}
-#pragma omp simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// FOR DIRECTIVE
#pragma omp for
@@ -4640,12 +4263,6 @@ void foo() {
#pragma omp target update to(a)
++a;
}
-#pragma omp for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// FOR SIMD DIRECTIVE
#pragma omp for simd
@@ -4804,12 +4421,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
++a;
}
-#pragma omp for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// SECTIONS DIRECTIVE
#pragma omp sections
@@ -4977,12 +4588,6 @@ void foo() {
{
#pragma omp target update to(a)
}
-#pragma omp sections
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SECTION DIRECTIVE
#pragma omp section // expected-error {{orphaned 'omp section' directives are prohibited, it must be closely nested to a sections region}}
@@ -5239,13 +4844,6 @@ void foo() {
a++;
}
}
-#pragma omp sections
- {
-#pragma omp section
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// SINGLE DIRECTIVE
#pragma omp single
@@ -5414,12 +5012,6 @@ void foo() {
#pragma omp target update to(a)
a++;
}
-#pragma omp single
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// MASTER DIRECTIVE
#pragma omp master
@@ -5598,12 +5190,6 @@ void foo() {
#pragma omp target update to(a)
++a;
}
-#pragma omp master
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// CRITICAL DIRECTIVE
#pragma omp critical
@@ -5801,12 +5387,6 @@ void foo() {
#pragma omp target update to(a)
a++;
}
-#pragma omp critical
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// PARALLEL FOR DIRECTIVE
#pragma omp parallel for
@@ -6000,12 +5580,6 @@ void foo() {
#pragma omp target update to(a)
a++;
}
-#pragma omp parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// PARALLEL FOR SIMD DIRECTIVE
#pragma omp parallel for simd
@@ -6199,12 +5773,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}
a++;
}
-#pragma omp parallel for simd
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// PARALLEL SECTIONS DIRECTIVE
#pragma omp parallel sections
@@ -6382,12 +5950,6 @@ void foo() {
{
#pragma omp target update to(a)
}
-#pragma omp parallel sections
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TASK DIRECTIVE
#pragma omp task
@@ -6515,12 +6077,6 @@ void foo() {
#pragma omp target update to(a)
a++;
}
-#pragma omp task
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// ATOMIC DIRECTIVE
#pragma omp atomic
@@ -6741,14 +6297,6 @@ void foo() {
{
#pragma omp target update // expected-error {{OpenMP constructs may not be nested inside an atomic region}}
}
-#pragma omp atomic
- // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an l-value expression with scalar type}}
- // expected-note@+1 {{expected an expression statement}}
- {
-#pragma omp distribute parallel for// expected-error {{OpenMP constructs may not be nested inside an atomic region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET DIRECTIVE
#pragma omp target
@@ -6890,12 +6438,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside an atomic region}}
a++;
}
-#pragma omp target
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET PARALLEL DIRECTIVE
#pragma omp target parallel
@@ -7034,12 +6576,6 @@ void foo() {
{
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel' region}}
}
-#pragma omp target parallel
- {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// TARGET PARALLEL FOR DIRECTIVE
@@ -7234,12 +6770,6 @@ void foo() {
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel for' region}}
a++;
}
-#pragma omp target parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int j = 0; j < 10; ++j)
- ;
- }
// TEAMS DIRECTIVE
#pragma omp target
@@ -7407,21 +6937,7 @@ void foo() {
#pragma omp target update to(a) // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp target update' directive into a parallel region?}}
++a;
}
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i)
- ;
-#pragma omp target
-#pragma omp teams
- {
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i)
- ;
-#pragma omp distribute parallel for
- for (int j = 0; j < 10; ++j)
- ;
- }
+
// TASKLOOP DIRECTIVE
#pragma omp taskloop
for (int i = 0; i < 10; ++i) {
@@ -7598,18 +7114,6 @@ void foo() {
#pragma omp target update to(a)
++a;
}
-#pragma omp taskloop
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp taskloop
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
// DISTRIBUTE DIRECTIVE
#pragma omp target
@@ -7836,247 +7340,4 @@ void foo() {
#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
++a;
}
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ++a;
- }
-
- // DISTRIBUTE PARALLEL FOR DIRECTIVE
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp distribute // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp simd
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp for simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp sections // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a distribute parallel for region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp single // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp master // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp critical
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel
- {
-#pragma omp single
- {
- bar();
- }
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel for simd
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp parallel sections
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp task
- {
- bar();
- }
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskyield
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp barrier // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp taskwait
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp flush
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp ordered // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}
- bar();
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp atomic
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}
- for (int i = 0; i < 10; ++i)
- ;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp teams // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}
- ++a;
- }
- return foo<int>();
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
-#pragma omp target
-#pragma omp teams
-#pragma omp distribute parallel for
- for (int i = 0; i < 10; ++i) {
-#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
- ++a;
- }
}
OpenPOWER on IntegriCloud