1 //===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 /// \brief This file defines the list of supported OpenMP directives and
13 //===----------------------------------------------------------------------===//
15 #ifndef OPENMP_DIRECTIVE
16 # define OPENMP_DIRECTIVE(Name)
18 #ifndef OPENMP_DIRECTIVE_EXT
19 #define OPENMP_DIRECTIVE_EXT(Name, Str)
22 # define OPENMP_CLAUSE(Name, Class)
24 #ifndef OPENMP_PARALLEL_CLAUSE
25 # define OPENMP_PARALLEL_CLAUSE(Name)
27 #ifndef OPENMP_SIMD_CLAUSE
28 # define OPENMP_SIMD_CLAUSE(Name)
30 #ifndef OPENMP_FOR_CLAUSE
31 # define OPENMP_FOR_CLAUSE(Name)
33 #ifndef OPENMP_FOR_SIMD_CLAUSE
34 # define OPENMP_FOR_SIMD_CLAUSE(Name)
36 #ifndef OPENMP_SECTIONS_CLAUSE
37 # define OPENMP_SECTIONS_CLAUSE(Name)
39 #ifndef OPENMP_SINGLE_CLAUSE
40 # define OPENMP_SINGLE_CLAUSE(Name)
42 #ifndef OPENMP_PARALLEL_FOR_CLAUSE
43 # define OPENMP_PARALLEL_FOR_CLAUSE(Name)
45 #ifndef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
46 # define OPENMP_PARALLEL_FOR_SIMD_CLAUSE(Name)
48 #ifndef OPENMP_PARALLEL_SECTIONS_CLAUSE
49 # define OPENMP_PARALLEL_SECTIONS_CLAUSE(Name)
51 #ifndef OPENMP_TASK_CLAUSE
52 # define OPENMP_TASK_CLAUSE(Name)
54 #ifndef OPENMP_ATOMIC_CLAUSE
55 # define OPENMP_ATOMIC_CLAUSE(Name)
57 #ifndef OPENMP_TARGET_CLAUSE
58 # define OPENMP_TARGET_CLAUSE(Name)
60 #ifndef OPENMP_TARGET_DATA_CLAUSE
61 # define OPENMP_TARGET_DATA_CLAUSE(Name)
63 #ifndef OPENMP_TEAMS_CLAUSE
64 # define OPENMP_TEAMS_CLAUSE(Name)
66 #ifndef OPENMP_CANCEL_CLAUSE
67 # define OPENMP_CANCEL_CLAUSE(Name)
69 #ifndef OPENMP_ORDERED_CLAUSE
70 # define OPENMP_ORDERED_CLAUSE(Name)
72 #ifndef OPENMP_TASKLOOP_CLAUSE
73 # define OPENMP_TASKLOOP_CLAUSE(Name)
75 #ifndef OPENMP_TASKLOOP_SIMD_CLAUSE
76 # define OPENMP_TASKLOOP_SIMD_CLAUSE(Name)
78 #ifndef OPENMP_CRITICAL_CLAUSE
79 # define OPENMP_CRITICAL_CLAUSE(Name)
81 #ifndef OPENMP_DISTRIBUTE_CLAUSE
82 #define OPENMP_DISTRIBUTE_CLAUSE(Name)
84 #ifndef OPENMP_DEFAULT_KIND
85 # define OPENMP_DEFAULT_KIND(Name)
87 #ifndef OPENMP_PROC_BIND_KIND
88 # define OPENMP_PROC_BIND_KIND(Name)
90 #ifndef OPENMP_SCHEDULE_KIND
91 #define OPENMP_SCHEDULE_KIND(Name)
93 #ifndef OPENMP_SCHEDULE_MODIFIER
94 #define OPENMP_SCHEDULE_MODIFIER(Name)
96 #ifndef OPENMP_DEPEND_KIND
97 #define OPENMP_DEPEND_KIND(Name)
99 #ifndef OPENMP_LINEAR_KIND
100 #define OPENMP_LINEAR_KIND(Name)
102 #ifndef OPENMP_MAP_KIND
103 #define OPENMP_MAP_KIND(Name)
106 // OpenMP directives.
107 OPENMP_DIRECTIVE(threadprivate)
108 OPENMP_DIRECTIVE(parallel)
109 OPENMP_DIRECTIVE(task)
110 OPENMP_DIRECTIVE(simd)
111 OPENMP_DIRECTIVE(for)
112 OPENMP_DIRECTIVE(sections)
113 OPENMP_DIRECTIVE(section)
114 OPENMP_DIRECTIVE(single)
115 OPENMP_DIRECTIVE(master)
116 OPENMP_DIRECTIVE(critical)
117 OPENMP_DIRECTIVE(taskyield)
118 OPENMP_DIRECTIVE(barrier)
119 OPENMP_DIRECTIVE(taskwait)
120 OPENMP_DIRECTIVE(taskgroup)
121 OPENMP_DIRECTIVE(flush)
122 OPENMP_DIRECTIVE(ordered)
123 OPENMP_DIRECTIVE(atomic)
124 OPENMP_DIRECTIVE(target)
125 OPENMP_DIRECTIVE(teams)
126 OPENMP_DIRECTIVE(cancel)
127 OPENMP_DIRECTIVE_EXT(target_data, "target data")
128 OPENMP_DIRECTIVE_EXT(parallel_for, "parallel for")
129 OPENMP_DIRECTIVE_EXT(parallel_for_simd, "parallel for simd")
130 OPENMP_DIRECTIVE_EXT(parallel_sections, "parallel sections")
131 OPENMP_DIRECTIVE_EXT(for_simd, "for simd")
132 OPENMP_DIRECTIVE_EXT(cancellation_point, "cancellation point")
133 OPENMP_DIRECTIVE(taskloop)
134 OPENMP_DIRECTIVE_EXT(taskloop_simd, "taskloop simd")
135 OPENMP_DIRECTIVE(distribute)
138 OPENMP_CLAUSE(if, OMPIfClause)
139 OPENMP_CLAUSE(final, OMPFinalClause)
140 OPENMP_CLAUSE(num_threads, OMPNumThreadsClause)
141 OPENMP_CLAUSE(safelen, OMPSafelenClause)
142 OPENMP_CLAUSE(simdlen, OMPSimdlenClause)
143 OPENMP_CLAUSE(collapse, OMPCollapseClause)
144 OPENMP_CLAUSE(default, OMPDefaultClause)
145 OPENMP_CLAUSE(private, OMPPrivateClause)
146 OPENMP_CLAUSE(firstprivate, OMPFirstprivateClause)
147 OPENMP_CLAUSE(lastprivate, OMPLastprivateClause)
148 OPENMP_CLAUSE(shared, OMPSharedClause)
149 OPENMP_CLAUSE(reduction, OMPReductionClause)
150 OPENMP_CLAUSE(linear, OMPLinearClause)
151 OPENMP_CLAUSE(aligned, OMPAlignedClause)
152 OPENMP_CLAUSE(copyin, OMPCopyinClause)
153 OPENMP_CLAUSE(copyprivate, OMPCopyprivateClause)
154 OPENMP_CLAUSE(proc_bind, OMPProcBindClause)
155 OPENMP_CLAUSE(schedule, OMPScheduleClause)
156 OPENMP_CLAUSE(ordered, OMPOrderedClause)
157 OPENMP_CLAUSE(nowait, OMPNowaitClause)
158 OPENMP_CLAUSE(untied, OMPUntiedClause)
159 OPENMP_CLAUSE(mergeable, OMPMergeableClause)
160 OPENMP_CLAUSE(flush, OMPFlushClause)
161 OPENMP_CLAUSE(read, OMPReadClause)
162 OPENMP_CLAUSE(write, OMPWriteClause)
163 OPENMP_CLAUSE(update, OMPUpdateClause)
164 OPENMP_CLAUSE(capture, OMPCaptureClause)
165 OPENMP_CLAUSE(seq_cst, OMPSeqCstClause)
166 OPENMP_CLAUSE(depend, OMPDependClause)
167 OPENMP_CLAUSE(device, OMPDeviceClause)
168 OPENMP_CLAUSE(threads, OMPThreadsClause)
169 OPENMP_CLAUSE(simd, OMPSIMDClause)
170 OPENMP_CLAUSE(map, OMPMapClause)
171 OPENMP_CLAUSE(num_teams, OMPNumTeamsClause)
172 OPENMP_CLAUSE(thread_limit, OMPThreadLimitClause)
173 OPENMP_CLAUSE(priority, OMPPriorityClause)
174 OPENMP_CLAUSE(grainsize, OMPGrainsizeClause)
175 OPENMP_CLAUSE(nogroup, OMPNogroupClause)
176 OPENMP_CLAUSE(num_tasks, OMPNumTasksClause)
177 OPENMP_CLAUSE(hint, OMPHintClause)
179 // Clauses allowed for OpenMP directive 'parallel'.
180 OPENMP_PARALLEL_CLAUSE(if)
181 OPENMP_PARALLEL_CLAUSE(num_threads)
182 OPENMP_PARALLEL_CLAUSE(default)
183 OPENMP_PARALLEL_CLAUSE(proc_bind)
184 OPENMP_PARALLEL_CLAUSE(private)
185 OPENMP_PARALLEL_CLAUSE(firstprivate)
186 OPENMP_PARALLEL_CLAUSE(shared)
187 OPENMP_PARALLEL_CLAUSE(reduction)
188 OPENMP_PARALLEL_CLAUSE(copyin)
190 // Clauses allowed for directive 'omp simd'.
191 OPENMP_SIMD_CLAUSE(private)
192 OPENMP_SIMD_CLAUSE(lastprivate)
193 OPENMP_SIMD_CLAUSE(linear)
194 OPENMP_SIMD_CLAUSE(aligned)
195 OPENMP_SIMD_CLAUSE(safelen)
196 OPENMP_SIMD_CLAUSE(simdlen)
197 OPENMP_SIMD_CLAUSE(collapse)
198 OPENMP_SIMD_CLAUSE(reduction)
200 // Clauses allowed for directive 'omp for'.
201 OPENMP_FOR_CLAUSE(private)
202 OPENMP_FOR_CLAUSE(lastprivate)
203 OPENMP_FOR_CLAUSE(firstprivate)
204 OPENMP_FOR_CLAUSE(reduction)
205 OPENMP_FOR_CLAUSE(collapse)
206 OPENMP_FOR_CLAUSE(schedule)
207 OPENMP_FOR_CLAUSE(ordered)
208 OPENMP_FOR_CLAUSE(nowait)
209 OPENMP_FOR_CLAUSE(linear)
211 // Clauses allowed for directive 'omp for simd'.
212 OPENMP_FOR_SIMD_CLAUSE(private)
213 OPENMP_FOR_SIMD_CLAUSE(firstprivate)
214 OPENMP_FOR_SIMD_CLAUSE(lastprivate)
215 OPENMP_FOR_SIMD_CLAUSE(reduction)
216 OPENMP_FOR_SIMD_CLAUSE(schedule)
217 OPENMP_FOR_SIMD_CLAUSE(collapse)
218 OPENMP_FOR_SIMD_CLAUSE(nowait)
219 OPENMP_FOR_SIMD_CLAUSE(safelen)
220 OPENMP_FOR_SIMD_CLAUSE(simdlen)
221 OPENMP_FOR_SIMD_CLAUSE(linear)
222 OPENMP_FOR_SIMD_CLAUSE(aligned)
223 OPENMP_FOR_SIMD_CLAUSE(ordered)
225 // Clauses allowed for OpenMP directive 'omp sections'.
226 OPENMP_SECTIONS_CLAUSE(private)
227 OPENMP_SECTIONS_CLAUSE(lastprivate)
228 OPENMP_SECTIONS_CLAUSE(firstprivate)
229 OPENMP_SECTIONS_CLAUSE(reduction)
230 OPENMP_SECTIONS_CLAUSE(nowait)
232 // Clauses allowed for directive 'omp single'.
233 OPENMP_SINGLE_CLAUSE(private)
234 OPENMP_SINGLE_CLAUSE(firstprivate)
235 OPENMP_SINGLE_CLAUSE(copyprivate)
236 OPENMP_SINGLE_CLAUSE(nowait)
238 // Clauses allowed for OpenMP directive 'cancel'.
239 OPENMP_CANCEL_CLAUSE(if)
241 // Static attributes for 'default' clause.
242 OPENMP_DEFAULT_KIND(none)
243 OPENMP_DEFAULT_KIND(shared)
245 // Static attributes for 'proc_bind' clause.
246 OPENMP_PROC_BIND_KIND(master)
247 OPENMP_PROC_BIND_KIND(close)
248 OPENMP_PROC_BIND_KIND(spread)
250 // Static attributes for 'schedule' clause.
251 OPENMP_SCHEDULE_KIND(static)
252 OPENMP_SCHEDULE_KIND(dynamic)
253 OPENMP_SCHEDULE_KIND(guided)
254 OPENMP_SCHEDULE_KIND(auto)
255 OPENMP_SCHEDULE_KIND(runtime)
257 // Modifiers for 'schedule' clause.
258 OPENMP_SCHEDULE_MODIFIER(monotonic)
259 OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
260 OPENMP_SCHEDULE_MODIFIER(simd)
262 // Static attributes for 'depend' clause.
263 OPENMP_DEPEND_KIND(in)
264 OPENMP_DEPEND_KIND(out)
265 OPENMP_DEPEND_KIND(inout)
266 OPENMP_DEPEND_KIND(source)
267 OPENMP_DEPEND_KIND(sink)
269 // Modifiers for 'linear' clause.
270 OPENMP_LINEAR_KIND(val)
271 OPENMP_LINEAR_KIND(ref)
272 OPENMP_LINEAR_KIND(uval)
274 // Clauses allowed for OpenMP directive 'parallel for'.
275 OPENMP_PARALLEL_FOR_CLAUSE(if)
276 OPENMP_PARALLEL_FOR_CLAUSE(num_threads)
277 OPENMP_PARALLEL_FOR_CLAUSE(default)
278 OPENMP_PARALLEL_FOR_CLAUSE(proc_bind)
279 OPENMP_PARALLEL_FOR_CLAUSE(private)
280 OPENMP_PARALLEL_FOR_CLAUSE(firstprivate)
281 OPENMP_PARALLEL_FOR_CLAUSE(shared)
282 OPENMP_PARALLEL_FOR_CLAUSE(reduction)
283 OPENMP_PARALLEL_FOR_CLAUSE(copyin)
284 OPENMP_PARALLEL_FOR_CLAUSE(lastprivate)
285 OPENMP_PARALLEL_FOR_CLAUSE(collapse)
286 OPENMP_PARALLEL_FOR_CLAUSE(schedule)
287 OPENMP_PARALLEL_FOR_CLAUSE(ordered)
288 OPENMP_PARALLEL_FOR_CLAUSE(linear)
290 // Clauses allowed for OpenMP directive 'parallel for simd'.
291 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(if)
292 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
293 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(default)
294 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
295 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(private)
296 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
297 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(shared)
298 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(reduction)
299 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(copyin)
300 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
301 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(collapse)
302 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(schedule)
303 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(safelen)
304 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
305 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(linear)
306 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(aligned)
307 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(ordered)
309 // Clauses allowed for OpenMP directive 'parallel sections'.
310 OPENMP_PARALLEL_SECTIONS_CLAUSE(if)
311 OPENMP_PARALLEL_SECTIONS_CLAUSE(num_threads)
312 OPENMP_PARALLEL_SECTIONS_CLAUSE(default)
313 OPENMP_PARALLEL_SECTIONS_CLAUSE(proc_bind)
314 OPENMP_PARALLEL_SECTIONS_CLAUSE(private)
315 OPENMP_PARALLEL_SECTIONS_CLAUSE(firstprivate)
316 OPENMP_PARALLEL_SECTIONS_CLAUSE(shared)
317 OPENMP_PARALLEL_SECTIONS_CLAUSE(reduction)
318 OPENMP_PARALLEL_SECTIONS_CLAUSE(copyin)
319 OPENMP_PARALLEL_SECTIONS_CLAUSE(lastprivate)
321 // Clauses allowed for OpenMP directive 'task'.
322 OPENMP_TASK_CLAUSE(if)
323 OPENMP_TASK_CLAUSE(final)
324 OPENMP_TASK_CLAUSE(default)
325 OPENMP_TASK_CLAUSE(private)
326 OPENMP_TASK_CLAUSE(firstprivate)
327 OPENMP_TASK_CLAUSE(shared)
328 OPENMP_TASK_CLAUSE(untied)
329 OPENMP_TASK_CLAUSE(mergeable)
330 OPENMP_TASK_CLAUSE(depend)
331 OPENMP_TASK_CLAUSE(priority)
333 // Clauses allowed for OpenMP directive 'atomic'.
334 OPENMP_ATOMIC_CLAUSE(read)
335 OPENMP_ATOMIC_CLAUSE(write)
336 OPENMP_ATOMIC_CLAUSE(update)
337 OPENMP_ATOMIC_CLAUSE(capture)
338 OPENMP_ATOMIC_CLAUSE(seq_cst)
340 // Clauses allowed for OpenMP directive 'target'.
341 // TODO More clauses for 'target' directive.
342 OPENMP_TARGET_CLAUSE(if)
343 OPENMP_TARGET_CLAUSE(device)
344 OPENMP_TARGET_CLAUSE(map)
346 // Clauses allowed for OpenMP directive 'target data'.
347 // TODO More clauses for 'target data' directive.
348 OPENMP_TARGET_DATA_CLAUSE(if)
349 OPENMP_TARGET_DATA_CLAUSE(device)
350 OPENMP_TARGET_DATA_CLAUSE(map)
352 // Clauses allowed for OpenMP directive 'teams'.
353 // TODO More clauses for 'teams' directive.
354 OPENMP_TEAMS_CLAUSE(default)
355 OPENMP_TEAMS_CLAUSE(private)
356 OPENMP_TEAMS_CLAUSE(firstprivate)
357 OPENMP_TEAMS_CLAUSE(shared)
358 OPENMP_TEAMS_CLAUSE(reduction)
359 OPENMP_TEAMS_CLAUSE(num_teams)
360 OPENMP_TEAMS_CLAUSE(thread_limit)
362 // Clauses allowed for OpenMP directive 'ordered'.
363 // TODO More clauses for 'ordered' directive.
364 OPENMP_ORDERED_CLAUSE(threads)
365 OPENMP_ORDERED_CLAUSE(simd)
366 OPENMP_ORDERED_CLAUSE(depend)
368 // Map types and map type modifier for 'map' clause.
369 OPENMP_MAP_KIND(alloc)
371 OPENMP_MAP_KIND(from)
372 OPENMP_MAP_KIND(tofrom)
373 OPENMP_MAP_KIND(delete)
374 OPENMP_MAP_KIND(release)
375 OPENMP_MAP_KIND(always)
377 // Clauses allowed for OpenMP directive 'taskloop'.
378 OPENMP_TASKLOOP_CLAUSE(if)
379 OPENMP_TASKLOOP_CLAUSE(shared)
380 OPENMP_TASKLOOP_CLAUSE(private)
381 OPENMP_TASKLOOP_CLAUSE(firstprivate)
382 OPENMP_TASKLOOP_CLAUSE(lastprivate)
383 OPENMP_TASKLOOP_CLAUSE(default)
384 OPENMP_TASKLOOP_CLAUSE(collapse)
385 OPENMP_TASKLOOP_CLAUSE(final)
386 OPENMP_TASKLOOP_CLAUSE(untied)
387 OPENMP_TASKLOOP_CLAUSE(mergeable)
388 OPENMP_TASKLOOP_CLAUSE(priority)
389 OPENMP_TASKLOOP_CLAUSE(grainsize)
390 OPENMP_TASKLOOP_CLAUSE(nogroup)
391 OPENMP_TASKLOOP_CLAUSE(num_tasks)
393 // Clauses allowed for OpenMP directive 'taskloop simd'.
394 OPENMP_TASKLOOP_SIMD_CLAUSE(if)
395 OPENMP_TASKLOOP_SIMD_CLAUSE(shared)
396 OPENMP_TASKLOOP_SIMD_CLAUSE(private)
397 OPENMP_TASKLOOP_SIMD_CLAUSE(firstprivate)
398 OPENMP_TASKLOOP_SIMD_CLAUSE(lastprivate)
399 OPENMP_TASKLOOP_SIMD_CLAUSE(default)
400 OPENMP_TASKLOOP_SIMD_CLAUSE(collapse)
401 OPENMP_TASKLOOP_SIMD_CLAUSE(final)
402 OPENMP_TASKLOOP_SIMD_CLAUSE(untied)
403 OPENMP_TASKLOOP_SIMD_CLAUSE(mergeable)
404 OPENMP_TASKLOOP_SIMD_CLAUSE(priority)
405 OPENMP_TASKLOOP_SIMD_CLAUSE(linear)
406 OPENMP_TASKLOOP_SIMD_CLAUSE(aligned)
407 OPENMP_TASKLOOP_SIMD_CLAUSE(safelen)
408 OPENMP_TASKLOOP_SIMD_CLAUSE(simdlen)
409 OPENMP_TASKLOOP_SIMD_CLAUSE(grainsize)
410 OPENMP_TASKLOOP_SIMD_CLAUSE(nogroup)
411 OPENMP_TASKLOOP_SIMD_CLAUSE(num_tasks)
413 // Clauses allowed for OpenMP directive 'critical'.
414 OPENMP_CRITICAL_CLAUSE(hint)
416 // Clauses allowed for OpenMP directive 'distribute'
417 OPENMP_DISTRIBUTE_CLAUSE(private)
418 OPENMP_DISTRIBUTE_CLAUSE(firstprivate)
419 OPENMP_DISTRIBUTE_CLAUSE(lastprivate)
420 OPENMP_DISTRIBUTE_CLAUSE(collapse)
422 #undef OPENMP_TASKLOOP_SIMD_CLAUSE
423 #undef OPENMP_TASKLOOP_CLAUSE
424 #undef OPENMP_LINEAR_KIND
425 #undef OPENMP_DEPEND_KIND
426 #undef OPENMP_SCHEDULE_MODIFIER
427 #undef OPENMP_SCHEDULE_KIND
428 #undef OPENMP_PROC_BIND_KIND
429 #undef OPENMP_DEFAULT_KIND
430 #undef OPENMP_DIRECTIVE
431 #undef OPENMP_DIRECTIVE_EXT
433 #undef OPENMP_CRITICAL_CLAUSE
434 #undef OPENMP_ORDERED_CLAUSE
435 #undef OPENMP_CANCEL_CLAUSE
436 #undef OPENMP_SINGLE_CLAUSE
437 #undef OPENMP_SECTIONS_CLAUSE
438 #undef OPENMP_PARALLEL_CLAUSE
439 #undef OPENMP_PARALLEL_FOR_CLAUSE
440 #undef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
441 #undef OPENMP_PARALLEL_SECTIONS_CLAUSE
442 #undef OPENMP_TASK_CLAUSE
443 #undef OPENMP_ATOMIC_CLAUSE
444 #undef OPENMP_TARGET_CLAUSE
445 #undef OPENMP_TARGET_DATA_CLAUSE
446 #undef OPENMP_TEAMS_CLAUSE
447 #undef OPENMP_SIMD_CLAUSE
448 #undef OPENMP_FOR_CLAUSE
449 #undef OPENMP_FOR_SIMD_CLAUSE
450 #undef OPENMP_MAP_KIND
451 #undef OPENMP_DISTRIBUTE_CLAUSE