diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2018-01-16 19:02:33 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2018-01-16 19:02:33 +0000 |
commit | 9f9fb0ba35010c811ad74fe00b3ea64d97ac946c (patch) | |
tree | dbfc16c91a186bf9f2adfa3f754d801a1ab04bad /clang/lib/Sema | |
parent | 54a9e7a400d82f68fe66e680b6f953f88715e4f3 (diff) | |
download | bcm5719-llvm-9f9fb0ba35010c811ad74fe00b3ea64d97ac946c.tar.gz bcm5719-llvm-9f9fb0ba35010c811ad74fe00b3ea64d97ac946c.zip |
[OPENMP] Add support for `depend` on `target teams distribute parallel
for` directives.
Added codegen for `depend` clauses on `#pragma omp target teams
distribute parallel for` directives.
llvm-svn: 322585
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/SemaOpenMP.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index d3f641d5172..4144f3ab349 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -2307,6 +2307,11 @@ void Sema::ActOnOpenMPRegionStart(OpenMPDirectiveKind DKind, Scope *CurScope) { }; ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, Params); + // Mark this captured region as inlined, because we don't use outlined + // function directly. + getCurCapturedRegion()->TheCapturedDecl->addAttr( + AlwaysInlineAttr::CreateImplicit( + Context, AlwaysInlineAttr::Keyword_forceinline, SourceRange())); Sema::CapturedParamNameType ParamsTarget[] = { std::make_pair(StringRef(), QualType()) // __context with shared vars }; @@ -8158,9 +8163,9 @@ static OpenMPDirectiveKind getOpenMPCaptureRegionForClause( case OMPD_target_teams_distribute_simd: case OMPD_target_parallel_for: case OMPD_target_parallel_for_simd: + case OMPD_target_teams_distribute_parallel_for: CaptureRegion = OMPD_task; break; - case OMPD_target_teams_distribute_parallel_for: case OMPD_target_teams_distribute_parallel_for_simd: case OMPD_target_data: // Do not capture device-clause expressions. |