]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def
Update clang to release_39 branch r276489, and resolve conflicts.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / clang / include / clang / Basic / OpenMPKinds.def
1 //===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 /// \file
10 /// \brief This file defines the list of supported OpenMP directives and
11 /// clauses.
12 ///
13 //===----------------------------------------------------------------------===//
14
15 #ifndef OPENMP_DIRECTIVE
16 #  define OPENMP_DIRECTIVE(Name)
17 #endif
18 #ifndef OPENMP_DIRECTIVE_EXT
19 #define OPENMP_DIRECTIVE_EXT(Name, Str)
20 #endif
21 #ifndef OPENMP_CLAUSE
22 #  define OPENMP_CLAUSE(Name, Class)
23 #endif
24 #ifndef OPENMP_PARALLEL_CLAUSE
25 #  define OPENMP_PARALLEL_CLAUSE(Name)
26 #endif
27 #ifndef OPENMP_SIMD_CLAUSE
28 #  define OPENMP_SIMD_CLAUSE(Name)
29 #endif
30 #ifndef OPENMP_FOR_CLAUSE
31 #  define OPENMP_FOR_CLAUSE(Name)
32 #endif
33 #ifndef OPENMP_FOR_SIMD_CLAUSE
34 #  define OPENMP_FOR_SIMD_CLAUSE(Name)
35 #endif
36 #ifndef OPENMP_SECTIONS_CLAUSE
37 #  define OPENMP_SECTIONS_CLAUSE(Name)
38 #endif
39 #ifndef OPENMP_SINGLE_CLAUSE
40 #  define OPENMP_SINGLE_CLAUSE(Name)
41 #endif
42 #ifndef OPENMP_PARALLEL_FOR_CLAUSE
43 #  define OPENMP_PARALLEL_FOR_CLAUSE(Name)
44 #endif
45 #ifndef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
46 #  define OPENMP_PARALLEL_FOR_SIMD_CLAUSE(Name)
47 #endif
48 #ifndef OPENMP_PARALLEL_SECTIONS_CLAUSE
49 #  define OPENMP_PARALLEL_SECTIONS_CLAUSE(Name)
50 #endif
51 #ifndef OPENMP_TASK_CLAUSE
52 #  define OPENMP_TASK_CLAUSE(Name)
53 #endif
54 #ifndef OPENMP_ATOMIC_CLAUSE
55 #  define OPENMP_ATOMIC_CLAUSE(Name)
56 #endif
57 #ifndef OPENMP_TARGET_CLAUSE
58 #  define OPENMP_TARGET_CLAUSE(Name)
59 #endif
60 #ifndef OPENMP_TARGET_DATA_CLAUSE
61 #  define OPENMP_TARGET_DATA_CLAUSE(Name)
62 #endif
63 #ifndef OPENMP_TARGET_ENTER_DATA_CLAUSE
64 #define OPENMP_TARGET_ENTER_DATA_CLAUSE(Name)
65 #endif
66 #ifndef OPENMP_TARGET_EXIT_DATA_CLAUSE
67 #define OPENMP_TARGET_EXIT_DATA_CLAUSE(Name)
68 #endif
69 #ifndef OPENMP_TARGET_PARALLEL_CLAUSE
70 #  define OPENMP_TARGET_PARALLEL_CLAUSE(Name)
71 #endif
72 #ifndef OPENMP_TARGET_PARALLEL_FOR_CLAUSE
73 #  define OPENMP_TARGET_PARALLEL_FOR_CLAUSE(Name)
74 #endif
75 #ifndef OPENMP_TARGET_UPDATE_CLAUSE
76 #  define OPENMP_TARGET_UPDATE_CLAUSE(Name)
77 #endif
78 #ifndef OPENMP_TEAMS_CLAUSE
79 #  define OPENMP_TEAMS_CLAUSE(Name)
80 #endif
81 #ifndef OPENMP_CANCEL_CLAUSE
82 #  define OPENMP_CANCEL_CLAUSE(Name)
83 #endif
84 #ifndef OPENMP_ORDERED_CLAUSE
85 #  define OPENMP_ORDERED_CLAUSE(Name)
86 #endif
87 #ifndef OPENMP_TASKLOOP_CLAUSE
88 #  define OPENMP_TASKLOOP_CLAUSE(Name)
89 #endif
90 #ifndef OPENMP_TASKLOOP_SIMD_CLAUSE
91 #  define OPENMP_TASKLOOP_SIMD_CLAUSE(Name)
92 #endif
93 #ifndef OPENMP_CRITICAL_CLAUSE
94 #  define OPENMP_CRITICAL_CLAUSE(Name)
95 #endif
96 #ifndef OPENMP_DISTRIBUTE_CLAUSE
97 #define OPENMP_DISTRIBUTE_CLAUSE(Name)
98 #endif
99 #ifndef OPENMP_DEFAULT_KIND
100 #  define OPENMP_DEFAULT_KIND(Name)
101 #endif
102 #ifndef OPENMP_PROC_BIND_KIND
103 #  define OPENMP_PROC_BIND_KIND(Name)
104 #endif
105 #ifndef OPENMP_SCHEDULE_KIND
106 #define OPENMP_SCHEDULE_KIND(Name)
107 #endif
108 #ifndef OPENMP_SCHEDULE_MODIFIER
109 #define OPENMP_SCHEDULE_MODIFIER(Name)
110 #endif
111 #ifndef OPENMP_DEPEND_KIND
112 #define OPENMP_DEPEND_KIND(Name)
113 #endif
114 #ifndef OPENMP_LINEAR_KIND
115 #define OPENMP_LINEAR_KIND(Name)
116 #endif
117 #ifndef OPENMP_MAP_KIND
118 #define OPENMP_MAP_KIND(Name)
119 #endif
120 #ifndef OPENMP_DIST_SCHEDULE_KIND
121 #define OPENMP_DIST_SCHEDULE_KIND(Name)
122 #endif
123 #ifndef OPENMP_DEFAULTMAP_KIND
124 #define OPENMP_DEFAULTMAP_KIND(Name)
125 #endif
126 #ifndef OPENMP_DEFAULTMAP_MODIFIER
127 #define OPENMP_DEFAULTMAP_MODIFIER(Name)
128 #endif
129 #ifndef OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE
130 #define OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
131 #endif
132 #ifndef OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
133 #define OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
134 #endif
135 #ifndef OPENMP_DISTRIBUTE_SIMD_CLAUSE
136 #define OPENMP_DISTRIBUTE_SIMD_CLAUSE(Name)
137 #endif
138 #ifndef OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE
139 #define OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(Name)
140 #endif
141
142 // OpenMP directives.
143 OPENMP_DIRECTIVE(threadprivate)
144 OPENMP_DIRECTIVE(parallel)
145 OPENMP_DIRECTIVE(task)
146 OPENMP_DIRECTIVE(simd)
147 OPENMP_DIRECTIVE(for)
148 OPENMP_DIRECTIVE(sections)
149 OPENMP_DIRECTIVE(section)
150 OPENMP_DIRECTIVE(single)
151 OPENMP_DIRECTIVE(master)
152 OPENMP_DIRECTIVE(critical)
153 OPENMP_DIRECTIVE(taskyield)
154 OPENMP_DIRECTIVE(barrier)
155 OPENMP_DIRECTIVE(taskwait)
156 OPENMP_DIRECTIVE(taskgroup)
157 OPENMP_DIRECTIVE(flush)
158 OPENMP_DIRECTIVE(ordered)
159 OPENMP_DIRECTIVE(atomic)
160 OPENMP_DIRECTIVE(target)
161 OPENMP_DIRECTIVE(teams)
162 OPENMP_DIRECTIVE(cancel)
163 OPENMP_DIRECTIVE_EXT(target_data, "target data")
164 OPENMP_DIRECTIVE_EXT(target_enter_data, "target enter data")
165 OPENMP_DIRECTIVE_EXT(target_exit_data, "target exit data")
166 OPENMP_DIRECTIVE_EXT(target_parallel, "target parallel")
167 OPENMP_DIRECTIVE_EXT(target_parallel_for, "target parallel for")
168 OPENMP_DIRECTIVE_EXT(target_update, "target update")
169 OPENMP_DIRECTIVE_EXT(parallel_for, "parallel for")
170 OPENMP_DIRECTIVE_EXT(parallel_for_simd, "parallel for simd")
171 OPENMP_DIRECTIVE_EXT(parallel_sections, "parallel sections")
172 OPENMP_DIRECTIVE_EXT(for_simd, "for simd")
173 OPENMP_DIRECTIVE_EXT(cancellation_point, "cancellation point")
174 OPENMP_DIRECTIVE_EXT(declare_reduction, "declare reduction")
175 OPENMP_DIRECTIVE_EXT(declare_simd, "declare simd")
176 OPENMP_DIRECTIVE(taskloop)
177 OPENMP_DIRECTIVE_EXT(taskloop_simd, "taskloop simd")
178 OPENMP_DIRECTIVE(distribute)
179 OPENMP_DIRECTIVE_EXT(declare_target, "declare target")
180 OPENMP_DIRECTIVE_EXT(end_declare_target, "end declare target")
181 OPENMP_DIRECTIVE_EXT(distribute_parallel_for, "distribute parallel for")
182 OPENMP_DIRECTIVE_EXT(distribute_parallel_for_simd, "distribute parallel for simd")
183 OPENMP_DIRECTIVE_EXT(distribute_simd, "distribute simd")
184 OPENMP_DIRECTIVE_EXT(target_parallel_for_simd, "target parallel for simd")
185
186 // OpenMP clauses.
187 OPENMP_CLAUSE(if, OMPIfClause)
188 OPENMP_CLAUSE(final, OMPFinalClause)
189 OPENMP_CLAUSE(num_threads, OMPNumThreadsClause)
190 OPENMP_CLAUSE(safelen, OMPSafelenClause)
191 OPENMP_CLAUSE(simdlen, OMPSimdlenClause)
192 OPENMP_CLAUSE(collapse, OMPCollapseClause)
193 OPENMP_CLAUSE(default, OMPDefaultClause)
194 OPENMP_CLAUSE(private, OMPPrivateClause)
195 OPENMP_CLAUSE(firstprivate, OMPFirstprivateClause)
196 OPENMP_CLAUSE(lastprivate, OMPLastprivateClause)
197 OPENMP_CLAUSE(shared,  OMPSharedClause)
198 OPENMP_CLAUSE(reduction,  OMPReductionClause)
199 OPENMP_CLAUSE(linear,  OMPLinearClause)
200 OPENMP_CLAUSE(aligned, OMPAlignedClause)
201 OPENMP_CLAUSE(copyin,  OMPCopyinClause)
202 OPENMP_CLAUSE(copyprivate,  OMPCopyprivateClause)
203 OPENMP_CLAUSE(proc_bind, OMPProcBindClause)
204 OPENMP_CLAUSE(schedule, OMPScheduleClause)
205 OPENMP_CLAUSE(ordered, OMPOrderedClause)
206 OPENMP_CLAUSE(nowait, OMPNowaitClause)
207 OPENMP_CLAUSE(untied, OMPUntiedClause)
208 OPENMP_CLAUSE(mergeable, OMPMergeableClause)
209 OPENMP_CLAUSE(flush, OMPFlushClause)
210 OPENMP_CLAUSE(read, OMPReadClause)
211 OPENMP_CLAUSE(write, OMPWriteClause)
212 OPENMP_CLAUSE(update, OMPUpdateClause)
213 OPENMP_CLAUSE(capture, OMPCaptureClause)
214 OPENMP_CLAUSE(seq_cst, OMPSeqCstClause)
215 OPENMP_CLAUSE(depend, OMPDependClause)
216 OPENMP_CLAUSE(device, OMPDeviceClause)
217 OPENMP_CLAUSE(threads, OMPThreadsClause)
218 OPENMP_CLAUSE(simd, OMPSIMDClause)
219 OPENMP_CLAUSE(map, OMPMapClause)
220 OPENMP_CLAUSE(num_teams, OMPNumTeamsClause)
221 OPENMP_CLAUSE(thread_limit, OMPThreadLimitClause)
222 OPENMP_CLAUSE(priority, OMPPriorityClause)
223 OPENMP_CLAUSE(grainsize, OMPGrainsizeClause)
224 OPENMP_CLAUSE(nogroup, OMPNogroupClause)
225 OPENMP_CLAUSE(num_tasks, OMPNumTasksClause)
226 OPENMP_CLAUSE(hint, OMPHintClause)
227 OPENMP_CLAUSE(dist_schedule, OMPDistScheduleClause)
228 OPENMP_CLAUSE(defaultmap, OMPDefaultmapClause)
229 OPENMP_CLAUSE(to, OMPToClause)
230 OPENMP_CLAUSE(from, OMPFromClause)
231 OPENMP_CLAUSE(use_device_ptr, OMPUseDevicePtrClause)
232 OPENMP_CLAUSE(is_device_ptr, OMPIsDevicePtrClause)
233
234 // Clauses allowed for OpenMP directive 'parallel'.
235 OPENMP_PARALLEL_CLAUSE(if)
236 OPENMP_PARALLEL_CLAUSE(num_threads)
237 OPENMP_PARALLEL_CLAUSE(default)
238 OPENMP_PARALLEL_CLAUSE(proc_bind)
239 OPENMP_PARALLEL_CLAUSE(private)
240 OPENMP_PARALLEL_CLAUSE(firstprivate)
241 OPENMP_PARALLEL_CLAUSE(shared)
242 OPENMP_PARALLEL_CLAUSE(reduction)
243 OPENMP_PARALLEL_CLAUSE(copyin)
244
245 // Clauses allowed for directive 'omp simd'.
246 OPENMP_SIMD_CLAUSE(private)
247 OPENMP_SIMD_CLAUSE(lastprivate)
248 OPENMP_SIMD_CLAUSE(linear)
249 OPENMP_SIMD_CLAUSE(aligned)
250 OPENMP_SIMD_CLAUSE(safelen)
251 OPENMP_SIMD_CLAUSE(simdlen)
252 OPENMP_SIMD_CLAUSE(collapse)
253 OPENMP_SIMD_CLAUSE(reduction)
254
255 // Clauses allowed for directive 'omp for'.
256 OPENMP_FOR_CLAUSE(private)
257 OPENMP_FOR_CLAUSE(lastprivate)
258 OPENMP_FOR_CLAUSE(firstprivate)
259 OPENMP_FOR_CLAUSE(reduction)
260 OPENMP_FOR_CLAUSE(collapse)
261 OPENMP_FOR_CLAUSE(schedule)
262 OPENMP_FOR_CLAUSE(ordered)
263 OPENMP_FOR_CLAUSE(nowait)
264 OPENMP_FOR_CLAUSE(linear)
265
266 // Clauses allowed for directive 'omp for simd'.
267 OPENMP_FOR_SIMD_CLAUSE(private)
268 OPENMP_FOR_SIMD_CLAUSE(firstprivate)
269 OPENMP_FOR_SIMD_CLAUSE(lastprivate)
270 OPENMP_FOR_SIMD_CLAUSE(reduction)
271 OPENMP_FOR_SIMD_CLAUSE(schedule)
272 OPENMP_FOR_SIMD_CLAUSE(collapse)
273 OPENMP_FOR_SIMD_CLAUSE(nowait)
274 OPENMP_FOR_SIMD_CLAUSE(safelen)
275 OPENMP_FOR_SIMD_CLAUSE(simdlen)
276 OPENMP_FOR_SIMD_CLAUSE(linear)
277 OPENMP_FOR_SIMD_CLAUSE(aligned)
278 OPENMP_FOR_SIMD_CLAUSE(ordered)
279
280 // Clauses allowed for OpenMP directive 'omp sections'.
281 OPENMP_SECTIONS_CLAUSE(private)
282 OPENMP_SECTIONS_CLAUSE(lastprivate)
283 OPENMP_SECTIONS_CLAUSE(firstprivate)
284 OPENMP_SECTIONS_CLAUSE(reduction)
285 OPENMP_SECTIONS_CLAUSE(nowait)
286
287 // Clauses allowed for directive 'omp single'.
288 OPENMP_SINGLE_CLAUSE(private)
289 OPENMP_SINGLE_CLAUSE(firstprivate)
290 OPENMP_SINGLE_CLAUSE(copyprivate)
291 OPENMP_SINGLE_CLAUSE(nowait)
292
293 // Clauses allowed for OpenMP directive 'cancel'.
294 OPENMP_CANCEL_CLAUSE(if)
295
296 // Static attributes for 'default' clause.
297 OPENMP_DEFAULT_KIND(none)
298 OPENMP_DEFAULT_KIND(shared)
299
300 // Static attributes for 'proc_bind' clause.
301 OPENMP_PROC_BIND_KIND(master)
302 OPENMP_PROC_BIND_KIND(close)
303 OPENMP_PROC_BIND_KIND(spread)
304
305 // Static attributes for 'schedule' clause.
306 OPENMP_SCHEDULE_KIND(static)
307 OPENMP_SCHEDULE_KIND(dynamic)
308 OPENMP_SCHEDULE_KIND(guided)
309 OPENMP_SCHEDULE_KIND(auto)
310 OPENMP_SCHEDULE_KIND(runtime)
311
312 // Modifiers for 'schedule' clause.
313 OPENMP_SCHEDULE_MODIFIER(monotonic)
314 OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
315 OPENMP_SCHEDULE_MODIFIER(simd)
316
317 // Static attributes for 'defaultmap' clause.
318 OPENMP_DEFAULTMAP_KIND(scalar)
319
320 // Modifiers for 'defaultmap' clause.
321 OPENMP_DEFAULTMAP_MODIFIER(tofrom)
322
323 // Static attributes for 'depend' clause.
324 OPENMP_DEPEND_KIND(in)
325 OPENMP_DEPEND_KIND(out)
326 OPENMP_DEPEND_KIND(inout)
327 OPENMP_DEPEND_KIND(source)
328 OPENMP_DEPEND_KIND(sink)
329
330 // Modifiers for 'linear' clause.
331 OPENMP_LINEAR_KIND(val)
332 OPENMP_LINEAR_KIND(ref)
333 OPENMP_LINEAR_KIND(uval)
334
335 // Clauses allowed for OpenMP directive 'parallel for'.
336 OPENMP_PARALLEL_FOR_CLAUSE(if)
337 OPENMP_PARALLEL_FOR_CLAUSE(num_threads)
338 OPENMP_PARALLEL_FOR_CLAUSE(default)
339 OPENMP_PARALLEL_FOR_CLAUSE(proc_bind)
340 OPENMP_PARALLEL_FOR_CLAUSE(private)
341 OPENMP_PARALLEL_FOR_CLAUSE(firstprivate)
342 OPENMP_PARALLEL_FOR_CLAUSE(shared)
343 OPENMP_PARALLEL_FOR_CLAUSE(reduction)
344 OPENMP_PARALLEL_FOR_CLAUSE(copyin)
345 OPENMP_PARALLEL_FOR_CLAUSE(lastprivate)
346 OPENMP_PARALLEL_FOR_CLAUSE(collapse)
347 OPENMP_PARALLEL_FOR_CLAUSE(schedule)
348 OPENMP_PARALLEL_FOR_CLAUSE(ordered)
349 OPENMP_PARALLEL_FOR_CLAUSE(linear)
350
351 // Clauses allowed for OpenMP directive 'parallel for simd'.
352 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(if)
353 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
354 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(default)
355 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
356 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(private)
357 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
358 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(shared)
359 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(reduction)
360 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(copyin)
361 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
362 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(collapse)
363 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(schedule)
364 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(safelen)
365 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
366 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(linear)
367 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(aligned)
368 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(ordered)
369
370 // Clauses allowed for OpenMP directive 'parallel sections'.
371 OPENMP_PARALLEL_SECTIONS_CLAUSE(if)
372 OPENMP_PARALLEL_SECTIONS_CLAUSE(num_threads)
373 OPENMP_PARALLEL_SECTIONS_CLAUSE(default)
374 OPENMP_PARALLEL_SECTIONS_CLAUSE(proc_bind)
375 OPENMP_PARALLEL_SECTIONS_CLAUSE(private)
376 OPENMP_PARALLEL_SECTIONS_CLAUSE(firstprivate)
377 OPENMP_PARALLEL_SECTIONS_CLAUSE(shared)
378 OPENMP_PARALLEL_SECTIONS_CLAUSE(reduction)
379 OPENMP_PARALLEL_SECTIONS_CLAUSE(copyin)
380 OPENMP_PARALLEL_SECTIONS_CLAUSE(lastprivate)
381
382 // Clauses allowed for OpenMP directive 'task'.
383 OPENMP_TASK_CLAUSE(if)
384 OPENMP_TASK_CLAUSE(final)
385 OPENMP_TASK_CLAUSE(default)
386 OPENMP_TASK_CLAUSE(private)
387 OPENMP_TASK_CLAUSE(firstprivate)
388 OPENMP_TASK_CLAUSE(shared)
389 OPENMP_TASK_CLAUSE(untied)
390 OPENMP_TASK_CLAUSE(mergeable)
391 OPENMP_TASK_CLAUSE(depend)
392 OPENMP_TASK_CLAUSE(priority)
393
394 // Clauses allowed for OpenMP directive 'atomic'.
395 OPENMP_ATOMIC_CLAUSE(read)
396 OPENMP_ATOMIC_CLAUSE(write)
397 OPENMP_ATOMIC_CLAUSE(update)
398 OPENMP_ATOMIC_CLAUSE(capture)
399 OPENMP_ATOMIC_CLAUSE(seq_cst)
400
401 // Clauses allowed for OpenMP directive 'target'.
402 OPENMP_TARGET_CLAUSE(if)
403 OPENMP_TARGET_CLAUSE(device)
404 OPENMP_TARGET_CLAUSE(map)
405 OPENMP_TARGET_CLAUSE(private)
406 OPENMP_TARGET_CLAUSE(nowait)
407 OPENMP_TARGET_CLAUSE(depend)
408 OPENMP_TARGET_CLAUSE(defaultmap)
409 OPENMP_TARGET_CLAUSE(firstprivate)
410 OPENMP_TARGET_CLAUSE(is_device_ptr)
411
412 // Clauses allowed for OpenMP directive 'target data'.
413 // TODO More clauses for 'target data' directive.
414 OPENMP_TARGET_DATA_CLAUSE(if)
415 OPENMP_TARGET_DATA_CLAUSE(device)
416 OPENMP_TARGET_DATA_CLAUSE(map)
417 OPENMP_TARGET_DATA_CLAUSE(use_device_ptr)
418
419 // Clauses allowed for OpenMP directive 'target enter data'.
420 OPENMP_TARGET_ENTER_DATA_CLAUSE(if)
421 OPENMP_TARGET_ENTER_DATA_CLAUSE(device)
422 OPENMP_TARGET_ENTER_DATA_CLAUSE(map)
423 OPENMP_TARGET_ENTER_DATA_CLAUSE(nowait)
424 OPENMP_TARGET_ENTER_DATA_CLAUSE(depend)
425
426 // Clauses allowed for OpenMP directive 'target exit data'.
427 OPENMP_TARGET_EXIT_DATA_CLAUSE(if)
428 OPENMP_TARGET_EXIT_DATA_CLAUSE(device)
429 OPENMP_TARGET_EXIT_DATA_CLAUSE(map)
430 OPENMP_TARGET_EXIT_DATA_CLAUSE(nowait)
431 OPENMP_TARGET_EXIT_DATA_CLAUSE(depend)
432
433 // Clauses allowed for OpenMP directive 'target parallel'.
434 // TODO: add target clauses 'is_device_ptr'
435 OPENMP_TARGET_PARALLEL_CLAUSE(if)
436 OPENMP_TARGET_PARALLEL_CLAUSE(device)
437 OPENMP_TARGET_PARALLEL_CLAUSE(map)
438 OPENMP_TARGET_PARALLEL_CLAUSE(private)
439 OPENMP_TARGET_PARALLEL_CLAUSE(firstprivate)
440 OPENMP_TARGET_PARALLEL_CLAUSE(nowait)
441 OPENMP_TARGET_PARALLEL_CLAUSE(depend)
442 OPENMP_TARGET_PARALLEL_CLAUSE(defaultmap)
443 OPENMP_TARGET_PARALLEL_CLAUSE(num_threads)
444 OPENMP_TARGET_PARALLEL_CLAUSE(default)
445 OPENMP_TARGET_PARALLEL_CLAUSE(proc_bind)
446 OPENMP_TARGET_PARALLEL_CLAUSE(shared)
447 OPENMP_TARGET_PARALLEL_CLAUSE(reduction)
448
449 // Clauses allowed for OpenMP directive 'target parallel for'.
450 // TODO: add target clauses 'is_device_ptr'
451 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(if)
452 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(device)
453 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(map)
454 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(private)
455 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(firstprivate)
456 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(lastprivate)
457 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(nowait)
458 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(depend)
459 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(defaultmap)
460 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(num_threads)
461 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(default)
462 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(proc_bind)
463 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(shared)
464 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(reduction)
465 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(collapse)
466 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(schedule)
467 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(ordered)
468 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(linear)
469
470 // Clauses allowed for OpenMP directive 'target update'.
471 // TODO More clauses for 'target update' directive.
472 OPENMP_TARGET_UPDATE_CLAUSE(if)
473 OPENMP_TARGET_UPDATE_CLAUSE(device)
474 OPENMP_TARGET_UPDATE_CLAUSE(to)
475 OPENMP_TARGET_UPDATE_CLAUSE(from)
476 OPENMP_TARGET_UPDATE_CLAUSE(nowait)
477 OPENMP_TARGET_UPDATE_CLAUSE(depend)
478
479 // Clauses allowed for OpenMP directive 'teams'.
480 // TODO More clauses for 'teams' directive.
481 OPENMP_TEAMS_CLAUSE(default)
482 OPENMP_TEAMS_CLAUSE(private)
483 OPENMP_TEAMS_CLAUSE(firstprivate)
484 OPENMP_TEAMS_CLAUSE(shared)
485 OPENMP_TEAMS_CLAUSE(reduction)
486 OPENMP_TEAMS_CLAUSE(num_teams)
487 OPENMP_TEAMS_CLAUSE(thread_limit)
488
489 // Clauses allowed for OpenMP directive 'ordered'.
490 // TODO More clauses for 'ordered' directive.
491 OPENMP_ORDERED_CLAUSE(threads)
492 OPENMP_ORDERED_CLAUSE(simd)
493 OPENMP_ORDERED_CLAUSE(depend)
494
495 // Map types and map type modifier for 'map' clause.
496 OPENMP_MAP_KIND(alloc)
497 OPENMP_MAP_KIND(to)
498 OPENMP_MAP_KIND(from)
499 OPENMP_MAP_KIND(tofrom)
500 OPENMP_MAP_KIND(delete)
501 OPENMP_MAP_KIND(release)
502 OPENMP_MAP_KIND(always)
503
504 // Clauses allowed for OpenMP directive 'taskloop'.
505 OPENMP_TASKLOOP_CLAUSE(if)
506 OPENMP_TASKLOOP_CLAUSE(shared)
507 OPENMP_TASKLOOP_CLAUSE(private)
508 OPENMP_TASKLOOP_CLAUSE(firstprivate)
509 OPENMP_TASKLOOP_CLAUSE(lastprivate)
510 OPENMP_TASKLOOP_CLAUSE(default)
511 OPENMP_TASKLOOP_CLAUSE(collapse)
512 OPENMP_TASKLOOP_CLAUSE(final)
513 OPENMP_TASKLOOP_CLAUSE(untied)
514 OPENMP_TASKLOOP_CLAUSE(mergeable)
515 OPENMP_TASKLOOP_CLAUSE(priority)
516 OPENMP_TASKLOOP_CLAUSE(grainsize)
517 OPENMP_TASKLOOP_CLAUSE(nogroup)
518 OPENMP_TASKLOOP_CLAUSE(num_tasks)
519
520 // Clauses allowed for OpenMP directive 'taskloop simd'.
521 OPENMP_TASKLOOP_SIMD_CLAUSE(if)
522 OPENMP_TASKLOOP_SIMD_CLAUSE(shared)
523 OPENMP_TASKLOOP_SIMD_CLAUSE(private)
524 OPENMP_TASKLOOP_SIMD_CLAUSE(firstprivate)
525 OPENMP_TASKLOOP_SIMD_CLAUSE(lastprivate)
526 OPENMP_TASKLOOP_SIMD_CLAUSE(default)
527 OPENMP_TASKLOOP_SIMD_CLAUSE(collapse)
528 OPENMP_TASKLOOP_SIMD_CLAUSE(final)
529 OPENMP_TASKLOOP_SIMD_CLAUSE(untied)
530 OPENMP_TASKLOOP_SIMD_CLAUSE(mergeable)
531 OPENMP_TASKLOOP_SIMD_CLAUSE(priority)
532 OPENMP_TASKLOOP_SIMD_CLAUSE(linear)
533 OPENMP_TASKLOOP_SIMD_CLAUSE(aligned)
534 OPENMP_TASKLOOP_SIMD_CLAUSE(safelen)
535 OPENMP_TASKLOOP_SIMD_CLAUSE(simdlen)
536 OPENMP_TASKLOOP_SIMD_CLAUSE(grainsize)
537 OPENMP_TASKLOOP_SIMD_CLAUSE(nogroup)
538 OPENMP_TASKLOOP_SIMD_CLAUSE(num_tasks)
539
540 // Clauses allowed for OpenMP directive 'critical'.
541 OPENMP_CRITICAL_CLAUSE(hint)
542
543 // Clauses allowed for OpenMP directive 'distribute'
544 OPENMP_DISTRIBUTE_CLAUSE(private)
545 OPENMP_DISTRIBUTE_CLAUSE(firstprivate)
546 OPENMP_DISTRIBUTE_CLAUSE(lastprivate)
547 OPENMP_DISTRIBUTE_CLAUSE(collapse)
548 OPENMP_DISTRIBUTE_CLAUSE(dist_schedule)
549
550 // Static attributes for 'dist_schedule' clause.
551 OPENMP_DIST_SCHEDULE_KIND(static)
552
553 // Clauses allowed for OpenMP directive 'distribute parallel for'
554 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
555 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
556 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
557 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
558 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
559 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
560 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
561 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
562 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
563 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
564 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
565 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(copyin)
566 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
567
568 // Clauses allowed for OpenMP directive 'distribute parallel for simd'
569 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
570 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
571 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
572 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
573 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
574 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
575 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
576 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
577 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
578 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
579 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
580 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(copyin)
581 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
582 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
583 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
584 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
585 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
586
587 // Clauses allowed for OpenMP directive 'distribute simd'
588 OPENMP_DISTRIBUTE_SIMD_CLAUSE(private)
589 OPENMP_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
590 OPENMP_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
591 OPENMP_DISTRIBUTE_SIMD_CLAUSE(collapse)
592 OPENMP_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
593 OPENMP_DISTRIBUTE_SIMD_CLAUSE(linear)
594 OPENMP_DISTRIBUTE_SIMD_CLAUSE(aligned)
595 OPENMP_DISTRIBUTE_SIMD_CLAUSE(safelen)
596 OPENMP_DISTRIBUTE_SIMD_CLAUSE(simdlen)
597 OPENMP_DISTRIBUTE_SIMD_CLAUSE(reduction)
598
599 // Clauses allowed for OpenMP directive 'target parallel for simd'.
600 // TODO: add target clauses 'is_device_ptr'
601 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(if)
602 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(device)
603 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(map)
604 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(private)
605 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
606 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
607 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(nowait)
608 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(depend)
609 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(defaultmap)
610 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
611 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(default)
612 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
613 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(shared)
614 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(reduction)
615 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(collapse)
616 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(schedule)
617 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(ordered)
618 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(linear)
619 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(safelen)
620 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
621 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(aligned)
622
623 #undef OPENMP_TASKLOOP_SIMD_CLAUSE
624 #undef OPENMP_TASKLOOP_CLAUSE
625 #undef OPENMP_LINEAR_KIND
626 #undef OPENMP_DEPEND_KIND
627 #undef OPENMP_SCHEDULE_MODIFIER
628 #undef OPENMP_SCHEDULE_KIND
629 #undef OPENMP_PROC_BIND_KIND
630 #undef OPENMP_DEFAULT_KIND
631 #undef OPENMP_DIRECTIVE
632 #undef OPENMP_DIRECTIVE_EXT
633 #undef OPENMP_CLAUSE
634 #undef OPENMP_CRITICAL_CLAUSE
635 #undef OPENMP_ORDERED_CLAUSE
636 #undef OPENMP_CANCEL_CLAUSE
637 #undef OPENMP_SINGLE_CLAUSE
638 #undef OPENMP_SECTIONS_CLAUSE
639 #undef OPENMP_PARALLEL_CLAUSE
640 #undef OPENMP_PARALLEL_FOR_CLAUSE
641 #undef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
642 #undef OPENMP_PARALLEL_SECTIONS_CLAUSE
643 #undef OPENMP_TASK_CLAUSE
644 #undef OPENMP_ATOMIC_CLAUSE
645 #undef OPENMP_TARGET_CLAUSE
646 #undef OPENMP_TARGET_DATA_CLAUSE
647 #undef OPENMP_TARGET_ENTER_DATA_CLAUSE
648 #undef OPENMP_TARGET_EXIT_DATA_CLAUSE
649 #undef OPENMP_TARGET_PARALLEL_CLAUSE
650 #undef OPENMP_TARGET_PARALLEL_FOR_CLAUSE
651 #undef OPENMP_TEAMS_CLAUSE
652 #undef OPENMP_SIMD_CLAUSE
653 #undef OPENMP_FOR_CLAUSE
654 #undef OPENMP_FOR_SIMD_CLAUSE
655 #undef OPENMP_MAP_KIND
656 #undef OPENMP_DISTRIBUTE_CLAUSE
657 #undef OPENMP_DIST_SCHEDULE_KIND
658 #undef OPENMP_DEFAULTMAP_KIND
659 #undef OPENMP_DEFAULTMAP_MODIFIER
660 #undef OPENMP_TARGET_UPDATE_CLAUSE
661 #undef OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE
662 #undef OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
663 #undef OPENMP_DISTRIBUTE_SIMD_CLAUSE
664 #undef OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE