14 #ifndef LLVM_CLANG_BASIC_OPENMPKINDS_H 15 #define LLVM_CLANG_BASIC_OPENMPKINDS_H 17 #include "llvm/ADT/StringRef.h" 18 #include "llvm/Frontend/OpenMP/OMPConstants.h" 24 #define OPENMP_CONTEXT_SELECTOR_SET(Name) OMP_CTX_SET_##Name, 25 #include "clang/Basic/OpenMPKinds.def" 31 #define OPENMP_CONTEXT_SELECTOR(Name) OMP_CTX_##Name, 32 #include "clang/Basic/OpenMPKinds.def" 52 : CtxSet(CtxSet), Ctx(Ctx), Score(Score), Names(Names) {}
56 const ScoreT &Score,
const U &Names)
57 : CtxSet(CtxSet), Ctx(Ctx), Score(Score),
58 Names(Names.begin(), Names.end()) {}
66 #define OPENMP_CLAUSE(Name, Class) \ 68 #include "clang/Basic/OpenMPKinds.def" 78 #define OPENMP_DEFAULT_KIND(Name) \ 80 #include "clang/Basic/OpenMPKinds.def" 86 #define OPENMP_SCHEDULE_KIND(Name) \ 88 #include "clang/Basic/OpenMPKinds.def" 95 #define OPENMP_SCHEDULE_MODIFIER(Name) \ 96 OMPC_SCHEDULE_MODIFIER_##Name, 97 #include "clang/Basic/OpenMPKinds.def" 103 #define OPENMP_DEPEND_KIND(Name) \ 105 #include "clang/Basic/OpenMPKinds.def" 111 #define OPENMP_LINEAR_KIND(Name) \ 113 #include "clang/Basic/OpenMPKinds.def" 119 #define OPENMP_MAP_KIND(Name) \ 121 #include "clang/Basic/OpenMPKinds.def" 128 #define OPENMP_MAP_MODIFIER_KIND(Name) \ 129 OMPC_MAP_MODIFIER_##Name, 130 #include "clang/Basic/OpenMPKinds.def" 136 #define OPENMP_TO_MODIFIER_KIND(Name) \ 137 OMPC_TO_MODIFIER_##Name, 138 #include "clang/Basic/OpenMPKinds.def" 144 #define OPENMP_FROM_MODIFIER_KIND(Name) \ 145 OMPC_FROM_MODIFIER_##Name, 146 #include "clang/Basic/OpenMPKinds.def" 152 #define OPENMP_DIST_SCHEDULE_KIND(Name) OMPC_DIST_SCHEDULE_##Name, 153 #include "clang/Basic/OpenMPKinds.def" 159 #define OPENMP_DEFAULTMAP_KIND(Name) \ 160 OMPC_DEFAULTMAP_##Name, 161 #include "clang/Basic/OpenMPKinds.def" 168 #define OPENMP_DEFAULTMAP_MODIFIER(Name) \ 169 OMPC_DEFAULTMAP_MODIFIER_##Name, 170 #include "clang/Basic/OpenMPKinds.def" 176 #define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name) \ 177 OMPC_ATOMIC_DEFAULT_MEM_ORDER_##Name, 178 #include "clang/Basic/OpenMPKinds.def" 184 #define OPENMP_DEVICE_TYPE_KIND(Name) \ 185 OMPC_DEVICE_TYPE_##Name, 186 #include "clang/Basic/OpenMPKinds.def" 192 #define OPENMP_LASTPRIVATE_KIND(Name) OMPC_LASTPRIVATE_##Name, 193 #include "clang/Basic/OpenMPKinds.def" 212 unsigned OpenMPVersion);
OpenMPFromModifierKind
OpenMP modifier kind for 'from' clause.
OpenMPCtxSelectorData(OpenMPContextSelectorSetKind CtxSet, OpenMPContextSelectorKind Ctx, const ScoreT &Score, const U &Names)
Scheduling data for loop-based OpenMP directives.
Struct to store the context selectors info.
OpenMPDefaultmapClauseKind
OpenMP attributes for 'defaultmap' clause.
OpenMPContextSelectorSetKind CtxSet
bool isOpenMPNestingDistributeDirective(OpenMPDirectiveKind DKind)
Checks if the specified composite/combined directive constitutes a distribute directive in the outerm...
bool isOpenMPTargetDataManagementDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a target data offload directive.
The base class of the type hierarchy.
const char * getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, unsigned Type)
OpenMPDefaultmapClauseModifier
OpenMP modifiers for 'defaultmap' clause.
OpenMPMapModifierKind
OpenMP modifier kind for 'map' clause.
const char * getOpenMPClauseName(OpenMPClauseKind Kind)
llvm::StringRef getOpenMPContextSelectorName(OpenMPContextSelectorKind Kind)
bool isOpenMPTaskingDirective(OpenMPDirectiveKind Kind)
Checks if the specified directive kind is one of tasking directives - task, taskloop, taksloop simd, master taskloop, parallel master taskloop, master taskloop simd, or parallel master taskloop simd.
OpenMPLinearClauseKind
OpenMP attributes for 'linear' clause.
OpenMPContextSelectorKind
OpenMP context selectors.
OpenMPDistScheduleClauseKind
OpenMP attributes for 'dist_schedule' clause.
OpenMPContextSelectorSetKind
OpenMP context selector sets.
bool isAllowedClauseForDirective(OpenMPDirectiveKind DKind, OpenMPClauseKind CKind, unsigned OpenMPVersion)
bool isOpenMPTeamsDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a teams-kind directive.
OpenMPClauseKind getOpenMPClauseKind(llvm::StringRef Str)
OpenMPContextSelectorSetKind getOpenMPContextSelectorSet(llvm::StringRef Str)
bool isOpenMPTargetExecutionDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a target code offload directive.
bool isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a worksharing directive.
llvm::omp::Directive OpenMPDirectiveKind
OpenMP directives.
bool isOpenMPPrivate(OpenMPClauseKind Kind)
Checks if the specified clause is one of private clauses like 'private', 'firstprivate', 'reduction' etc.
OpenMPLastprivateModifier
OpenMP 'lastprivate' clause modifier.
bool isOpenMPParallelDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a parallel-kind directive.
OpenMPCtxSelectorData()=default
OpenMPClauseKind
OpenMP clauses.
OpenMPDeviceType
OpenMP device type for 'device_type' clause.
llvm::StringRef getOpenMPContextSelectorSetName(OpenMPContextSelectorSetKind Kind)
bool isOpenMPTaskLoopDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a taskloop directive.
Represents a GCC generic vector type.
OpenMPDependClauseKind
OpenMP attributes for 'depend' clause.
bool isOpenMPLoopBoundSharingDirective(OpenMPDirectiveKind Kind)
Checks if the specified directive kind is one of the composite or combined directives that need loop ...
OpenMPScheduleClauseModifier
OpenMP modifiers for 'schedule' clause.
Dataflow Directional Tag Classes.
OpenMPContextSelectorKind Ctx
OpenMPAtomicDefaultMemOrderClauseKind
OpenMP attributes for 'atomic_default_mem_order' clause.
bool isOpenMPSimdDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a simd directive.
bool isOpenMPThreadPrivate(OpenMPClauseKind Kind)
Checks if the specified clause is one of threadprivate clauses like 'threadprivate', 'copyin' or 'copyprivate'.
OpenMPToModifierKind
OpenMP modifier kind for 'to' clause.
void getOpenMPCaptureRegions(llvm::SmallVectorImpl< OpenMPDirectiveKind > &CaptureRegions, OpenMPDirectiveKind DKind)
Return the captured regions of an OpenMP directive.
unsigned getOpenMPSimpleClauseType(OpenMPClauseKind Kind, llvm::StringRef Str)
bool isOpenMPDistributeDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a distribute directive.
OpenMPScheduleClauseKind
OpenMP attributes for 'schedule' clause.
OpenMPDefaultClauseKind
OpenMP attributes for 'default' clause.
OpenMPCtxSelectorData(OpenMPContextSelectorSetKind CtxSet, OpenMPContextSelectorKind Ctx, const ScoreT &Score, VectorType &&Names)
OpenMPMapClauseKind
OpenMP mapping kind for 'map' clause.
OpenMPContextSelectorKind getOpenMPContextSelector(llvm::StringRef Str)
bool isOpenMPLoopDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a directive with an associated loop construct.
VerifyDiagnosticConsumer::Directive Directive
bool isOpenMPNestingTeamsDirective(OpenMPDirectiveKind DKind)
Checks if the specified composite/combined directive constitutes a teams directive in the outermost n...