diff options
author | Kelvin Li <kkwli0@gmail.com> | 2016-07-05 05:00:15 +0000 |
---|---|---|
committer | Kelvin Li <kkwli0@gmail.com> | 2016-07-05 05:00:15 +0000 |
commit | 4a39add05e01347f7e0683835c27a56bf1c29275 (patch) | |
tree | 8b74095e990246aed86a04d4c5af903c46c82664 /clang/lib/Basic/OpenMPKinds.cpp | |
parent | 4d3626ed3192400bea0f8de5762715822907eae4 (diff) | |
download | bcm5719-llvm-4a39add05e01347f7e0683835c27a56bf1c29275.tar.gz bcm5719-llvm-4a39add05e01347f7e0683835c27a56bf1c29275.zip |
[OpenMP] Sema and parse for 'distribute parallel for simd'
Summary: This patch is an implementation of sema and parsing for the OpenMP composite pragma 'distribute parallel for simd'.
Differential Revision: http://reviews.llvm.org/D21977
llvm-svn: 274530
Diffstat (limited to 'clang/lib/Basic/OpenMPKinds.cpp')
-rw-r--r-- | clang/lib/Basic/OpenMPKinds.cpp | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/clang/lib/Basic/OpenMPKinds.cpp b/clang/lib/Basic/OpenMPKinds.cpp index 2975b7aaab3..e6c199787ad 100644 --- a/clang/lib/Basic/OpenMPKinds.cpp +++ b/clang/lib/Basic/OpenMPKinds.cpp @@ -576,6 +576,16 @@ bool clang::isAllowedClauseForDirective(OpenMPDirectiveKind DKind, break; } break; + case OMPD_distribute_parallel_for_simd: + switch (CKind) { +#define OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name) \ + case OMPC_##Name: \ + return true; +#include "clang/Basic/OpenMPKinds.def" + default: + break; + } + break; case OMPD_declare_target: case OMPD_end_declare_target: case OMPD_unknown: @@ -598,7 +608,9 @@ bool clang::isOpenMPLoopDirective(OpenMPDirectiveKind DKind) { DKind == OMPD_parallel_for || DKind == OMPD_parallel_for_simd || DKind == OMPD_taskloop || DKind == OMPD_taskloop_simd || DKind == OMPD_distribute || DKind == OMPD_target_parallel_for || - DKind == OMPD_distribute_parallel_for; // TODO add next directives. + DKind == OMPD_distribute_parallel_for || + DKind == OMPD_distribute_parallel_for_simd; + // TODO add next directives. } bool clang::isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind) { @@ -607,7 +619,9 @@ bool clang::isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind) { DKind == OMPD_single || DKind == OMPD_parallel_for || DKind == OMPD_parallel_for_simd || DKind == OMPD_parallel_sections || DKind == OMPD_target_parallel_for || - DKind == OMPD_distribute_parallel_for; // TODO add next directives. + DKind == OMPD_distribute_parallel_for || + DKind == OMPD_distribute_parallel_for_simd; + // TODO add next directives. } bool clang::isOpenMPTaskLoopDirective(OpenMPDirectiveKind DKind) { @@ -618,7 +632,8 @@ bool clang::isOpenMPParallelDirective(OpenMPDirectiveKind DKind) { return DKind == OMPD_parallel || DKind == OMPD_parallel_for || DKind == OMPD_parallel_for_simd || DKind == OMPD_parallel_sections || DKind == OMPD_target_parallel || DKind == OMPD_target_parallel_for || - DKind == OMPD_distribute_parallel_for; + DKind == OMPD_distribute_parallel_for || + DKind == OMPD_distribute_parallel_for_simd; // TODO add next directives. } @@ -640,13 +655,15 @@ bool clang::isOpenMPTeamsDirective(OpenMPDirectiveKind DKind) { bool clang::isOpenMPSimdDirective(OpenMPDirectiveKind DKind) { return DKind == OMPD_simd || DKind == OMPD_for_simd || - DKind == OMPD_parallel_for_simd || - DKind == OMPD_taskloop_simd; // TODO add next directives. + DKind == OMPD_parallel_for_simd || DKind == OMPD_taskloop_simd || + DKind == OMPD_distribute_parallel_for_simd; + // TODO add next directives. } bool clang::isOpenMPDistributeDirective(OpenMPDirectiveKind Kind) { - return Kind == OMPD_distribute || - Kind == OMPD_distribute_parallel_for; // TODO add next directives. + return Kind == OMPD_distribute || Kind == OMPD_distribute_parallel_for || + Kind == OMPD_distribute_parallel_for_simd; + // TODO add next directives. } bool clang::isOpenMPPrivate(OpenMPClauseKind Kind) { @@ -664,5 +681,6 @@ bool clang::isOpenMPTaskingDirective(OpenMPDirectiveKind Kind) { } bool clang::isOpenMPLoopBoundSharingDirective(OpenMPDirectiveKind Kind) { - return Kind == OMPD_distribute_parallel_for; + return Kind == OMPD_distribute_parallel_for || + Kind == OMPD_distribute_parallel_for_simd; } |