Go to the documentation of this file.
14 #ifndef LLVM_CLANG_BASIC_OPENMPKINDS_H
15 #define LLVM_CLANG_BASIC_OPENMPKINDS_H
18 #include "llvm/ADT/StringRef.h"
19 #include "llvm/Frontend/OpenMP/OMPConstants.h"
31 #define OPENMP_SCHEDULE_KIND(Name) \
33 #include "clang/Basic/OpenMPKinds.def"
40 #define OPENMP_SCHEDULE_MODIFIER(Name) \
41 OMPC_SCHEDULE_MODIFIER_##Name,
42 #include "clang/Basic/OpenMPKinds.def"
48 #define OPENMP_DEVICE_MODIFIER(Name) OMPC_DEVICE_##Name,
49 #include "clang/Basic/OpenMPKinds.def"
55 #define OPENMP_DEPEND_KIND(Name) \
57 #include "clang/Basic/OpenMPKinds.def"
63 #define OPENMP_LINEAR_KIND(Name) \
65 #include "clang/Basic/OpenMPKinds.def"
71 #define OPENMP_MAP_KIND(Name) \
73 #include "clang/Basic/OpenMPKinds.def"
80 #define OPENMP_MAP_MODIFIER_KIND(Name) \
81 OMPC_MAP_MODIFIER_##Name,
82 #include "clang/Basic/OpenMPKinds.def"
92 #define OPENMP_MOTION_MODIFIER_KIND(Name) \
93 OMPC_MOTION_MODIFIER_##Name,
94 #include "clang/Basic/OpenMPKinds.def"
104 #define OPENMP_DIST_SCHEDULE_KIND(Name) OMPC_DIST_SCHEDULE_##Name,
105 #include "clang/Basic/OpenMPKinds.def"
111 #define OPENMP_DEFAULTMAP_KIND(Name) \
112 OMPC_DEFAULTMAP_##Name,
113 #include "clang/Basic/OpenMPKinds.def"
120 #define OPENMP_DEFAULTMAP_MODIFIER(Name) \
121 OMPC_DEFAULTMAP_MODIFIER_##Name,
122 #include "clang/Basic/OpenMPKinds.def"
128 #define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name) \
129 OMPC_ATOMIC_DEFAULT_MEM_ORDER_##Name,
130 #include "clang/Basic/OpenMPKinds.def"
136 #define OPENMP_AT_KIND(Name) OMPC_AT_##Name,
137 #include "clang/Basic/OpenMPKinds.def"
143 #define OPENMP_SEVERITY_KIND(Name) OMPC_SEVERITY_##Name,
144 #include "clang/Basic/OpenMPKinds.def"
150 #define OPENMP_DEVICE_TYPE_KIND(Name) \
151 OMPC_DEVICE_TYPE_##Name,
152 #include "clang/Basic/OpenMPKinds.def"
158 #define OPENMP_LASTPRIVATE_KIND(Name) OMPC_LASTPRIVATE_##Name,
159 #include "clang/Basic/OpenMPKinds.def"
165 #define OPENMP_ORDER_KIND(Name) OMPC_ORDER_##Name,
166 #include "clang/Basic/OpenMPKinds.def"
173 #define OPENMP_ORDER_MODIFIER(Name) OMPC_ORDER_MODIFIER_##Name,
174 #include "clang/Basic/OpenMPKinds.def"
187 #define OPENMP_REDUCTION_MODIFIER(Name) OMPC_REDUCTION_##Name,
188 #include "clang/Basic/OpenMPKinds.def"
194 #define OPENMP_ADJUST_ARGS_KIND(Name) OMPC_ADJUST_ARGS_##Name,
195 #include "clang/Basic/OpenMPKinds.def"
201 #define OPENMP_BIND_KIND(Name) OMPC_BIND_##Name,
202 #include "clang/Basic/OpenMPKinds.def"
207 #define OPENMP_GRAINSIZE_MODIFIER(Name) OMPC_GRAINSIZE_##Name,
208 #include "clang/Basic/OpenMPKinds.def"
213 #define OPENMP_NUMTASKS_MODIFIER(Name) OMPC_NUMTASKS_##Name,
214 #include "clang/Basic/OpenMPKinds.def"
OpenMPDeviceClauseModifier
OpenMP modifiers for 'device' clause.
bool isOpenMPTargetDataManagementDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a target data offload directive.
@ OMPC_ATOMIC_DEFAULT_MEM_ORDER_unknown
bool isOpenMPNestingTeamsDirective(OpenMPDirectiveKind DKind)
Checks if the specified composite/combined directive constitutes a teams directive in the outermost n...
OpenMPAtClauseKind
OpenMP attributes for 'at' clause.
bool isOpenMPParallelDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a parallel-kind directive.
bool isOpenMPThreadPrivate(OpenMPClauseKind Kind)
Checks if the specified clause is one of threadprivate clauses like 'threadprivate',...
static constexpr unsigned NumberOfOMPMotionModifiers
Number of allowed motion-modifiers.
OpenMPReductionClauseModifier
OpenMP modifiers for 'reduction' clause.
bool isOpenMPLoopDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a directive with an associated loop construct.
@ OMPC_ORDER_MODIFIER_unknown
bool isOpenMPCombinedParallelADirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a combined construct for which the first construct is a parallel...
OpenMPScheduleClauseKind Schedule
OpenMPMapClauseKind
OpenMP mapping kind for 'map' clause.
@ OMPC_LASTPRIVATE_unknown
OpenMPNumTasksClauseModifier
OpenMPMapModifierKind
OpenMP modifier kind for 'map' clause.
OpenMPSeverityClauseKind
OpenMP attributes for 'severity' clause.
The base class of the type hierarchy.
static constexpr unsigned NumberOfOMPMapClauseModifiers
Number of allowed map-type-modifiers.
OpenMPLastprivateModifier
OpenMP 'lastprivate' clause modifier.
bool isOpenMPDistributeDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a distribute directive.
OpenMPBindClauseKind
OpenMP bindings for the 'bind' clause.
bool isOpenMPLoopTransformationDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a loop transformation directive.
OpenMPMotionModifierKind
OpenMP modifier kind for 'to' or 'from' clause.
@ OMPC_SCHEDULE_MODIFIER_unknown
llvm::SmallVector< Expr *, 4 > PreferTypes
OpenMPLinearClauseKind
OpenMP attributes for 'linear' clause.
OpenMPDeviceType
OpenMP device type for 'device_type' clause.
OMPInteropInfo(bool IsTarget=false, bool IsTargetSync=false)
OpenMPDefaultmapClauseKind
OpenMP attributes for 'defaultmap' clause.
void getOpenMPCaptureRegions(llvm::SmallVectorImpl< OpenMPDirectiveKind > &CaptureRegions, OpenMPDirectiveKind DKind)
Return the captured regions of an OpenMP directive.
OpenMPOrderClauseKind
OpenMP attributes for 'order' clause.
llvm::omp::Clause OpenMPClauseKind
OpenMP clauses.
OpenMPGrainsizeClauseModifier
@ OMPC_MOTION_MODIFIER_unknown
@ OMPC_DEVICE_TYPE_unknown
bool isOpenMPGenericLoopDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive constitutes a 'loop' directive in the outermost nest.
OpenMPDependClauseKind
OpenMP attributes for 'depend' clause.
bool isOpenMPPrivate(OpenMPClauseKind Kind)
Checks if the specified clause is one of private clauses like 'private', 'firstprivate',...
OpenMPAdjustArgsOpKind
OpenMP adjust-op kinds for 'adjust_args' clause.
bool isOpenMPTeamsDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a teams-kind directive.
const char * getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, unsigned Type)
@ OMPC_ORDER_MODIFIER_last
@ OMPC_DEFAULTMAP_MODIFIER_unknown
@ OMPC_DEFAULTMAP_MODIFIER_last
VerifyDiagnosticConsumer::Directive Directive
@ OMPC_SCHEDULE_MODIFIER_last
bool isOpenMPTaskLoopDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a taskloop directive.
OpenMPDefaultmapClauseModifier
OpenMP modifiers for 'defaultmap' clause.
OpenMPScheduleClauseModifier M2
OpenMPAtomicDefaultMemOrderClauseKind
OpenMP attributes for 'atomic_default_mem_order' clause.
unsigned getOpenMPSimpleClauseType(OpenMPClauseKind Kind, llvm::StringRef Str, const LangOptions &LangOpts)
bool isOpenMPNestingDistributeDirective(OpenMPDirectiveKind DKind)
Checks if the specified composite/combined directive constitutes a distribute directive in the outerm...
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
bool isOpenMPLoopBoundSharingDirective(OpenMPDirectiveKind Kind)
Checks if the specified directive kind is one of the composite or combined directives that need loop ...
bool isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a worksharing directive.
bool isOpenMPTaskingDirective(OpenMPDirectiveKind Kind)
Checks if the specified directive kind is one of tasking directives - task, taskloop,...
@ OMPC_MAP_MODIFIER_unknown
OpenMPDistScheduleClauseKind
OpenMP attributes for 'dist_schedule' clause.
@ OMPC_DIST_SCHEDULE_unknown
OpenMPScheduleClauseModifier
OpenMP modifiers for 'schedule' clause.
llvm::omp::Directive OpenMPDirectiveKind
OpenMP directives.
OpenMPScheduleClauseModifier M1
bool isOpenMPTargetExecutionDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a target code offload directive.
OpenMPScheduleClauseKind
OpenMP attributes for 'schedule' clause.
@ OMPC_DEFAULTMAP_unknown
@ OMPC_ADJUST_ARGS_unknown
bool isOpenMPSimdDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a simd directive.
Scheduling data for loop-based OpenMP directives.
OpenMPOrderClauseModifier
OpenMP modifiers for 'order' clause.