1 //===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 /// This file defines the list of supported OpenMP directives and
12 //===----------------------------------------------------------------------===//
14 #ifndef OPENMP_DIRECTIVE
15 # define OPENMP_DIRECTIVE(Name)
17 #ifndef OPENMP_DIRECTIVE_EXT
18 #define OPENMP_DIRECTIVE_EXT(Name, Str)
21 # define OPENMP_CLAUSE(Name, Class)
23 #ifndef OPENMP_PARALLEL_CLAUSE
24 # define OPENMP_PARALLEL_CLAUSE(Name)
26 #ifndef OPENMP_SIMD_CLAUSE
27 # define OPENMP_SIMD_CLAUSE(Name)
29 #ifndef OPENMP_FOR_CLAUSE
30 # define OPENMP_FOR_CLAUSE(Name)
32 #ifndef OPENMP_FOR_SIMD_CLAUSE
33 # define OPENMP_FOR_SIMD_CLAUSE(Name)
35 #ifndef OPENMP_SECTIONS_CLAUSE
36 # define OPENMP_SECTIONS_CLAUSE(Name)
38 #ifndef OPENMP_SINGLE_CLAUSE
39 # define OPENMP_SINGLE_CLAUSE(Name)
41 #ifndef OPENMP_PARALLEL_FOR_CLAUSE
42 # define OPENMP_PARALLEL_FOR_CLAUSE(Name)
44 #ifndef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
45 # define OPENMP_PARALLEL_FOR_SIMD_CLAUSE(Name)
47 #ifndef OPENMP_PARALLEL_SECTIONS_CLAUSE
48 # define OPENMP_PARALLEL_SECTIONS_CLAUSE(Name)
50 #ifndef OPENMP_TASK_CLAUSE
51 # define OPENMP_TASK_CLAUSE(Name)
53 #ifndef OPENMP_ATOMIC_CLAUSE
54 # define OPENMP_ATOMIC_CLAUSE(Name)
56 #ifndef OPENMP_TARGET_CLAUSE
57 # define OPENMP_TARGET_CLAUSE(Name)
59 #ifndef OPENMP_REQUIRES_CLAUSE
60 # define OPENMP_REQUIRES_CLAUSE(Name)
62 #ifndef OPENMP_TARGET_DATA_CLAUSE
63 # define OPENMP_TARGET_DATA_CLAUSE(Name)
65 #ifndef OPENMP_TARGET_ENTER_DATA_CLAUSE
66 #define OPENMP_TARGET_ENTER_DATA_CLAUSE(Name)
68 #ifndef OPENMP_TARGET_EXIT_DATA_CLAUSE
69 #define OPENMP_TARGET_EXIT_DATA_CLAUSE(Name)
71 #ifndef OPENMP_TARGET_PARALLEL_CLAUSE
72 # define OPENMP_TARGET_PARALLEL_CLAUSE(Name)
74 #ifndef OPENMP_TARGET_PARALLEL_FOR_CLAUSE
75 # define OPENMP_TARGET_PARALLEL_FOR_CLAUSE(Name)
77 #ifndef OPENMP_TARGET_UPDATE_CLAUSE
78 # define OPENMP_TARGET_UPDATE_CLAUSE(Name)
80 #ifndef OPENMP_TEAMS_CLAUSE
81 # define OPENMP_TEAMS_CLAUSE(Name)
83 #ifndef OPENMP_CANCEL_CLAUSE
84 # define OPENMP_CANCEL_CLAUSE(Name)
86 #ifndef OPENMP_ORDERED_CLAUSE
87 # define OPENMP_ORDERED_CLAUSE(Name)
89 #ifndef OPENMP_TASKLOOP_CLAUSE
90 # define OPENMP_TASKLOOP_CLAUSE(Name)
92 #ifndef OPENMP_TASKLOOP_SIMD_CLAUSE
93 # define OPENMP_TASKLOOP_SIMD_CLAUSE(Name)
95 #ifndef OPENMP_CRITICAL_CLAUSE
96 # define OPENMP_CRITICAL_CLAUSE(Name)
98 #ifndef OPENMP_DISTRIBUTE_CLAUSE
99 #define OPENMP_DISTRIBUTE_CLAUSE(Name)
101 #ifndef OPENMP_DEFAULT_KIND
102 # define OPENMP_DEFAULT_KIND(Name)
104 #ifndef OPENMP_PROC_BIND_KIND
105 # define OPENMP_PROC_BIND_KIND(Name)
107 #ifndef OPENMP_SCHEDULE_KIND
108 #define OPENMP_SCHEDULE_KIND(Name)
110 #ifndef OPENMP_SCHEDULE_MODIFIER
111 #define OPENMP_SCHEDULE_MODIFIER(Name)
113 #ifndef OPENMP_DEPEND_KIND
114 #define OPENMP_DEPEND_KIND(Name)
116 #ifndef OPENMP_LINEAR_KIND
117 #define OPENMP_LINEAR_KIND(Name)
119 #ifndef OPENMP_MAP_KIND
120 #define OPENMP_MAP_KIND(Name)
122 #ifndef OPENMP_MAP_MODIFIER_KIND
123 #define OPENMP_MAP_MODIFIER_KIND(Name)
125 #ifndef OPENMP_TO_MODIFIER_KIND
126 #define OPENMP_TO_MODIFIER_KIND(Name)
128 #ifndef OPENMP_FROM_MODIFIER_KIND
129 #define OPENMP_FROM_MODIFIER_KIND(Name)
131 #ifndef OPENMP_DIST_SCHEDULE_KIND
132 #define OPENMP_DIST_SCHEDULE_KIND(Name)
134 #ifndef OPENMP_DEFAULTMAP_KIND
135 #define OPENMP_DEFAULTMAP_KIND(Name)
137 #ifndef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND
138 #define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name)
140 #ifndef OPENMP_DEFAULTMAP_MODIFIER
141 #define OPENMP_DEFAULTMAP_MODIFIER(Name)
143 #ifndef OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE
144 #define OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
146 #ifndef OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
147 #define OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
149 #ifndef OPENMP_DISTRIBUTE_SIMD_CLAUSE
150 #define OPENMP_DISTRIBUTE_SIMD_CLAUSE(Name)
152 #ifndef OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE
153 #define OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(Name)
155 #ifndef OPENMP_TARGET_SIMD_CLAUSE
156 #define OPENMP_TARGET_SIMD_CLAUSE(Name)
158 #ifndef OPENMP_TEAMS_DISTRIBUTE_CLAUSE
159 #define OPENMP_TEAMS_DISTRIBUTE_CLAUSE(Name)
161 #ifndef OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE
162 #define OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(Name)
164 #ifndef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
165 #define OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
167 #ifndef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
168 #define OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
170 #ifndef OPENMP_TARGET_TEAMS_CLAUSE
171 #define OPENMP_TARGET_TEAMS_CLAUSE(Name)
173 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE
174 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(Name)
176 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
177 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
179 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
180 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
182 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE
183 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(Name)
185 #ifndef OPENMP_TASKGROUP_CLAUSE
186 #define OPENMP_TASKGROUP_CLAUSE(Name)
188 #ifndef OPENMP_DECLARE_MAPPER_CLAUSE
189 #define OPENMP_DECLARE_MAPPER_CLAUSE(Name)
191 #ifndef OPENMP_ALLOCATE_CLAUSE
192 # define OPENMP_ALLOCATE_CLAUSE(Name)
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)
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)
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)
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)
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)
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)
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)
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)
374 // Clauses allowed for OpenMP directive 'cancel'.
375 OPENMP_CANCEL_CLAUSE(if)
377 // Static attributes for 'default' clause.
378 OPENMP_DEFAULT_KIND(none)
379 OPENMP_DEFAULT_KIND(shared)
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)
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)
393 // Modifiers for 'schedule' clause.
394 OPENMP_SCHEDULE_MODIFIER(monotonic)
395 OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
396 OPENMP_SCHEDULE_MODIFIER(simd)
398 // Static attributes for 'defaultmap' clause.
399 OPENMP_DEFAULTMAP_KIND(scalar)
401 // Modifiers for 'defaultmap' clause.
402 OPENMP_DEFAULTMAP_MODIFIER(tofrom)
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)
412 // Modifiers for 'linear' clause.
413 OPENMP_LINEAR_KIND(val)
414 OPENMP_LINEAR_KIND(ref)
415 OPENMP_LINEAR_KIND(uval)
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)
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)
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)
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)
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)
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)
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)
508 // Clauses allowed for OpenMP directive 'allocate'.
509 OPENMP_ALLOCATE_CLAUSE(allocator)
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)
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)
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)
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)
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)
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)
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)
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)
593 // Clauses allowed for OpenMP directive 'ordered'.
594 OPENMP_ORDERED_CLAUSE(threads)
595 OPENMP_ORDERED_CLAUSE(simd)
596 OPENMP_ORDERED_CLAUSE(depend)
598 // Map types for 'map' clause.
599 OPENMP_MAP_KIND(alloc)
601 OPENMP_MAP_KIND(from)
602 OPENMP_MAP_KIND(tofrom)
603 OPENMP_MAP_KIND(delete)
604 OPENMP_MAP_KIND(release)
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)
611 // Modifiers for 'to' clause.
612 OPENMP_TO_MODIFIER_KIND(mapper)
614 // Modifiers for 'from' clause.
615 OPENMP_FROM_MODIFIER_KIND(mapper)
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)
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)
659 // Clauses allowed for OpenMP directive 'critical'.
660 OPENMP_CRITICAL_CLAUSE(hint)
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)
670 // Static attributes for 'dist_schedule' clause.
671 OPENMP_DIST_SCHEDULE_KIND(static)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
946 // Clauses allowed for OpenMP directive 'taskgroup'.
947 OPENMP_TASKGROUP_CLAUSE(task_reduction)
948 OPENMP_TASKGROUP_CLAUSE(allocate)
950 // Clauses allowed for OpenMP directive 'declare mapper'.
951 OPENMP_DECLARE_MAPPER_CLAUSE(map)
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
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