diff options
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaAMDGPU.cpp | 43 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaOpenMP.cpp | 21 | ||||
| -rw-r--r-- | clang/lib/Sema/TreeTransform.h | 7 | 
3 files changed, 70 insertions, 1 deletions
| diff --git a/clang/lib/Sema/SemaAMDGPU.cpp b/clang/lib/Sema/SemaAMDGPU.cpp index e32f437..139c4ab 100644 --- a/clang/lib/Sema/SemaAMDGPU.cpp +++ b/clang/lib/Sema/SemaAMDGPU.cpp @@ -153,7 +153,48 @@ bool SemaAMDGPU::CheckAMDGCNBuiltinFunctionCall(unsigned BuiltinID,    case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f32_f32:    case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f16_f32:    case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f32_f32: -  case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f16_f32: { +  case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f32_f32: +  case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f16_f32: +  case AMDGPU::BI__builtin_amdgcn_image_gather4_lz_2d_v4f32_f32: {      StringRef FeatureList(          getASTContext().BuiltinInfo.getRequiredFeatures(BuiltinID));      if (!Builtin::evaluateRequiredTargetFeatures(FeatureList, diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 6d5cb0f..256f952 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -17216,6 +17216,10 @@ OMPClause *SemaOpenMP::ActOnOpenMPSimpleClause(          static_cast<OpenMPSeverityClauseKind>(Argument), ArgumentLoc, StartLoc,          LParenLoc, EndLoc);      break; +  case OMPC_threadset: +    Res = ActOnOpenMPThreadsetClause(static_cast<OpenMPThreadsetKind>(Argument), +                                     ArgumentLoc, StartLoc, LParenLoc, EndLoc); +    break;    case OMPC_if:    case OMPC_final:    case OMPC_num_threads: @@ -17355,6 +17359,23 @@ OMPClause *SemaOpenMP::ActOnOpenMPDefaultClause(        OMPDefaultClause(M, MLoc, VCKind, VCKindLoc, StartLoc, LParenLoc, EndLoc);  } +OMPClause *SemaOpenMP::ActOnOpenMPThreadsetClause(OpenMPThreadsetKind Kind, +                                                  SourceLocation KindLoc, +                                                  SourceLocation StartLoc, +                                                  SourceLocation LParenLoc, +                                                  SourceLocation EndLoc) { +  if (Kind == OMPC_THREADSET_unknown) { +    Diag(KindLoc, diag::err_omp_unexpected_clause_value) +        << getListOfPossibleValues(OMPC_threadset, /*First=*/0, +                                   /*Last=*/unsigned(OMPC_THREADSET_unknown)) +        << getOpenMPClauseName(OMPC_threadset); +    return nullptr; +  } + +  return new (getASTContext()) +      OMPThreadsetClause(Kind, KindLoc, StartLoc, LParenLoc, EndLoc); +} +  OMPClause *SemaOpenMP::ActOnOpenMPProcBindClause(ProcBindKind Kind,                                                   SourceLocation KindKwLoc,                                                   SourceLocation StartLoc, diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 0c8c1d1..8c20078 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -10624,6 +10624,13 @@ TreeTransform<Derived>::TransformOMPDefaultClause(OMPDefaultClause *C) {  template <typename Derived>  OMPClause * +TreeTransform<Derived>::TransformOMPThreadsetClause(OMPThreadsetClause *C) { +  // No need to rebuild this clause, no template-dependent parameters. +  return C; +} + +template <typename Derived> +OMPClause *  TreeTransform<Derived>::TransformOMPProcBindClause(OMPProcBindClause *C) {    return getDerived().RebuildOMPProcBindClause(        C->getProcBindKind(), C->getProcBindKindKwLoc(), C->getBeginLoc(), | 
