diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2019-11-19 12:07:54 -0500 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2019-11-19 15:58:19 -0500 |
commit | d08c056695a59fb1cfc7ccc9a2784bb9a6514551 (patch) | |
tree | 527623ad4aac96e8ea0e393c4f126b1bf90705f1 /clang/lib/Basic | |
parent | 0d4211f4e753057feec32938e596d037d4f5a6aa (diff) | |
download | bcm5719-llvm-d08c056695a59fb1cfc7ccc9a2784bb9a6514551.tar.gz bcm5719-llvm-d08c056695a59fb1cfc7ccc9a2784bb9a6514551.zip |
[OPENMP50]Add if clause in simd directive.
According to OpenMP 5.0, if clause can be used in simd directive. If
condition in the if clause if false, the non-vectorized version of the
loop must be executed.
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/OpenMPKinds.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Basic/OpenMPKinds.cpp b/clang/lib/Basic/OpenMPKinds.cpp index 4e6c677f11d..b1e623b861d 100644 --- a/clang/lib/Basic/OpenMPKinds.cpp +++ b/clang/lib/Basic/OpenMPKinds.cpp @@ -447,7 +447,8 @@ const char *clang::getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, } bool clang::isAllowedClauseForDirective(OpenMPDirectiveKind DKind, - OpenMPClauseKind CKind) { + OpenMPClauseKind CKind, + unsigned OpenMPVersion) { assert(DKind <= OMPD_unknown); assert(CKind <= OMPC_unknown); switch (DKind) { @@ -462,6 +463,8 @@ bool clang::isAllowedClauseForDirective(OpenMPDirectiveKind DKind, } break; case OMPD_simd: + if (OpenMPVersion < 50 && CKind == OMPC_if) + return false; switch (CKind) { #define OPENMP_SIMD_CLAUSE(Name) \ case OMPC_##Name: \ |