summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaOpenMP.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2019-12-05 13:22:15 -0500
committerAlexey Bataev <a.bataev@hotmail.com>2019-12-05 13:23:15 -0500
commit52812f2ade71476ea309a3482c93d0c9db1fa45b (patch)
tree1ad05b1eeb00d0e855f8a62ee014d67ea6876f03 /clang/lib/Sema/SemaOpenMP.cpp
parent796fa662f12851494303558e0d36b239c55343e7 (diff)
downloadbcm5719-llvm-52812f2ade71476ea309a3482c93d0c9db1fa45b.tar.gz
bcm5719-llvm-52812f2ade71476ea309a3482c93d0c9db1fa45b.zip
[OPENMP50]Add support for if clause for simd part in distribute parallel for simd directive.
According to OpenMP 5.0, the if clause can be applied to simd subdirective in the combined directives.
Diffstat (limited to 'clang/lib/Sema/SemaOpenMP.cpp')
-rw-r--r--clang/lib/Sema/SemaOpenMP.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index ff9fe4f10c1..5f37b949a62 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -4695,6 +4695,8 @@ StmtResult Sema::ActOnOpenMPExecutableDirective(
Res = ActOnOpenMPDistributeParallelForSimdDirective(
ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
AllowedNameModifiers.push_back(OMPD_parallel);
+ if (LangOpts.OpenMP >= 50)
+ AllowedNameModifiers.push_back(OMPD_simd);
break;
case OMPD_distribute_simd:
Res = ActOnOpenMPDistributeSimdDirective(
@@ -10708,6 +10710,12 @@ static OpenMPDirectiveKind getOpenMPCaptureRegionForClause(
if (NameModifier == OMPD_unknown || NameModifier == OMPD_simd)
CaptureRegion = OMPD_taskloop;
break;
+ case OMPD_distribute_parallel_for_simd:
+ if (OpenMPVersion <= 45)
+ break;
+ if (NameModifier == OMPD_unknown || NameModifier == OMPD_simd)
+ CaptureRegion = OMPD_parallel;
+ break;
case OMPD_cancel:
case OMPD_parallel:
case OMPD_parallel_sections:
@@ -10718,7 +10726,6 @@ static OpenMPDirectiveKind getOpenMPCaptureRegionForClause(
case OMPD_target_teams_distribute:
case OMPD_target_teams_distribute_simd:
case OMPD_distribute_parallel_for:
- case OMPD_distribute_parallel_for_simd:
case OMPD_task:
case OMPD_taskloop:
case OMPD_master_taskloop:
OpenPOWER on IntegriCloud