diff options
Diffstat (limited to 'clang/lib/Basic/OpenMPKinds.cpp')
-rw-r--r-- | clang/lib/Basic/OpenMPKinds.cpp | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/clang/lib/Basic/OpenMPKinds.cpp b/clang/lib/Basic/OpenMPKinds.cpp index 31eb2e9afb6..c99b3e8e75f 100644 --- a/clang/lib/Basic/OpenMPKinds.cpp +++ b/clang/lib/Basic/OpenMPKinds.cpp @@ -670,6 +670,16 @@ bool clang::isAllowedClauseForDirective(OpenMPDirectiveKind DKind, break; } break; + case OMPD_target_teams_distribute: + switch (CKind) { +#define OPENMP_TARGET_TEAMS_DISTRIBUTE_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: @@ -699,8 +709,8 @@ bool clang::isOpenMPLoopDirective(OpenMPDirectiveKind DKind) { DKind == OMPD_teams_distribute || DKind == OMPD_teams_distribute_simd || DKind == OMPD_teams_distribute_parallel_for_simd || - DKind == OMPD_teams_distribute_parallel_for; - // TODO add next directives. + DKind == OMPD_teams_distribute_parallel_for || + DKind == OMPD_target_teams_distribute; } bool clang::isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind) { @@ -737,7 +747,7 @@ bool clang::isOpenMPTargetExecutionDirective(OpenMPDirectiveKind DKind) { return DKind == OMPD_target || DKind == OMPD_target_parallel || DKind == OMPD_target_parallel_for || DKind == OMPD_target_parallel_for_simd || DKind == OMPD_target_simd || - DKind == OMPD_target_teams; + DKind == OMPD_target_teams || DKind == OMPD_target_teams_distribute; } bool clang::isOpenMPTargetDataManagementDirective(OpenMPDirectiveKind DKind) { @@ -754,7 +764,7 @@ bool clang::isOpenMPNestingTeamsDirective(OpenMPDirectiveKind DKind) { bool clang::isOpenMPTeamsDirective(OpenMPDirectiveKind DKind) { return isOpenMPNestingTeamsDirective(DKind) || - DKind == OMPD_target_teams; + DKind == OMPD_target_teams || DKind == OMPD_target_teams_distribute; } bool clang::isOpenMPSimdDirective(OpenMPDirectiveKind DKind) { @@ -778,8 +788,8 @@ bool clang::isOpenMPDistributeDirective(OpenMPDirectiveKind Kind) { return isOpenMPNestingDistributeDirective(Kind) || Kind == OMPD_teams_distribute || Kind == OMPD_teams_distribute_simd || Kind == OMPD_teams_distribute_parallel_for_simd || - Kind == OMPD_teams_distribute_parallel_for; - // TODO add next directives. + Kind == OMPD_teams_distribute_parallel_for || + Kind == OMPD_target_teams_distribute; } bool clang::isOpenMPPrivate(OpenMPClauseKind Kind) { @@ -802,5 +812,6 @@ bool clang::isOpenMPLoopBoundSharingDirective(OpenMPDirectiveKind Kind) { Kind == OMPD_distribute_simd || Kind == OMPD_teams_distribute || Kind == OMPD_teams_distribute_simd || Kind == OMPD_teams_distribute_parallel_for_simd || - Kind == OMPD_teams_distribute_parallel_for; + Kind == OMPD_teams_distribute_parallel_for || + Kind == OMPD_target_teams_distribute; } |