clang 10.0.0git

OpenMPKinds.h
Go to the documentation of this file.
1 //===--- OpenMPKinds.h - OpenMP enums ---------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 ///
9 /// \file
10 /// Defines some OpenMP-specific enums and functions.
11 ///
12 //===----------------------------------------------------------------------===//
13
14 #ifndef LLVM_CLANG_BASIC_OPENMPKINDS_H
15 #define LLVM_CLANG_BASIC_OPENMPKINDS_H
16
17 #include "llvm/ADT/StringRef.h"
18 #include "llvm/Frontend/OpenMP/OMPConstants.h"
19
20 namespace clang {
21
22 /// OpenMP context selector sets.
23 enum OpenMPContextSelectorSetKind {
24 #define OPENMP_CONTEXT_SELECTOR_SET(Name) OMP_CTX_SET_##Name,
25 #include "clang/Basic/OpenMPKinds.def"
26 OMP_CTX_SET_unknown,
27 };
28
29 /// OpenMP context selectors.
30 enum OpenMPContextSelectorKind {
31 #define OPENMP_CONTEXT_SELECTOR(Name) OMP_CTX_##Name,
32 #include "clang/Basic/OpenMPKinds.def"
33 OMP_CTX_unknown,
34 };
35
36 OpenMPContextSelectorSetKind getOpenMPContextSelectorSet(llvm::StringRef Str);
37 llvm::StringRef
38 getOpenMPContextSelectorSetName(OpenMPContextSelectorSetKind Kind);
39 OpenMPContextSelectorKind getOpenMPContextSelector(llvm::StringRef Str);
40 llvm::StringRef getOpenMPContextSelectorName(OpenMPContextSelectorKind Kind);
41
42 /// Struct to store the context selectors info.
43 template <typename VectorType, typename ScoreT> struct OpenMPCtxSelectorData {
44 OpenMPContextSelectorSetKind CtxSet = OMP_CTX_SET_unknown;
45 OpenMPContextSelectorKind Ctx = OMP_CTX_unknown;
46 ScoreT Score;
47 VectorType Names;
48 explicit OpenMPCtxSelectorData() = default;
49 explicit OpenMPCtxSelectorData(OpenMPContextSelectorSetKind CtxSet,
50 OpenMPContextSelectorKind Ctx,
51 const ScoreT &Score, VectorType &&Names)
52 : CtxSet(CtxSet), Ctx(Ctx), Score(Score), Names(Names) {}
53 template <typename U>
54 explicit OpenMPCtxSelectorData(OpenMPContextSelectorSetKind CtxSet,
55 OpenMPContextSelectorKind Ctx,
56 const ScoreT &Score, const U &Names)
57 : CtxSet(CtxSet), Ctx(Ctx), Score(Score),
58 Names(Names.begin(), Names.end()) {}
59 };
60
61 /// OpenMP directives.
62 using OpenMPDirectiveKind = llvm::omp::Directive;
63
64 /// OpenMP clauses.
65 enum OpenMPClauseKind {
66 #define OPENMP_CLAUSE(Name, Class) \
67 OMPC_##Name,
68 #include "clang/Basic/OpenMPKinds.def"
69 OMPC_threadprivate,
70 OMPC_uniform,
71 OMPC_device_type,
72 OMPC_match,
73 OMPC_unknown
74 };
75
76 /// OpenMP attributes for 'default' clause.
77 enum OpenMPDefaultClauseKind {
78 #define OPENMP_DEFAULT_KIND(Name) \
79 OMPC_DEFAULT_##Name,
80 #include "clang/Basic/OpenMPKinds.def"
81 OMPC_DEFAULT_unknown
82 };
83
84 /// OpenMP attributes for 'schedule' clause.
85 enum OpenMPScheduleClauseKind {
86 #define OPENMP_SCHEDULE_KIND(Name) \
87 OMPC_SCHEDULE_##Name,
88 #include "clang/Basic/OpenMPKinds.def"
89 OMPC_SCHEDULE_unknown
90 };
91
92 /// OpenMP modifiers for 'schedule' clause.
93 enum OpenMPScheduleClauseModifier {
94 OMPC_SCHEDULE_MODIFIER_unknown = OMPC_SCHEDULE_unknown,
95 #define OPENMP_SCHEDULE_MODIFIER(Name) \
96 OMPC_SCHEDULE_MODIFIER_##Name,
97 #include "clang/Basic/OpenMPKinds.def"
98 OMPC_SCHEDULE_MODIFIER_last
99 };
100
101 /// OpenMP attributes for 'depend' clause.
102 enum OpenMPDependClauseKind {
103 #define OPENMP_DEPEND_KIND(Name) \
104 OMPC_DEPEND_##Name,
105 #include "clang/Basic/OpenMPKinds.def"
106 OMPC_DEPEND_unknown
107 };
108
109 /// OpenMP attributes for 'linear' clause.
110 enum OpenMPLinearClauseKind {
111 #define OPENMP_LINEAR_KIND(Name) \
112 OMPC_LINEAR_##Name,
113 #include "clang/Basic/OpenMPKinds.def"
114 OMPC_LINEAR_unknown
115 };
116
117 /// OpenMP mapping kind for 'map' clause.
118 enum OpenMPMapClauseKind {
119 #define OPENMP_MAP_KIND(Name) \
120 OMPC_MAP_##Name,
121 #include "clang/Basic/OpenMPKinds.def"
122 OMPC_MAP_unknown
123 };
124
125 /// OpenMP modifier kind for 'map' clause.
126 enum OpenMPMapModifierKind {
127 OMPC_MAP_MODIFIER_unknown = OMPC_MAP_unknown,
128 #define OPENMP_MAP_MODIFIER_KIND(Name) \
129 OMPC_MAP_MODIFIER_##Name,
130 #include "clang/Basic/OpenMPKinds.def"
131 OMPC_MAP_MODIFIER_last
132 };
133
134 /// OpenMP modifier kind for 'to' clause.
135 enum OpenMPToModifierKind {
136 #define OPENMP_TO_MODIFIER_KIND(Name) \
137 OMPC_TO_MODIFIER_##Name,
138 #include "clang/Basic/OpenMPKinds.def"
139 OMPC_TO_MODIFIER_unknown
140 };
141
142 /// OpenMP modifier kind for 'from' clause.
143 enum OpenMPFromModifierKind {
144 #define OPENMP_FROM_MODIFIER_KIND(Name) \
145 OMPC_FROM_MODIFIER_##Name,
146 #include "clang/Basic/OpenMPKinds.def"
147 OMPC_FROM_MODIFIER_unknown
148 };
149
150 /// OpenMP attributes for 'dist_schedule' clause.
151 enum OpenMPDistScheduleClauseKind {
152 #define OPENMP_DIST_SCHEDULE_KIND(Name) OMPC_DIST_SCHEDULE_##Name,
153 #include "clang/Basic/OpenMPKinds.def"
154 OMPC_DIST_SCHEDULE_unknown
155 };
156
157 /// OpenMP attributes for 'defaultmap' clause.
158 enum OpenMPDefaultmapClauseKind {
159 #define OPENMP_DEFAULTMAP_KIND(Name) \
160 OMPC_DEFAULTMAP_##Name,
161 #include "clang/Basic/OpenMPKinds.def"
162 OMPC_DEFAULTMAP_unknown
163 };
164
165 /// OpenMP modifiers for 'defaultmap' clause.
166 enum OpenMPDefaultmapClauseModifier {
167 OMPC_DEFAULTMAP_MODIFIER_unknown = OMPC_DEFAULTMAP_unknown,
168 #define OPENMP_DEFAULTMAP_MODIFIER(Name) \
169 OMPC_DEFAULTMAP_MODIFIER_##Name,
170 #include "clang/Basic/OpenMPKinds.def"
171 OMPC_DEFAULTMAP_MODIFIER_last
172 };
173
174 /// OpenMP attributes for 'atomic_default_mem_order' clause.
175 enum OpenMPAtomicDefaultMemOrderClauseKind {
176 #define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name) \
177 OMPC_ATOMIC_DEFAULT_MEM_ORDER_##Name,
178 #include "clang/Basic/OpenMPKinds.def"
179 OMPC_ATOMIC_DEFAULT_MEM_ORDER_unknown
180 };
181
182 /// OpenMP device type for 'device_type' clause.
183 enum OpenMPDeviceType {
184 #define OPENMP_DEVICE_TYPE_KIND(Name) \
185 OMPC_DEVICE_TYPE_##Name,
186 #include "clang/Basic/OpenMPKinds.def"
187 OMPC_DEVICE_TYPE_unknown
188 };
189
190 /// OpenMP 'lastprivate' clause modifier.
191 enum OpenMPLastprivateModifier {
192 #define OPENMP_LASTPRIVATE_KIND(Name) OMPC_LASTPRIVATE_##Name,
193 #include "clang/Basic/OpenMPKinds.def"
194 OMPC_LASTPRIVATE_unknown,
195 };
196
197 /// Scheduling data for loop-based OpenMP directives.
198 struct OpenMPScheduleTy final {
199 OpenMPScheduleClauseKind Schedule = OMPC_SCHEDULE_unknown;
200 OpenMPScheduleClauseModifier M1 = OMPC_SCHEDULE_MODIFIER_unknown;
201 OpenMPScheduleClauseModifier M2 = OMPC_SCHEDULE_MODIFIER_unknown;
202 };
203
204 OpenMPClauseKind getOpenMPClauseKind(llvm::StringRef Str);
205 const char *getOpenMPClauseName(OpenMPClauseKind Kind);
206
207 unsigned getOpenMPSimpleClauseType(OpenMPClauseKind Kind, llvm::StringRef Str);
208 const char *getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, unsigned Type);
209
210 bool isAllowedClauseForDirective(OpenMPDirectiveKind DKind,
211 OpenMPClauseKind CKind,
212 unsigned OpenMPVersion);
213
214 /// Checks if the specified directive is a directive with an associated
215 /// loop construct.
216 /// \param DKind Specified directive.
217 /// \return true - the directive is a loop-associated directive like 'omp simd'
218 /// or 'omp for' directive, otherwise - false.
219 bool isOpenMPLoopDirective(OpenMPDirectiveKind DKind);
220
221 /// Checks if the specified directive is a worksharing directive.
222 /// \param DKind Specified directive.
223 /// \return true - the directive is a worksharing directive like 'omp for',
224 /// otherwise - false.
225 bool isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind);
226
227 /// Checks if the specified directive is a taskloop directive.
228 /// \param DKind Specified directive.
229 /// \return true - the directive is a worksharing directive like 'omp taskloop',
230 /// otherwise - false.
231 bool isOpenMPTaskLoopDirective(OpenMPDirectiveKind DKind);
232
233 /// Checks if the specified directive is a parallel-kind directive.
234 /// \param DKind Specified directive.
235 /// \return true - the directive is a parallel-like directive like 'omp
236 /// parallel', otherwise - false.
237 bool isOpenMPParallelDirective(OpenMPDirectiveKind DKind);
238
239 /// Checks if the specified directive is a target code offload directive.
240 /// \param DKind Specified directive.
241 /// \return true - the directive is a target code offload directive like
242 /// 'omp target', 'omp target parallel', 'omp target xxx'
243 /// otherwise - false.
244 bool isOpenMPTargetExecutionDirective(OpenMPDirectiveKind DKind);
245
246 /// Checks if the specified directive is a target data offload directive.
247 /// \param DKind Specified directive.
248 /// \return true - the directive is a target data offload directive like
249 /// 'omp target data', 'omp target update', 'omp target enter data',
250 /// 'omp target exit data'
251 /// otherwise - false.
252 bool isOpenMPTargetDataManagementDirective(OpenMPDirectiveKind DKind);
253
254 /// Checks if the specified composite/combined directive constitutes a teams
255 /// directive in the outermost nest. For example
256 /// 'omp teams distribute' or 'omp teams distribute parallel for'.
257 /// \param DKind Specified directive.
258 /// \return true - the directive has teams on the outermost nest, otherwise -
259 /// false.
260 bool isOpenMPNestingTeamsDirective(OpenMPDirectiveKind DKind);
261
262 /// Checks if the specified directive is a teams-kind directive. For example,
263 /// 'omp teams distribute' or 'omp target teams'.
264 /// \param DKind Specified directive.
265 /// \return true - the directive is a teams-like directive, otherwise - false.
266 bool isOpenMPTeamsDirective(OpenMPDirectiveKind DKind);
267
268 /// Checks if the specified directive is a simd directive.
269 /// \param DKind Specified directive.
270 /// \return true - the directive is a simd directive like 'omp simd',
271 /// otherwise - false.
272 bool isOpenMPSimdDirective(OpenMPDirectiveKind DKind);
273
274 /// Checks if the specified directive is a distribute directive.
275 /// \param DKind Specified directive.
276 /// \return true - the directive is a distribute-directive like 'omp
277 /// distribute',
278 /// otherwise - false.
279 bool isOpenMPDistributeDirective(OpenMPDirectiveKind DKind);
280
281 /// Checks if the specified composite/combined directive constitutes a
282 /// distribute directive in the outermost nest. For example,
283 /// 'omp distribute parallel for' or 'omp distribute'.
284 /// \param DKind Specified directive.
285 /// \return true - the directive has distribute on the outermost nest.
286 /// otherwise - false.
287 bool isOpenMPNestingDistributeDirective(OpenMPDirectiveKind DKind);
288
289 /// Checks if the specified clause is one of private clauses like
290 /// 'private', 'firstprivate', 'reduction' etc..
291 /// \param Kind Clause kind.
292 /// \return true - the clause is a private clause, otherwise - false.
293 bool isOpenMPPrivate(OpenMPClauseKind Kind);
294
295 /// Checks if the specified clause is one of threadprivate clauses like
296 /// 'threadprivate', 'copyin' or 'copyprivate'.
297 /// \param Kind Clause kind.
298 /// \return true - the clause is a threadprivate clause, otherwise - false.
299 bool isOpenMPThreadPrivate(OpenMPClauseKind Kind);
300
301 /// Checks if the specified directive kind is one of tasking directives - task,
302 /// taskloop, taksloop simd, master taskloop, parallel master taskloop, master
303 /// taskloop simd, or parallel master taskloop simd.
304 bool isOpenMPTaskingDirective(OpenMPDirectiveKind Kind);
305
306 /// Checks if the specified directive kind is one of the composite or combined
307 /// directives that need loop bound sharing across loops outlined in nested
308 /// functions
309 bool isOpenMPLoopBoundSharingDirective(OpenMPDirectiveKind Kind);
310
311 /// Return the captured regions of an OpenMP directive.
312 void getOpenMPCaptureRegions(
313 llvm::SmallVectorImpl<OpenMPDirectiveKind> &CaptureRegions,
314 OpenMPDirectiveKind DKind);
315 }
316
317 #endif
318
clang::OpenMPFromModifierKind
OpenMPFromModifierKind
OpenMP modifier kind for &#39;from&#39; clause.
Definition: OpenMPKinds.h:143
clang::OpenMPCtxSelectorData::OpenMPCtxSelectorData
OpenMPCtxSelectorData(OpenMPContextSelectorSetKind CtxSet, OpenMPContextSelectorKind Ctx, const ScoreT &Score, const U &Names)
Definition: OpenMPKinds.h:54
clang::OpenMPScheduleTy
Scheduling data for loop-based OpenMP directives.
Definition: OpenMPKinds.h:198
clang::OpenMPCtxSelectorData
Struct to store the context selectors info.
Definition: OpenMPKinds.h:43
clang::OMPC_match
Definition: OpenMPKinds.h:72
clang::OpenMPDefaultmapClauseKind
OpenMPDefaultmapClauseKind
OpenMP attributes for &#39;defaultmap&#39; clause.
Definition: OpenMPKinds.h:158
clang::OMP_CTX_unknown
Definition: OpenMPKinds.h:33
clang::OpenMPCtxSelectorData::CtxSet
OpenMPContextSelectorSetKind CtxSet
Definition: OpenMPKinds.h:44
clang::isOpenMPNestingDistributeDirective
bool isOpenMPNestingDistributeDirective(OpenMPDirectiveKind DKind)
Checks if the specified composite/combined directive constitutes a distribute directive in the outerm...
Definition: OpenMPKinds.cpp:1069
clang::isOpenMPTargetDataManagementDirective
bool isOpenMPTargetDataManagementDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a target data offload directive.
Definition: OpenMPKinds.cpp:1035
clang::Type
The base class of the type hierarchy.
Definition: Type.h:1450
clang::OMPC_DIST_SCHEDULE_unknown
Definition: OpenMPKinds.h:154
clang::getOpenMPSimpleClauseTypeName
const char * getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, unsigned Type)
Definition: OpenMPKinds.cpp:236
clang::OpenMPCtxSelectorData::Score
ScoreT Score
Definition: OpenMPKinds.h:46
clang::OpenMPDefaultmapClauseModifier
OpenMPDefaultmapClauseModifier
OpenMP modifiers for &#39;defaultmap&#39; clause.
Definition: OpenMPKinds.h:166
clang::OMPC_DEFAULTMAP_unknown
Definition: OpenMPKinds.h:162
clang::OpenMPMapModifierKind
OpenMPMapModifierKind
OpenMP modifier kind for &#39;map&#39; clause.
Definition: OpenMPKinds.h:126
clang::OMPC_DEPEND_unknown
Definition: OpenMPKinds.h:106
clang::getOpenMPClauseName
const char * getOpenMPClauseName(OpenMPClauseKind Kind)
Definition: OpenMPKinds.cpp:82
clang::getOpenMPContextSelectorName
llvm::StringRef getOpenMPContextSelectorName(OpenMPContextSelectorKind Kind)
Definition: OpenMPKinds.cpp:53
clang::OMPC_DEFAULT_unknown
Definition: OpenMPKinds.h:81
clang::OMPC_TO_MODIFIER_unknown
Definition: OpenMPKinds.h:139
clang::isOpenMPTaskingDirective
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.
Definition: OpenMPKinds.cpp:1098
clang::OpenMPLinearClauseKind
OpenMPLinearClauseKind
OpenMP attributes for &#39;linear&#39; clause.
Definition: OpenMPKinds.h:110
clang::OMPC_MAP_MODIFIER_last
Definition: OpenMPKinds.h:131
clang::OMP_CTX_SET_unknown
Definition: OpenMPKinds.h:26
clang::OMPC_DEFAULTMAP_MODIFIER_unknown
Definition: OpenMPKinds.h:167
clang::OpenMPContextSelectorKind
OpenMPContextSelectorKind
OpenMP context selectors.
Definition: OpenMPKinds.h:30
llvm::SmallVectorImpl
Definition: LLVM.h:36
clang::OpenMPDistScheduleClauseKind
OpenMPDistScheduleClauseKind
OpenMP attributes for &#39;dist_schedule&#39; clause.
Definition: OpenMPKinds.h:151
clang::OMPC_uniform
Definition: OpenMPKinds.h:70
clang::OpenMPContextSelectorSetKind
OpenMPContextSelectorSetKind
OpenMP context selector sets.
Definition: OpenMPKinds.h:23
clang::isAllowedClauseForDirective
bool isAllowedClauseForDirective(OpenMPDirectiveKind DKind, OpenMPClauseKind CKind, unsigned OpenMPVersion)
Definition: OpenMPKinds.cpp:438
clang::isOpenMPTeamsDirective
bool isOpenMPTeamsDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a teams-kind directive.
Definition: OpenMPKinds.cpp:1047
clang::getOpenMPClauseKind
OpenMPClauseKind getOpenMPClauseKind(llvm::StringRef Str)
clang::getOpenMPContextSelectorSet
OpenMPContextSelectorSetKind getOpenMPContextSelectorSet(llvm::StringRef Str)
Definition: OpenMPKinds.cpp:24
clang::isOpenMPTargetExecutionDirective
bool isOpenMPTargetExecutionDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a target code offload directive.
Definition: OpenMPKinds.cpp:1025
clang::isOpenMPWorksharingDirective
bool isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a worksharing directive.
Definition: OpenMPKinds.cpp:987
clang::OpenMPDirectiveKind
llvm::omp::Directive OpenMPDirectiveKind
OpenMP directives.
Definition: OpenMPKinds.h:62
clang::isOpenMPPrivate
bool isOpenMPPrivate(OpenMPClauseKind Kind)
Checks if the specified clause is one of private clauses like &#39;private&#39;, &#39;firstprivate&#39;, &#39;reduction&#39; etc.
Definition: OpenMPKinds.cpp:1087
clang::OMPC_MAP_MODIFIER_unknown
Definition: OpenMPKinds.h:127
clang::OMPC_SCHEDULE_MODIFIER_unknown
Definition: OpenMPKinds.h:94
clang::OpenMPLastprivateModifier
OpenMPLastprivateModifier
OpenMP &#39;lastprivate&#39; clause modifier.
Definition: OpenMPKinds.h:191
clang::OMPC_DEVICE_TYPE_unknown
Definition: OpenMPKinds.h:187
clang::isOpenMPParallelDirective
bool isOpenMPParallelDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a parallel-kind directive.
Definition: OpenMPKinds.cpp:1009
clang::OMPC_threadprivate
Definition: OpenMPKinds.h:69
clang::OMPC_SCHEDULE_MODIFIER_last
Definition: OpenMPKinds.h:98
clang::OpenMPCtxSelectorData::OpenMPCtxSelectorData
OpenMPCtxSelectorData()=default
clang::OpenMPClauseKind
OpenMPClauseKind
OpenMP clauses.
Definition: OpenMPKinds.h:65
clang::OpenMPDeviceType
OpenMPDeviceType
OpenMP device type for &#39;device_type&#39; clause.
Definition: OpenMPKinds.h:183
clang::getOpenMPContextSelectorSetName
llvm::StringRef getOpenMPContextSelectorSetName(OpenMPContextSelectorSetKind Kind)
Definition: OpenMPKinds.cpp:32
clang::isOpenMPTaskLoopDirective
bool isOpenMPTaskLoopDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a taskloop directive.
Definition: OpenMPKinds.cpp:1002
clang::VectorType
Represents a GCC generic vector type.
Definition: Type.h:3235
clang::OMPC_device_type
Definition: OpenMPKinds.h:71
Kind
Kind
Definition: ChrootChecker.cpp:29
clang::OpenMPDependClauseKind
OpenMPDependClauseKind
OpenMP attributes for &#39;depend&#39; clause.
Definition: OpenMPKinds.h:102
clang::OMPC_DEFAULTMAP_MODIFIER_last
Definition: OpenMPKinds.h:171
clang::isOpenMPLoopBoundSharingDirective
bool isOpenMPLoopBoundSharingDirective(OpenMPDirectiveKind Kind)
Checks if the specified directive kind is one of the composite or combined directives that need loop ...
Definition: OpenMPKinds.cpp:1102
clang::OMPC_SCHEDULE_unknown
Definition: OpenMPKinds.h:89
clang::OpenMPScheduleClauseModifier
OpenMPScheduleClauseModifier
OpenMP modifiers for &#39;schedule&#39; clause.
Definition: OpenMPKinds.h:93
clang
Dataflow Directional Tag Classes.
Definition: CFGReachabilityAnalysis.h:21
clang::OpenMPCtxSelectorData::Ctx
OpenMPContextSelectorKind Ctx
Definition: OpenMPKinds.h:45
clang::OMPC_FROM_MODIFIER_unknown
Definition: OpenMPKinds.h:147
clang::OpenMPAtomicDefaultMemOrderClauseKind
OpenMPAtomicDefaultMemOrderClauseKind
OpenMP attributes for &#39;atomic_default_mem_order&#39; clause.
Definition: OpenMPKinds.h:175
clang::isOpenMPSimdDirective
bool isOpenMPSimdDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a simd directive.
Definition: OpenMPKinds.cpp:1055
clang::isOpenMPThreadPrivate
bool isOpenMPThreadPrivate(OpenMPClauseKind Kind)
Checks if the specified clause is one of threadprivate clauses like &#39;threadprivate&#39;, &#39;copyin&#39; or &#39;copyprivate&#39;.
Definition: OpenMPKinds.cpp:1094
clang::OpenMPToModifierKind
OpenMPToModifierKind
OpenMP modifier kind for &#39;to&#39; clause.
Definition: OpenMPKinds.h:135
clang::getOpenMPCaptureRegions
void getOpenMPCaptureRegions(llvm::SmallVectorImpl< OpenMPDirectiveKind > &CaptureRegions, OpenMPDirectiveKind DKind)
Return the captured regions of an OpenMP directive.
Definition: OpenMPKinds.cpp:1111
clang::getOpenMPSimpleClauseType
unsigned getOpenMPSimpleClauseType(OpenMPClauseKind Kind, llvm::StringRef Str)
clang::isOpenMPDistributeDirective
bool isOpenMPDistributeDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a distribute directive.
Definition: OpenMPKinds.cpp:1076
clang::OMPC_LASTPRIVATE_unknown
Definition: OpenMPKinds.h:194
clang::OMPC_ATOMIC_DEFAULT_MEM_ORDER_unknown
Definition: OpenMPKinds.h:179
clang::OMPC_LINEAR_unknown
Definition: OpenMPKinds.h:114
clang::OpenMPScheduleClauseKind
OpenMPScheduleClauseKind
OpenMP attributes for &#39;schedule&#39; clause.
Definition: OpenMPKinds.h:85
clang::OpenMPDefaultClauseKind
OpenMPDefaultClauseKind
OpenMP attributes for &#39;default&#39; clause.
Definition: OpenMPKinds.h:77
clang::OpenMPCtxSelectorData::Names
VectorType Names
Definition: OpenMPKinds.h:47
clang::OpenMPCtxSelectorData::OpenMPCtxSelectorData
OpenMPCtxSelectorData(OpenMPContextSelectorSetKind CtxSet, OpenMPContextSelectorKind Ctx, const ScoreT &Score, VectorType &&Names)
Definition: OpenMPKinds.h:49
clang::OpenMPMapClauseKind
OpenMPMapClauseKind
OpenMP mapping kind for &#39;map&#39; clause.
Definition: OpenMPKinds.h:118
clang::OMPC_unknown
Definition: OpenMPKinds.h:73
clang::OMPC_MAP_unknown
Definition: OpenMPKinds.h:122
clang::getOpenMPContextSelector
OpenMPContextSelectorKind getOpenMPContextSelector(llvm::StringRef Str)
Definition: OpenMPKinds.cpp:45
clang::isOpenMPLoopDirective
bool isOpenMPLoopDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a directive with an associated loop construct.
Definition: OpenMPKinds.cpp:965
Directive
VerifyDiagnosticConsumer::Directive Directive
Definition: VerifyDiagnosticConsumer.cpp:49
clang::isOpenMPNestingTeamsDirective
bool isOpenMPNestingTeamsDirective(OpenMPDirectiveKind DKind)
Checks if the specified composite/combined directive constitutes a teams directive in the outermost n...
Definition: OpenMPKinds.cpp:1040