]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/clang/include/clang/Basic/OpenMPKinds.def
Merge r357970 from the clang1000-import branch:
[FreeBSD/FreeBSD.git] / contrib / llvm-project / clang / include / clang / Basic / OpenMPKinds.def
1 //===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- 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 /// \file
9 /// This file defines the list of supported OpenMP directives and
10 /// clauses.
11 ///
12 //===----------------------------------------------------------------------===//
13
14 #ifndef OPENMP_DIRECTIVE
15 #  define OPENMP_DIRECTIVE(Name)
16 #endif
17 #ifndef OPENMP_DIRECTIVE_EXT
18 #define OPENMP_DIRECTIVE_EXT(Name, Str)
19 #endif
20 #ifndef OPENMP_CLAUSE
21 #  define OPENMP_CLAUSE(Name, Class)
22 #endif
23 #ifndef OPENMP_PARALLEL_CLAUSE
24 #  define OPENMP_PARALLEL_CLAUSE(Name)
25 #endif
26 #ifndef OPENMP_SIMD_CLAUSE
27 #  define OPENMP_SIMD_CLAUSE(Name)
28 #endif
29 #ifndef OPENMP_FOR_CLAUSE
30 #  define OPENMP_FOR_CLAUSE(Name)
31 #endif
32 #ifndef OPENMP_FOR_SIMD_CLAUSE
33 #  define OPENMP_FOR_SIMD_CLAUSE(Name)
34 #endif
35 #ifndef OPENMP_SECTIONS_CLAUSE
36 #  define OPENMP_SECTIONS_CLAUSE(Name)
37 #endif
38 #ifndef OPENMP_SINGLE_CLAUSE
39 #  define OPENMP_SINGLE_CLAUSE(Name)
40 #endif
41 #ifndef OPENMP_PARALLEL_FOR_CLAUSE
42 #  define OPENMP_PARALLEL_FOR_CLAUSE(Name)
43 #endif
44 #ifndef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
45 #  define OPENMP_PARALLEL_FOR_SIMD_CLAUSE(Name)
46 #endif
47 #ifndef OPENMP_PARALLEL_SECTIONS_CLAUSE
48 #  define OPENMP_PARALLEL_SECTIONS_CLAUSE(Name)
49 #endif
50 #ifndef OPENMP_TASK_CLAUSE
51 #  define OPENMP_TASK_CLAUSE(Name)
52 #endif
53 #ifndef OPENMP_ATOMIC_CLAUSE
54 #  define OPENMP_ATOMIC_CLAUSE(Name)
55 #endif
56 #ifndef OPENMP_TARGET_CLAUSE
57 #  define OPENMP_TARGET_CLAUSE(Name)
58 #endif
59 #ifndef OPENMP_REQUIRES_CLAUSE
60 # define OPENMP_REQUIRES_CLAUSE(Name)
61 #endif
62 #ifndef OPENMP_TARGET_DATA_CLAUSE
63 #  define OPENMP_TARGET_DATA_CLAUSE(Name)
64 #endif
65 #ifndef OPENMP_TARGET_ENTER_DATA_CLAUSE
66 #define OPENMP_TARGET_ENTER_DATA_CLAUSE(Name)
67 #endif
68 #ifndef OPENMP_TARGET_EXIT_DATA_CLAUSE
69 #define OPENMP_TARGET_EXIT_DATA_CLAUSE(Name)
70 #endif
71 #ifndef OPENMP_TARGET_PARALLEL_CLAUSE
72 #  define OPENMP_TARGET_PARALLEL_CLAUSE(Name)
73 #endif
74 #ifndef OPENMP_TARGET_PARALLEL_FOR_CLAUSE
75 #  define OPENMP_TARGET_PARALLEL_FOR_CLAUSE(Name)
76 #endif
77 #ifndef OPENMP_TARGET_UPDATE_CLAUSE
78 #  define OPENMP_TARGET_UPDATE_CLAUSE(Name)
79 #endif
80 #ifndef OPENMP_TEAMS_CLAUSE
81 #  define OPENMP_TEAMS_CLAUSE(Name)
82 #endif
83 #ifndef OPENMP_CANCEL_CLAUSE
84 #  define OPENMP_CANCEL_CLAUSE(Name)
85 #endif
86 #ifndef OPENMP_ORDERED_CLAUSE
87 #  define OPENMP_ORDERED_CLAUSE(Name)
88 #endif
89 #ifndef OPENMP_TASKLOOP_CLAUSE
90 #  define OPENMP_TASKLOOP_CLAUSE(Name)
91 #endif
92 #ifndef OPENMP_TASKLOOP_SIMD_CLAUSE
93 #  define OPENMP_TASKLOOP_SIMD_CLAUSE(Name)
94 #endif
95 #ifndef OPENMP_CRITICAL_CLAUSE
96 #  define OPENMP_CRITICAL_CLAUSE(Name)
97 #endif
98 #ifndef OPENMP_DISTRIBUTE_CLAUSE
99 #define OPENMP_DISTRIBUTE_CLAUSE(Name)
100 #endif
101 #ifndef OPENMP_DEFAULT_KIND
102 #  define OPENMP_DEFAULT_KIND(Name)
103 #endif
104 #ifndef OPENMP_PROC_BIND_KIND
105 #  define OPENMP_PROC_BIND_KIND(Name)
106 #endif
107 #ifndef OPENMP_SCHEDULE_KIND
108 #define OPENMP_SCHEDULE_KIND(Name)
109 #endif
110 #ifndef OPENMP_SCHEDULE_MODIFIER
111 #define OPENMP_SCHEDULE_MODIFIER(Name)
112 #endif
113 #ifndef OPENMP_DEPEND_KIND
114 #define OPENMP_DEPEND_KIND(Name)
115 #endif
116 #ifndef OPENMP_LINEAR_KIND
117 #define OPENMP_LINEAR_KIND(Name)
118 #endif
119 #ifndef OPENMP_MAP_KIND
120 #define OPENMP_MAP_KIND(Name)
121 #endif
122 #ifndef OPENMP_MAP_MODIFIER_KIND
123 #define OPENMP_MAP_MODIFIER_KIND(Name)
124 #endif
125 #ifndef OPENMP_TO_MODIFIER_KIND
126 #define OPENMP_TO_MODIFIER_KIND(Name)
127 #endif
128 #ifndef OPENMP_FROM_MODIFIER_KIND
129 #define OPENMP_FROM_MODIFIER_KIND(Name)
130 #endif
131 #ifndef OPENMP_DIST_SCHEDULE_KIND
132 #define OPENMP_DIST_SCHEDULE_KIND(Name)
133 #endif
134 #ifndef OPENMP_DEFAULTMAP_KIND
135 #define OPENMP_DEFAULTMAP_KIND(Name)
136 #endif
137 #ifndef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND
138 #define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name)
139 #endif
140 #ifndef OPENMP_DEFAULTMAP_MODIFIER
141 #define OPENMP_DEFAULTMAP_MODIFIER(Name)
142 #endif
143 #ifndef OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE
144 #define OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
145 #endif
146 #ifndef OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
147 #define OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
148 #endif
149 #ifndef OPENMP_DISTRIBUTE_SIMD_CLAUSE
150 #define OPENMP_DISTRIBUTE_SIMD_CLAUSE(Name)
151 #endif
152 #ifndef OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE
153 #define OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(Name)
154 #endif
155 #ifndef OPENMP_TARGET_SIMD_CLAUSE
156 #define OPENMP_TARGET_SIMD_CLAUSE(Name)
157 #endif
158 #ifndef OPENMP_TEAMS_DISTRIBUTE_CLAUSE
159 #define OPENMP_TEAMS_DISTRIBUTE_CLAUSE(Name)
160 #endif
161 #ifndef OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE
162 #define OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(Name)
163 #endif
164 #ifndef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
165 #define OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
166 #endif
167 #ifndef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
168 #define OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
169 #endif
170 #ifndef OPENMP_TARGET_TEAMS_CLAUSE
171 #define OPENMP_TARGET_TEAMS_CLAUSE(Name)
172 #endif
173 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE
174 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(Name)
175 #endif
176 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
177 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
178 #endif
179 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
180 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
181 #endif
182 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE
183 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(Name)
184 #endif
185 #ifndef OPENMP_TASKGROUP_CLAUSE
186 #define OPENMP_TASKGROUP_CLAUSE(Name)
187 #endif
188 #ifndef OPENMP_DECLARE_MAPPER_CLAUSE
189 #define OPENMP_DECLARE_MAPPER_CLAUSE(Name)
190 #endif
191 #ifndef OPENMP_ALLOCATE_CLAUSE
192 # define OPENMP_ALLOCATE_CLAUSE(Name)
193 #endif
194
195 // OpenMP directives.
196 OPENMP_DIRECTIVE(threadprivate)
197 OPENMP_DIRECTIVE(parallel)
198 OPENMP_DIRECTIVE(task)
199 OPENMP_DIRECTIVE(simd)
200 OPENMP_DIRECTIVE(for)
201 OPENMP_DIRECTIVE(sections)
202 OPENMP_DIRECTIVE(section)
203 OPENMP_DIRECTIVE(single)
204 OPENMP_DIRECTIVE(master)
205 OPENMP_DIRECTIVE(critical)
206 OPENMP_DIRECTIVE(taskyield)
207 OPENMP_DIRECTIVE(barrier)
208 OPENMP_DIRECTIVE(taskwait)
209 OPENMP_DIRECTIVE(taskgroup)
210 OPENMP_DIRECTIVE(flush)
211 OPENMP_DIRECTIVE(ordered)
212 OPENMP_DIRECTIVE(atomic)
213 OPENMP_DIRECTIVE(target)
214 OPENMP_DIRECTIVE(teams)
215 OPENMP_DIRECTIVE(cancel)
216 OPENMP_DIRECTIVE(requires)
217 OPENMP_DIRECTIVE_EXT(target_data, "target data")
218 OPENMP_DIRECTIVE_EXT(target_enter_data, "target enter data")
219 OPENMP_DIRECTIVE_EXT(target_exit_data, "target exit data")
220 OPENMP_DIRECTIVE_EXT(target_parallel, "target parallel")
221 OPENMP_DIRECTIVE_EXT(target_parallel_for, "target parallel for")
222 OPENMP_DIRECTIVE_EXT(target_update, "target update")
223 OPENMP_DIRECTIVE_EXT(parallel_for, "parallel for")
224 OPENMP_DIRECTIVE_EXT(parallel_for_simd, "parallel for simd")
225 OPENMP_DIRECTIVE_EXT(parallel_sections, "parallel sections")
226 OPENMP_DIRECTIVE_EXT(for_simd, "for simd")
227 OPENMP_DIRECTIVE_EXT(cancellation_point, "cancellation point")
228 OPENMP_DIRECTIVE_EXT(declare_reduction, "declare reduction")
229 OPENMP_DIRECTIVE_EXT(declare_mapper, "declare mapper")
230 OPENMP_DIRECTIVE_EXT(declare_simd, "declare simd")
231 OPENMP_DIRECTIVE(taskloop)
232 OPENMP_DIRECTIVE_EXT(taskloop_simd, "taskloop simd")
233 OPENMP_DIRECTIVE(distribute)
234 OPENMP_DIRECTIVE_EXT(declare_target, "declare target")
235 OPENMP_DIRECTIVE_EXT(end_declare_target, "end declare target")
236 OPENMP_DIRECTIVE_EXT(distribute_parallel_for, "distribute parallel for")
237 OPENMP_DIRECTIVE_EXT(distribute_parallel_for_simd, "distribute parallel for simd")
238 OPENMP_DIRECTIVE_EXT(distribute_simd, "distribute simd")
239 OPENMP_DIRECTIVE_EXT(target_parallel_for_simd, "target parallel for simd")
240 OPENMP_DIRECTIVE_EXT(target_simd, "target simd")
241 OPENMP_DIRECTIVE_EXT(teams_distribute, "teams distribute")
242 OPENMP_DIRECTIVE_EXT(teams_distribute_simd, "teams distribute simd")
243 OPENMP_DIRECTIVE_EXT(teams_distribute_parallel_for_simd, "teams distribute parallel for simd")
244 OPENMP_DIRECTIVE_EXT(teams_distribute_parallel_for, "teams distribute parallel for")
245 OPENMP_DIRECTIVE_EXT(target_teams, "target teams")
246 OPENMP_DIRECTIVE_EXT(target_teams_distribute, "target teams distribute")
247 OPENMP_DIRECTIVE_EXT(target_teams_distribute_parallel_for, "target teams distribute parallel for")
248 OPENMP_DIRECTIVE_EXT(target_teams_distribute_parallel_for_simd, "target teams distribute parallel for simd")
249 OPENMP_DIRECTIVE_EXT(target_teams_distribute_simd, "target teams distribute simd")
250 OPENMP_DIRECTIVE(allocate)
251
252 // OpenMP clauses.
253 OPENMP_CLAUSE(allocator, OMPAllocatorClause)
254 OPENMP_CLAUSE(if, OMPIfClause)
255 OPENMP_CLAUSE(final, OMPFinalClause)
256 OPENMP_CLAUSE(num_threads, OMPNumThreadsClause)
257 OPENMP_CLAUSE(safelen, OMPSafelenClause)
258 OPENMP_CLAUSE(simdlen, OMPSimdlenClause)
259 OPENMP_CLAUSE(collapse, OMPCollapseClause)
260 OPENMP_CLAUSE(default, OMPDefaultClause)
261 OPENMP_CLAUSE(private, OMPPrivateClause)
262 OPENMP_CLAUSE(firstprivate, OMPFirstprivateClause)
263 OPENMP_CLAUSE(lastprivate, OMPLastprivateClause)
264 OPENMP_CLAUSE(shared,  OMPSharedClause)
265 OPENMP_CLAUSE(reduction,  OMPReductionClause)
266 OPENMP_CLAUSE(linear,  OMPLinearClause)
267 OPENMP_CLAUSE(aligned, OMPAlignedClause)
268 OPENMP_CLAUSE(copyin,  OMPCopyinClause)
269 OPENMP_CLAUSE(copyprivate,  OMPCopyprivateClause)
270 OPENMP_CLAUSE(proc_bind, OMPProcBindClause)
271 OPENMP_CLAUSE(schedule, OMPScheduleClause)
272 OPENMP_CLAUSE(ordered, OMPOrderedClause)
273 OPENMP_CLAUSE(nowait, OMPNowaitClause)
274 OPENMP_CLAUSE(untied, OMPUntiedClause)
275 OPENMP_CLAUSE(mergeable, OMPMergeableClause)
276 OPENMP_CLAUSE(flush, OMPFlushClause)
277 OPENMP_CLAUSE(read, OMPReadClause)
278 OPENMP_CLAUSE(write, OMPWriteClause)
279 OPENMP_CLAUSE(update, OMPUpdateClause)
280 OPENMP_CLAUSE(capture, OMPCaptureClause)
281 OPENMP_CLAUSE(seq_cst, OMPSeqCstClause)
282 OPENMP_CLAUSE(depend, OMPDependClause)
283 OPENMP_CLAUSE(device, OMPDeviceClause)
284 OPENMP_CLAUSE(threads, OMPThreadsClause)
285 OPENMP_CLAUSE(simd, OMPSIMDClause)
286 OPENMP_CLAUSE(map, OMPMapClause)
287 OPENMP_CLAUSE(num_teams, OMPNumTeamsClause)
288 OPENMP_CLAUSE(thread_limit, OMPThreadLimitClause)
289 OPENMP_CLAUSE(priority, OMPPriorityClause)
290 OPENMP_CLAUSE(grainsize, OMPGrainsizeClause)
291 OPENMP_CLAUSE(nogroup, OMPNogroupClause)
292 OPENMP_CLAUSE(num_tasks, OMPNumTasksClause)
293 OPENMP_CLAUSE(hint, OMPHintClause)
294 OPENMP_CLAUSE(dist_schedule, OMPDistScheduleClause)
295 OPENMP_CLAUSE(defaultmap, OMPDefaultmapClause)
296 OPENMP_CLAUSE(to, OMPToClause)
297 OPENMP_CLAUSE(from, OMPFromClause)
298 OPENMP_CLAUSE(use_device_ptr, OMPUseDevicePtrClause)
299 OPENMP_CLAUSE(is_device_ptr, OMPIsDevicePtrClause)
300 OPENMP_CLAUSE(task_reduction,  OMPTaskReductionClause)
301 OPENMP_CLAUSE(in_reduction,  OMPInReductionClause)
302 OPENMP_CLAUSE(unified_address, OMPUnifiedAddressClause)
303 OPENMP_CLAUSE(unified_shared_memory, OMPUnifiedSharedMemoryClause)
304 OPENMP_CLAUSE(reverse_offload, OMPReverseOffloadClause)
305 OPENMP_CLAUSE(dynamic_allocators, OMPDynamicAllocatorsClause)
306 OPENMP_CLAUSE(atomic_default_mem_order, OMPAtomicDefaultMemOrderClause)
307 OPENMP_CLAUSE(allocate, OMPAllocateClause)
308
309 // Clauses allowed for OpenMP directive 'parallel'.
310 OPENMP_PARALLEL_CLAUSE(if)
311 OPENMP_PARALLEL_CLAUSE(num_threads)
312 OPENMP_PARALLEL_CLAUSE(default)
313 OPENMP_PARALLEL_CLAUSE(proc_bind)
314 OPENMP_PARALLEL_CLAUSE(private)
315 OPENMP_PARALLEL_CLAUSE(firstprivate)
316 OPENMP_PARALLEL_CLAUSE(shared)
317 OPENMP_PARALLEL_CLAUSE(reduction)
318 OPENMP_PARALLEL_CLAUSE(copyin)
319 OPENMP_PARALLEL_CLAUSE(allocate)
320
321 // Clauses allowed for directive 'omp simd'.
322 OPENMP_SIMD_CLAUSE(private)
323 OPENMP_SIMD_CLAUSE(lastprivate)
324 OPENMP_SIMD_CLAUSE(linear)
325 OPENMP_SIMD_CLAUSE(aligned)
326 OPENMP_SIMD_CLAUSE(safelen)
327 OPENMP_SIMD_CLAUSE(simdlen)
328 OPENMP_SIMD_CLAUSE(collapse)
329 OPENMP_SIMD_CLAUSE(reduction)
330 OPENMP_SIMD_CLAUSE(allocate)
331
332 // Clauses allowed for directive 'omp for'.
333 OPENMP_FOR_CLAUSE(private)
334 OPENMP_FOR_CLAUSE(lastprivate)
335 OPENMP_FOR_CLAUSE(firstprivate)
336 OPENMP_FOR_CLAUSE(reduction)
337 OPENMP_FOR_CLAUSE(collapse)
338 OPENMP_FOR_CLAUSE(schedule)
339 OPENMP_FOR_CLAUSE(ordered)
340 OPENMP_FOR_CLAUSE(nowait)
341 OPENMP_FOR_CLAUSE(linear)
342 OPENMP_FOR_CLAUSE(allocate)
343
344 // Clauses allowed for directive 'omp for simd'.
345 OPENMP_FOR_SIMD_CLAUSE(private)
346 OPENMP_FOR_SIMD_CLAUSE(firstprivate)
347 OPENMP_FOR_SIMD_CLAUSE(lastprivate)
348 OPENMP_FOR_SIMD_CLAUSE(reduction)
349 OPENMP_FOR_SIMD_CLAUSE(schedule)
350 OPENMP_FOR_SIMD_CLAUSE(collapse)
351 OPENMP_FOR_SIMD_CLAUSE(nowait)
352 OPENMP_FOR_SIMD_CLAUSE(safelen)
353 OPENMP_FOR_SIMD_CLAUSE(simdlen)
354 OPENMP_FOR_SIMD_CLAUSE(linear)
355 OPENMP_FOR_SIMD_CLAUSE(aligned)
356 OPENMP_FOR_SIMD_CLAUSE(ordered)
357 OPENMP_FOR_SIMD_CLAUSE(allocate)
358
359 // Clauses allowed for OpenMP directive 'omp sections'.
360 OPENMP_SECTIONS_CLAUSE(private)
361 OPENMP_SECTIONS_CLAUSE(lastprivate)
362 OPENMP_SECTIONS_CLAUSE(firstprivate)
363 OPENMP_SECTIONS_CLAUSE(reduction)
364 OPENMP_SECTIONS_CLAUSE(nowait)
365 OPENMP_SECTIONS_CLAUSE(allocate)
366
367 // Clauses allowed for directive 'omp single'.
368 OPENMP_SINGLE_CLAUSE(private)
369 OPENMP_SINGLE_CLAUSE(firstprivate)
370 OPENMP_SINGLE_CLAUSE(copyprivate)
371 OPENMP_SINGLE_CLAUSE(nowait)
372 OPENMP_SINGLE_CLAUSE(allocate)
373
374 // Clauses allowed for OpenMP directive 'cancel'.
375 OPENMP_CANCEL_CLAUSE(if)
376
377 // Static attributes for 'default' clause.
378 OPENMP_DEFAULT_KIND(none)
379 OPENMP_DEFAULT_KIND(shared)
380
381 // Static attributes for 'proc_bind' clause.
382 OPENMP_PROC_BIND_KIND(master)
383 OPENMP_PROC_BIND_KIND(close)
384 OPENMP_PROC_BIND_KIND(spread)
385
386 // Static attributes for 'schedule' clause.
387 OPENMP_SCHEDULE_KIND(static)
388 OPENMP_SCHEDULE_KIND(dynamic)
389 OPENMP_SCHEDULE_KIND(guided)
390 OPENMP_SCHEDULE_KIND(auto)
391 OPENMP_SCHEDULE_KIND(runtime)
392
393 // Modifiers for 'schedule' clause.
394 OPENMP_SCHEDULE_MODIFIER(monotonic)
395 OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
396 OPENMP_SCHEDULE_MODIFIER(simd)
397
398 // Static attributes for 'defaultmap' clause.
399 OPENMP_DEFAULTMAP_KIND(scalar)
400
401 // Modifiers for 'defaultmap' clause.
402 OPENMP_DEFAULTMAP_MODIFIER(tofrom)
403
404 // Static attributes for 'depend' clause.
405 OPENMP_DEPEND_KIND(in)
406 OPENMP_DEPEND_KIND(out)
407 OPENMP_DEPEND_KIND(inout)
408 OPENMP_DEPEND_KIND(mutexinoutset)
409 OPENMP_DEPEND_KIND(source)
410 OPENMP_DEPEND_KIND(sink)
411
412 // Modifiers for 'linear' clause.
413 OPENMP_LINEAR_KIND(val)
414 OPENMP_LINEAR_KIND(ref)
415 OPENMP_LINEAR_KIND(uval)
416
417 // Clauses allowed for OpenMP directive 'parallel for'.
418 OPENMP_PARALLEL_FOR_CLAUSE(if)
419 OPENMP_PARALLEL_FOR_CLAUSE(num_threads)
420 OPENMP_PARALLEL_FOR_CLAUSE(default)
421 OPENMP_PARALLEL_FOR_CLAUSE(proc_bind)
422 OPENMP_PARALLEL_FOR_CLAUSE(private)
423 OPENMP_PARALLEL_FOR_CLAUSE(firstprivate)
424 OPENMP_PARALLEL_FOR_CLAUSE(shared)
425 OPENMP_PARALLEL_FOR_CLAUSE(reduction)
426 OPENMP_PARALLEL_FOR_CLAUSE(copyin)
427 OPENMP_PARALLEL_FOR_CLAUSE(lastprivate)
428 OPENMP_PARALLEL_FOR_CLAUSE(collapse)
429 OPENMP_PARALLEL_FOR_CLAUSE(schedule)
430 OPENMP_PARALLEL_FOR_CLAUSE(ordered)
431 OPENMP_PARALLEL_FOR_CLAUSE(linear)
432 OPENMP_PARALLEL_FOR_CLAUSE(allocate)
433
434 // Clauses allowed for OpenMP directive 'parallel for simd'.
435 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(if)
436 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
437 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(default)
438 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
439 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(private)
440 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
441 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(shared)
442 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(reduction)
443 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(copyin)
444 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
445 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(collapse)
446 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(schedule)
447 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(safelen)
448 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
449 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(linear)
450 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(aligned)
451 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(ordered)
452 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(allocate)
453
454 // Clauses allowed for OpenMP directive 'parallel sections'.
455 OPENMP_PARALLEL_SECTIONS_CLAUSE(if)
456 OPENMP_PARALLEL_SECTIONS_CLAUSE(num_threads)
457 OPENMP_PARALLEL_SECTIONS_CLAUSE(default)
458 OPENMP_PARALLEL_SECTIONS_CLAUSE(proc_bind)
459 OPENMP_PARALLEL_SECTIONS_CLAUSE(private)
460 OPENMP_PARALLEL_SECTIONS_CLAUSE(firstprivate)
461 OPENMP_PARALLEL_SECTIONS_CLAUSE(shared)
462 OPENMP_PARALLEL_SECTIONS_CLAUSE(reduction)
463 OPENMP_PARALLEL_SECTIONS_CLAUSE(copyin)
464 OPENMP_PARALLEL_SECTIONS_CLAUSE(lastprivate)
465 OPENMP_PARALLEL_SECTIONS_CLAUSE(allocate)
466
467 // Clauses allowed for OpenMP directive 'task'.
468 OPENMP_TASK_CLAUSE(if)
469 OPENMP_TASK_CLAUSE(final)
470 OPENMP_TASK_CLAUSE(default)
471 OPENMP_TASK_CLAUSE(private)
472 OPENMP_TASK_CLAUSE(firstprivate)
473 OPENMP_TASK_CLAUSE(shared)
474 OPENMP_TASK_CLAUSE(untied)
475 OPENMP_TASK_CLAUSE(mergeable)
476 OPENMP_TASK_CLAUSE(depend)
477 OPENMP_TASK_CLAUSE(priority)
478 OPENMP_TASK_CLAUSE(in_reduction)
479 OPENMP_TASK_CLAUSE(allocate)
480
481 // Clauses allowed for OpenMP directive 'atomic'.
482 OPENMP_ATOMIC_CLAUSE(read)
483 OPENMP_ATOMIC_CLAUSE(write)
484 OPENMP_ATOMIC_CLAUSE(update)
485 OPENMP_ATOMIC_CLAUSE(capture)
486 OPENMP_ATOMIC_CLAUSE(seq_cst)
487
488 // Clauses allowed for OpenMP directive 'target'.
489 OPENMP_TARGET_CLAUSE(if)
490 OPENMP_TARGET_CLAUSE(device)
491 OPENMP_TARGET_CLAUSE(map)
492 OPENMP_TARGET_CLAUSE(private)
493 OPENMP_TARGET_CLAUSE(nowait)
494 OPENMP_TARGET_CLAUSE(depend)
495 OPENMP_TARGET_CLAUSE(defaultmap)
496 OPENMP_TARGET_CLAUSE(firstprivate)
497 OPENMP_TARGET_CLAUSE(is_device_ptr)
498 OPENMP_TARGET_CLAUSE(reduction)
499 OPENMP_TARGET_CLAUSE(allocate)
500
501 // Clauses allowed for OpenMP directive 'requires'.
502 OPENMP_REQUIRES_CLAUSE(unified_address)
503 OPENMP_REQUIRES_CLAUSE(unified_shared_memory)
504 OPENMP_REQUIRES_CLAUSE(reverse_offload)
505 OPENMP_REQUIRES_CLAUSE(dynamic_allocators)
506 OPENMP_REQUIRES_CLAUSE(atomic_default_mem_order)
507
508 // Clauses allowed for OpenMP directive 'allocate'.
509 OPENMP_ALLOCATE_CLAUSE(allocator)
510
511 // Modifiers for 'atomic_default_mem_order' clause.
512 OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(seq_cst)
513 OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(acq_rel)
514 OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(relaxed)
515
516 // Clauses allowed for OpenMP directive 'target data'.
517 OPENMP_TARGET_DATA_CLAUSE(if)
518 OPENMP_TARGET_DATA_CLAUSE(device)
519 OPENMP_TARGET_DATA_CLAUSE(map)
520 OPENMP_TARGET_DATA_CLAUSE(use_device_ptr)
521
522 // Clauses allowed for OpenMP directive 'target enter data'.
523 OPENMP_TARGET_ENTER_DATA_CLAUSE(if)
524 OPENMP_TARGET_ENTER_DATA_CLAUSE(device)
525 OPENMP_TARGET_ENTER_DATA_CLAUSE(map)
526 OPENMP_TARGET_ENTER_DATA_CLAUSE(nowait)
527 OPENMP_TARGET_ENTER_DATA_CLAUSE(depend)
528
529 // Clauses allowed for OpenMP directive 'target exit data'.
530 OPENMP_TARGET_EXIT_DATA_CLAUSE(if)
531 OPENMP_TARGET_EXIT_DATA_CLAUSE(device)
532 OPENMP_TARGET_EXIT_DATA_CLAUSE(map)
533 OPENMP_TARGET_EXIT_DATA_CLAUSE(nowait)
534 OPENMP_TARGET_EXIT_DATA_CLAUSE(depend)
535
536 // Clauses allowed for OpenMP directive 'target parallel'.
537 OPENMP_TARGET_PARALLEL_CLAUSE(if)
538 OPENMP_TARGET_PARALLEL_CLAUSE(device)
539 OPENMP_TARGET_PARALLEL_CLAUSE(map)
540 OPENMP_TARGET_PARALLEL_CLAUSE(private)
541 OPENMP_TARGET_PARALLEL_CLAUSE(firstprivate)
542 OPENMP_TARGET_PARALLEL_CLAUSE(nowait)
543 OPENMP_TARGET_PARALLEL_CLAUSE(depend)
544 OPENMP_TARGET_PARALLEL_CLAUSE(defaultmap)
545 OPENMP_TARGET_PARALLEL_CLAUSE(num_threads)
546 OPENMP_TARGET_PARALLEL_CLAUSE(default)
547 OPENMP_TARGET_PARALLEL_CLAUSE(proc_bind)
548 OPENMP_TARGET_PARALLEL_CLAUSE(shared)
549 OPENMP_TARGET_PARALLEL_CLAUSE(reduction)
550 OPENMP_TARGET_PARALLEL_CLAUSE(is_device_ptr)
551 OPENMP_TARGET_PARALLEL_CLAUSE(allocate)
552
553 // Clauses allowed for OpenMP directive 'target parallel for'.
554 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(if)
555 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(device)
556 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(map)
557 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(private)
558 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(firstprivate)
559 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(lastprivate)
560 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(nowait)
561 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(depend)
562 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(defaultmap)
563 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(num_threads)
564 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(default)
565 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(proc_bind)
566 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(shared)
567 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(reduction)
568 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(collapse)
569 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(schedule)
570 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(ordered)
571 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(linear)
572 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(is_device_ptr)
573 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(allocate)
574
575 // Clauses allowed for OpenMP directive 'target update'.
576 OPENMP_TARGET_UPDATE_CLAUSE(if)
577 OPENMP_TARGET_UPDATE_CLAUSE(device)
578 OPENMP_TARGET_UPDATE_CLAUSE(to)
579 OPENMP_TARGET_UPDATE_CLAUSE(from)
580 OPENMP_TARGET_UPDATE_CLAUSE(nowait)
581 OPENMP_TARGET_UPDATE_CLAUSE(depend)
582
583 // Clauses allowed for OpenMP directive 'teams'.
584 OPENMP_TEAMS_CLAUSE(default)
585 OPENMP_TEAMS_CLAUSE(private)
586 OPENMP_TEAMS_CLAUSE(firstprivate)
587 OPENMP_TEAMS_CLAUSE(shared)
588 OPENMP_TEAMS_CLAUSE(reduction)
589 OPENMP_TEAMS_CLAUSE(num_teams)
590 OPENMP_TEAMS_CLAUSE(thread_limit)
591 OPENMP_TEAMS_CLAUSE(allocate)
592
593 // Clauses allowed for OpenMP directive 'ordered'.
594 OPENMP_ORDERED_CLAUSE(threads)
595 OPENMP_ORDERED_CLAUSE(simd)
596 OPENMP_ORDERED_CLAUSE(depend)
597
598 // Map types for 'map' clause.
599 OPENMP_MAP_KIND(alloc)
600 OPENMP_MAP_KIND(to)
601 OPENMP_MAP_KIND(from)
602 OPENMP_MAP_KIND(tofrom)
603 OPENMP_MAP_KIND(delete)
604 OPENMP_MAP_KIND(release)
605
606 // Map-type-modifiers for 'map' clause.
607 OPENMP_MAP_MODIFIER_KIND(always)
608 OPENMP_MAP_MODIFIER_KIND(close)
609 OPENMP_MAP_MODIFIER_KIND(mapper)
610
611 // Modifiers for 'to' clause.
612 OPENMP_TO_MODIFIER_KIND(mapper)
613
614 // Modifiers for 'from' clause.
615 OPENMP_FROM_MODIFIER_KIND(mapper)
616
617 // Clauses allowed for OpenMP directive 'taskloop'.
618 OPENMP_TASKLOOP_CLAUSE(if)
619 OPENMP_TASKLOOP_CLAUSE(shared)
620 OPENMP_TASKLOOP_CLAUSE(private)
621 OPENMP_TASKLOOP_CLAUSE(firstprivate)
622 OPENMP_TASKLOOP_CLAUSE(lastprivate)
623 OPENMP_TASKLOOP_CLAUSE(default)
624 OPENMP_TASKLOOP_CLAUSE(collapse)
625 OPENMP_TASKLOOP_CLAUSE(final)
626 OPENMP_TASKLOOP_CLAUSE(untied)
627 OPENMP_TASKLOOP_CLAUSE(mergeable)
628 OPENMP_TASKLOOP_CLAUSE(priority)
629 OPENMP_TASKLOOP_CLAUSE(grainsize)
630 OPENMP_TASKLOOP_CLAUSE(nogroup)
631 OPENMP_TASKLOOP_CLAUSE(num_tasks)
632 OPENMP_TASKLOOP_CLAUSE(reduction)
633 OPENMP_TASKLOOP_CLAUSE(in_reduction)
634 OPENMP_TASKLOOP_CLAUSE(allocate)
635
636 // Clauses allowed for OpenMP directive 'taskloop simd'.
637 OPENMP_TASKLOOP_SIMD_CLAUSE(if)
638 OPENMP_TASKLOOP_SIMD_CLAUSE(shared)
639 OPENMP_TASKLOOP_SIMD_CLAUSE(private)
640 OPENMP_TASKLOOP_SIMD_CLAUSE(firstprivate)
641 OPENMP_TASKLOOP_SIMD_CLAUSE(lastprivate)
642 OPENMP_TASKLOOP_SIMD_CLAUSE(default)
643 OPENMP_TASKLOOP_SIMD_CLAUSE(collapse)
644 OPENMP_TASKLOOP_SIMD_CLAUSE(final)
645 OPENMP_TASKLOOP_SIMD_CLAUSE(untied)
646 OPENMP_TASKLOOP_SIMD_CLAUSE(mergeable)
647 OPENMP_TASKLOOP_SIMD_CLAUSE(priority)
648 OPENMP_TASKLOOP_SIMD_CLAUSE(linear)
649 OPENMP_TASKLOOP_SIMD_CLAUSE(aligned)
650 OPENMP_TASKLOOP_SIMD_CLAUSE(safelen)
651 OPENMP_TASKLOOP_SIMD_CLAUSE(simdlen)
652 OPENMP_TASKLOOP_SIMD_CLAUSE(grainsize)
653 OPENMP_TASKLOOP_SIMD_CLAUSE(nogroup)
654 OPENMP_TASKLOOP_SIMD_CLAUSE(num_tasks)
655 OPENMP_TASKLOOP_SIMD_CLAUSE(reduction)
656 OPENMP_TASKLOOP_SIMD_CLAUSE(in_reduction)
657 OPENMP_TASKLOOP_SIMD_CLAUSE(allocate)
658
659 // Clauses allowed for OpenMP directive 'critical'.
660 OPENMP_CRITICAL_CLAUSE(hint)
661
662 // Clauses allowed for OpenMP directive 'distribute'
663 OPENMP_DISTRIBUTE_CLAUSE(private)
664 OPENMP_DISTRIBUTE_CLAUSE(firstprivate)
665 OPENMP_DISTRIBUTE_CLAUSE(lastprivate)
666 OPENMP_DISTRIBUTE_CLAUSE(collapse)
667 OPENMP_DISTRIBUTE_CLAUSE(dist_schedule)
668 OPENMP_DISTRIBUTE_CLAUSE(allocate)
669
670 // Static attributes for 'dist_schedule' clause.
671 OPENMP_DIST_SCHEDULE_KIND(static)
672
673 // Clauses allowed for OpenMP directive 'distribute parallel for'
674 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
675 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
676 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
677 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
678 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
679 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
680 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
681 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
682 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
683 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
684 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
685 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(copyin)
686 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
687 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(allocate)
688
689 // Clauses allowed for OpenMP directive 'distribute parallel for simd'
690 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
691 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
692 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
693 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
694 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
695 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
696 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
697 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
698 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
699 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
700 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
701 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(copyin)
702 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
703 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
704 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
705 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
706 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
707 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(allocate)
708
709 // Clauses allowed for OpenMP directive 'distribute simd'
710 OPENMP_DISTRIBUTE_SIMD_CLAUSE(private)
711 OPENMP_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
712 OPENMP_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
713 OPENMP_DISTRIBUTE_SIMD_CLAUSE(collapse)
714 OPENMP_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
715 OPENMP_DISTRIBUTE_SIMD_CLAUSE(linear)
716 OPENMP_DISTRIBUTE_SIMD_CLAUSE(aligned)
717 OPENMP_DISTRIBUTE_SIMD_CLAUSE(safelen)
718 OPENMP_DISTRIBUTE_SIMD_CLAUSE(simdlen)
719 OPENMP_DISTRIBUTE_SIMD_CLAUSE(reduction)
720 OPENMP_DISTRIBUTE_SIMD_CLAUSE(allocate)
721
722 // Clauses allowed for OpenMP directive 'target parallel for simd'.
723 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(if)
724 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(device)
725 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(map)
726 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(private)
727 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
728 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
729 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(nowait)
730 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(depend)
731 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(defaultmap)
732 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
733 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(default)
734 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
735 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(shared)
736 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(reduction)
737 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(collapse)
738 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(schedule)
739 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(ordered)
740 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(linear)
741 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(safelen)
742 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
743 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(aligned)
744 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(is_device_ptr)
745 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(allocate)
746
747 // Clauses allowed for OpenMP directive 'target simd'.
748 OPENMP_TARGET_SIMD_CLAUSE(if)
749 OPENMP_TARGET_SIMD_CLAUSE(device)
750 OPENMP_TARGET_SIMD_CLAUSE(map)
751 OPENMP_TARGET_SIMD_CLAUSE(private)
752 OPENMP_TARGET_SIMD_CLAUSE(nowait)
753 OPENMP_TARGET_SIMD_CLAUSE(depend)
754 OPENMP_TARGET_SIMD_CLAUSE(defaultmap)
755 OPENMP_TARGET_SIMD_CLAUSE(firstprivate)
756 OPENMP_TARGET_SIMD_CLAUSE(is_device_ptr)
757 OPENMP_TARGET_SIMD_CLAUSE(lastprivate)
758 OPENMP_TARGET_SIMD_CLAUSE(linear)
759 OPENMP_TARGET_SIMD_CLAUSE(aligned)
760 OPENMP_TARGET_SIMD_CLAUSE(safelen)
761 OPENMP_TARGET_SIMD_CLAUSE(simdlen)
762 OPENMP_TARGET_SIMD_CLAUSE(collapse)
763 OPENMP_TARGET_SIMD_CLAUSE(reduction)
764 OPENMP_TARGET_SIMD_CLAUSE(allocate)
765
766 // Clauses allowed for OpenMP directive 'teams distribute'.
767 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(default)
768 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(private)
769 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(firstprivate)
770 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(shared)
771 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(reduction)
772 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(num_teams)
773 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(thread_limit)
774 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(lastprivate)
775 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(collapse)
776 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(dist_schedule)
777 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(allocate)
778
779 // Clauses allowed for OpenMP directive 'teams distribute simd'
780 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(default)
781 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(private)
782 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
783 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(shared)
784 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(reduction)
785 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(num_teams)
786 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(thread_limit)
787 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
788 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(collapse)
789 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
790 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(linear)
791 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(aligned)
792 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(safelen)
793 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(simdlen)
794 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(allocate)
795
796 // Clauses allowed for OpenMP directive 'teams distribute parallel for simd'
797 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
798 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
799 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
800 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
801 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
802 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
803 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
804 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
805 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
806 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
807 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
808 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
809 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
810 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
811 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
812 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
813 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_teams)
814 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(thread_limit)
815 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(allocate)
816
817 // Clauses allowed for OpenMP directive 'teams distribute parallel for'
818 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
819 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
820 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
821 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
822 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
823 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
824 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
825 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
826 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
827 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
828 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
829 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
830 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_teams)
831 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(thread_limit)
832 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(copyin)
833 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(allocate)
834
835 // Clauses allowed for OpenMP directive 'target teams'.
836 OPENMP_TARGET_TEAMS_CLAUSE(if)
837 OPENMP_TARGET_TEAMS_CLAUSE(device)
838 OPENMP_TARGET_TEAMS_CLAUSE(map)
839 OPENMP_TARGET_TEAMS_CLAUSE(private)
840 OPENMP_TARGET_TEAMS_CLAUSE(nowait)
841 OPENMP_TARGET_TEAMS_CLAUSE(depend)
842 OPENMP_TARGET_TEAMS_CLAUSE(defaultmap)
843 OPENMP_TARGET_TEAMS_CLAUSE(firstprivate)
844 OPENMP_TARGET_TEAMS_CLAUSE(is_device_ptr)
845 OPENMP_TARGET_TEAMS_CLAUSE(default)
846 OPENMP_TARGET_TEAMS_CLAUSE(shared)
847 OPENMP_TARGET_TEAMS_CLAUSE(reduction)
848 OPENMP_TARGET_TEAMS_CLAUSE(num_teams)
849 OPENMP_TARGET_TEAMS_CLAUSE(thread_limit)
850 OPENMP_TARGET_TEAMS_CLAUSE(allocate)
851
852 // Clauses allowed for OpenMP directive 'target teams distribute'.
853 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(if)
854 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(device)
855 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(map)
856 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(private)
857 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(nowait)
858 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(depend)
859 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(defaultmap)
860 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(firstprivate)
861 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(is_device_ptr)
862 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(default)
863 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(shared)
864 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(reduction)
865 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(num_teams)
866 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(thread_limit)
867 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(lastprivate)
868 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(collapse)
869 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(dist_schedule)
870 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(allocate)
871
872 // Clauses allowed for OpenMP directive 'target teams distribute parallel for'.
873 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
874 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(device)
875 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(map)
876 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
877 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(nowait)
878 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(depend)
879 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(defaultmap)
880 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
881 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(is_device_ptr)
882 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
883 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
884 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
885 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_teams)
886 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(thread_limit)
887 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
888 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
889 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
890 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
891 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
892 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
893 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(allocate)
894
895 // Clauses allowed for OpenMP directive
896 // 'target teams distribute parallel for simd'.
897 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
898 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(device)
899 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(map)
900 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
901 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(nowait)
902 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(depend)
903 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(defaultmap)
904 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
905 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(is_device_ptr)
906 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
907 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
908 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
909 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_teams)
910 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(thread_limit)
911 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
912 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
913 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
914 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
915 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
916 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
917 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
918 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
919 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
920 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
921 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(allocate)
922
923 // Clauses allowed for OpenMP directive 'target teams distribute simd'.
924 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(if)
925 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(device)
926 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(map)
927 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(private)
928 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(nowait)
929 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(depend)
930 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(defaultmap)
931 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
932 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
933 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(is_device_ptr)
934 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(shared)
935 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(reduction)
936 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(num_teams)
937 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(thread_limit)
938 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(collapse)
939 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
940 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(linear)
941 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(aligned)
942 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(safelen)
943 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(simdlen)
944 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(allocate)
945
946 // Clauses allowed for OpenMP directive 'taskgroup'.
947 OPENMP_TASKGROUP_CLAUSE(task_reduction)
948 OPENMP_TASKGROUP_CLAUSE(allocate)
949
950 // Clauses allowed for OpenMP directive 'declare mapper'.
951 OPENMP_DECLARE_MAPPER_CLAUSE(map)
952
953 #undef OPENMP_ALLOCATE_CLAUSE
954 #undef OPENMP_DECLARE_MAPPER_CLAUSE
955 #undef OPENMP_TASKGROUP_CLAUSE
956 #undef OPENMP_TASKLOOP_SIMD_CLAUSE
957 #undef OPENMP_TASKLOOP_CLAUSE
958 #undef OPENMP_LINEAR_KIND
959 #undef OPENMP_DEPEND_KIND
960 #undef OPENMP_SCHEDULE_MODIFIER
961 #undef OPENMP_SCHEDULE_KIND
962 #undef OPENMP_PROC_BIND_KIND
963 #undef OPENMP_DEFAULT_KIND
964 #undef OPENMP_DIRECTIVE
965 #undef OPENMP_DIRECTIVE_EXT
966 #undef OPENMP_CLAUSE
967 #undef OPENMP_CRITICAL_CLAUSE
968 #undef OPENMP_ORDERED_CLAUSE
969 #undef OPENMP_CANCEL_CLAUSE
970 #undef OPENMP_SINGLE_CLAUSE
971 #undef OPENMP_SECTIONS_CLAUSE
972 #undef OPENMP_PARALLEL_CLAUSE
973 #undef OPENMP_PARALLEL_FOR_CLAUSE
974 #undef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
975 #undef OPENMP_PARALLEL_SECTIONS_CLAUSE
976 #undef OPENMP_TASK_CLAUSE
977 #undef OPENMP_ATOMIC_CLAUSE
978 #undef OPENMP_TARGET_CLAUSE
979 #undef OPENMP_REQUIRES_CLAUSE
980 #undef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND
981 #undef OPENMP_TARGET_DATA_CLAUSE
982 #undef OPENMP_TARGET_ENTER_DATA_CLAUSE
983 #undef OPENMP_TARGET_EXIT_DATA_CLAUSE
984 #undef OPENMP_TARGET_PARALLEL_CLAUSE
985 #undef OPENMP_TARGET_PARALLEL_FOR_CLAUSE
986 #undef OPENMP_TEAMS_CLAUSE
987 #undef OPENMP_SIMD_CLAUSE
988 #undef OPENMP_FOR_CLAUSE
989 #undef OPENMP_FOR_SIMD_CLAUSE
990 #undef OPENMP_MAP_KIND
991 #undef OPENMP_MAP_MODIFIER_KIND
992 #undef OPENMP_TO_MODIFIER_KIND
993 #undef OPENMP_FROM_MODIFIER_KIND
994 #undef OPENMP_DISTRIBUTE_CLAUSE
995 #undef OPENMP_DIST_SCHEDULE_KIND
996 #undef OPENMP_DEFAULTMAP_KIND
997 #undef OPENMP_DEFAULTMAP_MODIFIER
998 #undef OPENMP_TARGET_UPDATE_CLAUSE
999 #undef OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE
1000 #undef OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
1001 #undef OPENMP_DISTRIBUTE_SIMD_CLAUSE
1002 #undef OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE
1003 #undef OPENMP_TARGET_SIMD_CLAUSE
1004 #undef OPENMP_TEAMS_DISTRIBUTE_CLAUSE
1005 #undef OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE
1006 #undef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
1007 #undef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
1008 #undef OPENMP_TARGET_TEAMS_CLAUSE
1009 #undef OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE
1010 #undef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
1011 #undef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
1012 #undef OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE