diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2017-11-22 21:12:03 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2017-11-22 21:12:03 +0000 |
commit | 16e798873e42656788ccdd29d37e37994b259f33 (patch) | |
tree | 58d9e6c5239bc527d88331b40eca032958a22c8f /clang/lib/CodeGen/CGStmtOpenMP.cpp | |
parent | fd872e963795c0ed3a611801c0ed9cf5500110e6 (diff) | |
download | bcm5719-llvm-16e798873e42656788ccdd29d37e37994b259f33.tar.gz bcm5719-llvm-16e798873e42656788ccdd29d37e37994b259f33.zip |
[OPENMP] Add support for cancel constructs in `target teams distribute
parallel for`.
Add support for cancel/cancellation point directives inside `target
teams distribute parallel for` directives.
llvm-svn: 318881
Diffstat (limited to 'clang/lib/CodeGen/CGStmtOpenMP.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGStmtOpenMP.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp index 7942189b87e..af9f7e2eff5 100644 --- a/clang/lib/CodeGen/CGStmtOpenMP.cpp +++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp @@ -2014,6 +2014,9 @@ emitInnerParallelForWhenCombined(CodeGenFunction &CGF, HasCancel = D->hasCancel(); else if (const auto *D = dyn_cast<OMPDistributeParallelForDirective>(&S)) HasCancel = D->hasCancel(); + else if (const auto *D = + dyn_cast<OMPTargetTeamsDistributeParallelForDirective>(&S)) + HasCancel = D->hasCancel(); } CodeGenFunction::OMPCancelStackRAII CancelRegion(CGF, S.getDirectiveKind(), HasCancel); @@ -3949,7 +3952,8 @@ CodeGenFunction::getOMPCancelDestination(OpenMPDirectiveKind Kind) { Kind == OMPD_parallel_sections || Kind == OMPD_parallel_for || Kind == OMPD_distribute_parallel_for || Kind == OMPD_target_parallel_for || - Kind == OMPD_teams_distribute_parallel_for); + Kind == OMPD_teams_distribute_parallel_for || + Kind == OMPD_target_teams_distribute_parallel_for); return OMPCancelStack.getExitBlock(); } |