[OPENMP50]Add support for parallel master taskloop simd directive.
Added full support for parallel master taskloop simd directive.
diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp
index 91fe10e..816e888 100644
--- a/clang/lib/Parse/ParseOpenMP.cpp
+++ b/clang/lib/Parse/ParseOpenMP.cpp
@@ -140,7 +140,9 @@
{OMPD_master, OMPD_taskloop, OMPD_master_taskloop},
{OMPD_master_taskloop, OMPD_simd, OMPD_master_taskloop_simd},
{OMPD_parallel, OMPD_master, OMPD_parallel_master},
- {OMPD_parallel_master, OMPD_taskloop, OMPD_parallel_master_taskloop}};
+ {OMPD_parallel_master, OMPD_taskloop, OMPD_parallel_master_taskloop},
+ {OMPD_parallel_master_taskloop, OMPD_simd,
+ OMPD_parallel_master_taskloop_simd}};
enum { CancellationPoint = 0, DeclareReduction = 1, TargetData = 2 };
Token Tok = P.getCurToken();
unsigned DKind =
@@ -1511,6 +1513,7 @@
case OMPD_master_taskloop:
case OMPD_master_taskloop_simd:
case OMPD_parallel_master_taskloop:
+ case OMPD_parallel_master_taskloop_simd:
case OMPD_distribute:
case OMPD_end_declare_target:
case OMPD_target_update:
@@ -1567,15 +1570,16 @@
/// 'for simd' | 'parallel for simd' | 'target' | 'target data' |
/// 'taskgroup' | 'teams' | 'taskloop' | 'taskloop simd' | 'master
/// taskloop' | 'master taskloop simd' | 'parallel master taskloop' |
-/// 'distribute' | 'target enter data' | 'target exit data' | 'target
-/// parallel' | 'target parallel for' | 'target update' | 'distribute
-/// parallel for' | 'distribute paralle for simd' | 'distribute simd' |
-/// 'target parallel for simd' | 'target simd' | 'teams distribute' |
-/// 'teams distribute simd' | 'teams distribute parallel for simd' |
-/// 'teams distribute parallel for' | 'target teams' | 'target teams
-/// distribute' | 'target teams distribute parallel for' | 'target teams
-/// distribute parallel for simd' | 'target teams distribute simd'
-/// {clause} annot_pragma_openmp_end
+/// 'parallel master taskloop simd' | 'distribute' | 'target enter data'
+/// | 'target exit data' | 'target parallel' | 'target parallel for' |
+/// 'target update' | 'distribute parallel for' | 'distribute paralle
+/// for simd' | 'distribute simd' | 'target parallel for simd' | 'target
+/// simd' | 'teams distribute' | 'teams distribute simd' | 'teams
+/// distribute parallel for simd' | 'teams distribute parallel for' |
+/// 'target teams' | 'target teams distribute' | 'target teams
+/// distribute parallel for' | 'target teams distribute parallel for
+/// simd' | 'target teams distribute simd' {clause}
+/// annot_pragma_openmp_end
///
StmtResult
Parser::ParseOpenMPDeclarativeOrExecutableDirective(ParsedStmtContext StmtCtx) {
@@ -1753,6 +1757,7 @@
case OMPD_master_taskloop:
case OMPD_master_taskloop_simd:
case OMPD_parallel_master_taskloop:
+ case OMPD_parallel_master_taskloop_simd:
case OMPD_distribute:
case OMPD_distribute_parallel_for:
case OMPD_distribute_parallel_for_simd: