diff options
Diffstat (limited to 'lib/Basic/OpenMPKinds.cpp')
| -rw-r--r-- | lib/Basic/OpenMPKinds.cpp | 37 | 
1 files changed, 26 insertions, 11 deletions
| diff --git a/lib/Basic/OpenMPKinds.cpp b/lib/Basic/OpenMPKinds.cpp index 4675995ea722..7bd1f8762bff 100644 --- a/lib/Basic/OpenMPKinds.cpp +++ b/lib/Basic/OpenMPKinds.cpp @@ -690,6 +690,16 @@ bool clang::isAllowedClauseForDirective(OpenMPDirectiveKind DKind,        break;      }      break; +  case OMPD_target_teams_distribute_parallel_for_simd: +    switch (CKind) { +#define OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_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: @@ -721,7 +731,8 @@ bool clang::isOpenMPLoopDirective(OpenMPDirectiveKind DKind) {           DKind == OMPD_teams_distribute_parallel_for_simd ||           DKind == OMPD_teams_distribute_parallel_for ||           DKind == OMPD_target_teams_distribute || -         DKind == OMPD_target_teams_distribute_parallel_for; +         DKind == OMPD_target_teams_distribute_parallel_for || +         DKind == OMPD_target_teams_distribute_parallel_for_simd;  }  bool clang::isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind) { @@ -735,8 +746,8 @@ bool clang::isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind) {           DKind == OMPD_target_parallel_for_simd ||           DKind == OMPD_teams_distribute_parallel_for_simd ||           DKind == OMPD_teams_distribute_parallel_for || -         DKind == OMPD_target_teams_distribute_parallel_for; -  // TODO add next directives. +         DKind == OMPD_target_teams_distribute_parallel_for || +         DKind == OMPD_target_teams_distribute_parallel_for_simd;  }  bool clang::isOpenMPTaskLoopDirective(OpenMPDirectiveKind DKind) { @@ -752,8 +763,8 @@ bool clang::isOpenMPParallelDirective(OpenMPDirectiveKind DKind) {           DKind == OMPD_target_parallel_for_simd ||           DKind == OMPD_teams_distribute_parallel_for ||           DKind == OMPD_teams_distribute_parallel_for_simd || -         DKind == OMPD_target_teams_distribute_parallel_for; -  // TODO add next directives. +         DKind == OMPD_target_teams_distribute_parallel_for || +         DKind == OMPD_target_teams_distribute_parallel_for_simd;  }  bool clang::isOpenMPTargetExecutionDirective(OpenMPDirectiveKind DKind) { @@ -761,7 +772,8 @@ bool clang::isOpenMPTargetExecutionDirective(OpenMPDirectiveKind DKind) {           DKind == OMPD_target_parallel_for ||            DKind == OMPD_target_parallel_for_simd || DKind == OMPD_target_simd ||           DKind == OMPD_target_teams || DKind == OMPD_target_teams_distribute || -         DKind == OMPD_target_teams_distribute_parallel_for; +         DKind == OMPD_target_teams_distribute_parallel_for || +         DKind == OMPD_target_teams_distribute_parallel_for_simd;  }  bool clang::isOpenMPTargetDataManagementDirective(OpenMPDirectiveKind DKind) { @@ -779,7 +791,8 @@ bool clang::isOpenMPNestingTeamsDirective(OpenMPDirectiveKind DKind) {  bool clang::isOpenMPTeamsDirective(OpenMPDirectiveKind DKind) {    return isOpenMPNestingTeamsDirective(DKind) ||           DKind == OMPD_target_teams || DKind == OMPD_target_teams_distribute || -         DKind == OMPD_target_teams_distribute_parallel_for; +         DKind == OMPD_target_teams_distribute_parallel_for || +         DKind == OMPD_target_teams_distribute_parallel_for_simd;  }  bool clang::isOpenMPSimdDirective(OpenMPDirectiveKind DKind) { @@ -788,8 +801,8 @@ bool clang::isOpenMPSimdDirective(OpenMPDirectiveKind DKind) {           DKind == OMPD_distribute_parallel_for_simd ||           DKind == OMPD_distribute_simd || DKind == OMPD_target_simd ||           DKind == OMPD_teams_distribute_simd || -         DKind == OMPD_teams_distribute_parallel_for_simd; -  // TODO add next directives. +         DKind == OMPD_teams_distribute_parallel_for_simd || +         DKind == OMPD_target_teams_distribute_parallel_for_simd;  }  bool clang::isOpenMPNestingDistributeDirective(OpenMPDirectiveKind Kind) { @@ -805,7 +818,8 @@ bool clang::isOpenMPDistributeDirective(OpenMPDirectiveKind Kind) {           Kind == OMPD_teams_distribute_parallel_for_simd ||           Kind == OMPD_teams_distribute_parallel_for ||           Kind == OMPD_target_teams_distribute || -         Kind == OMPD_target_teams_distribute_parallel_for; +         Kind == OMPD_target_teams_distribute_parallel_for || +         Kind == OMPD_target_teams_distribute_parallel_for_simd;  }  bool clang::isOpenMPPrivate(OpenMPClauseKind Kind) { @@ -830,5 +844,6 @@ bool clang::isOpenMPLoopBoundSharingDirective(OpenMPDirectiveKind Kind) {           Kind == OMPD_teams_distribute_parallel_for_simd ||           Kind == OMPD_teams_distribute_parallel_for ||           Kind == OMPD_target_teams_distribute || -         Kind == OMPD_target_teams_distribute_parallel_for; +         Kind == OMPD_target_teams_distribute_parallel_for || +         Kind == OMPD_target_teams_distribute_parallel_for_simd;  } | 
