diff options
author | Arpith Chacko Jacob <acjacob@us.ibm.com> | 2016-02-03 15:46:42 +0000 |
---|---|---|
committer | Arpith Chacko Jacob <acjacob@us.ibm.com> | 2016-02-03 15:46:42 +0000 |
commit | 05bebb578a54774d9fc530600157dcf8bbd09532 (patch) | |
tree | 47f8b62ccca6d89437e7dbeeddb0f231bab50ebf /clang/lib/Parse/ParseOpenMP.cpp | |
parent | 23aea0d5d056d51070dc68ce609ee3c5b6eb5a38 (diff) | |
download | bcm5719-llvm-05bebb578a54774d9fc530600157dcf8bbd09532.tar.gz bcm5719-llvm-05bebb578a54774d9fc530600157dcf8bbd09532.zip |
[OpenMP] Parsing + sema for target parallel for directive.
Summary:
This patch adds parsing + sema for the target parallel for directive along with testcases.
Reviewers: ABataev
Differential Revision: http://reviews.llvm.org/D16759
llvm-svn: 259654
Diffstat (limited to 'clang/lib/Parse/ParseOpenMP.cpp')
-rw-r--r-- | clang/lib/Parse/ParseOpenMP.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp index 2fb53d149cd..25d5935b171 100644 --- a/clang/lib/Parse/ParseOpenMP.cpp +++ b/clang/lib/Parse/ParseOpenMP.cpp @@ -45,7 +45,8 @@ static OpenMPDirectiveKind ParseOpenMPDirectiveKind(Parser &P) { {OMPD_parallel_for, OMPD_simd, OMPD_parallel_for_simd}, {OMPD_parallel, OMPD_sections, OMPD_parallel_sections}, {OMPD_taskloop, OMPD_simd, OMPD_taskloop_simd}, - {OMPD_target, OMPD_parallel, OMPD_target_parallel}}; + {OMPD_target, OMPD_parallel, OMPD_target_parallel}, + {OMPD_target_parallel, OMPD_for, OMPD_target_parallel_for}}; auto Tok = P.getCurToken(); auto DKind = Tok.isAnnotation() @@ -155,6 +156,7 @@ Parser::DeclGroupPtrTy Parser::ParseOpenMPDeclarativeDirective() { case OMPD_target_enter_data: case OMPD_target_exit_data: case OMPD_target_parallel: + case OMPD_target_parallel_for: case OMPD_taskloop: case OMPD_taskloop_simd: case OMPD_distribute: @@ -178,9 +180,9 @@ Parser::DeclGroupPtrTy Parser::ParseOpenMPDeclarativeDirective() { /// 'parallel for' | 'parallel sections' | 'task' | 'taskyield' | /// 'barrier' | 'taskwait' | 'flush' | 'ordered' | 'atomic' | /// 'for simd' | 'parallel for simd' | 'target' | 'target data' | -/// 'taskgroup' | 'teams' | 'taskloop' | 'taskloop simd' {clause} | +/// 'taskgroup' | 'teams' | 'taskloop' | 'taskloop simd' | /// 'distribute' | 'target enter data' | 'target exit data' | -/// 'target parallel' +/// 'target parallel' | 'target parallel for' {clause} /// annot_pragma_openmp_end /// StmtResult Parser::ParseOpenMPDeclarativeOrExecutableDirective( @@ -263,6 +265,7 @@ StmtResult Parser::ParseOpenMPDeclarativeOrExecutableDirective( case OMPD_taskgroup: case OMPD_target_data: case OMPD_target_parallel: + case OMPD_target_parallel_for: case OMPD_taskloop: case OMPD_taskloop_simd: case OMPD_distribute: { |