Clang Project

clang_source_code/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.
196OPENMP_DIRECTIVE(threadprivate)
197OPENMP_DIRECTIVE(parallel)
198OPENMP_DIRECTIVE(task)
199OPENMP_DIRECTIVE(simd)
200OPENMP_DIRECTIVE(for)
201OPENMP_DIRECTIVE(sections)
202OPENMP_DIRECTIVE(section)
203OPENMP_DIRECTIVE(single)
204OPENMP_DIRECTIVE(master)
205OPENMP_DIRECTIVE(critical)
206OPENMP_DIRECTIVE(taskyield)
207OPENMP_DIRECTIVE(barrier)
208OPENMP_DIRECTIVE(taskwait)
209OPENMP_DIRECTIVE(taskgroup)
210OPENMP_DIRECTIVE(flush)
211OPENMP_DIRECTIVE(ordered)
212OPENMP_DIRECTIVE(atomic)
213OPENMP_DIRECTIVE(target)
214OPENMP_DIRECTIVE(teams)
215OPENMP_DIRECTIVE(cancel)
216OPENMP_DIRECTIVE(requires)
217OPENMP_DIRECTIVE_EXT(target_data, "target data")
218OPENMP_DIRECTIVE_EXT(target_enter_data, "target enter data")
219OPENMP_DIRECTIVE_EXT(target_exit_data, "target exit data")
220OPENMP_DIRECTIVE_EXT(target_parallel, "target parallel")
221OPENMP_DIRECTIVE_EXT(target_parallel_for, "target parallel for")
222OPENMP_DIRECTIVE_EXT(target_update, "target update")
223OPENMP_DIRECTIVE_EXT(parallel_for, "parallel for")
224OPENMP_DIRECTIVE_EXT(parallel_for_simd, "parallel for simd")
225OPENMP_DIRECTIVE_EXT(parallel_sections, "parallel sections")
226OPENMP_DIRECTIVE_EXT(for_simd, "for simd")
227OPENMP_DIRECTIVE_EXT(cancellation_point, "cancellation point")
228OPENMP_DIRECTIVE_EXT(declare_reduction, "declare reduction")
229OPENMP_DIRECTIVE_EXT(declare_mapper, "declare mapper")
230OPENMP_DIRECTIVE_EXT(declare_simd, "declare simd")
231OPENMP_DIRECTIVE(taskloop)
232OPENMP_DIRECTIVE_EXT(taskloop_simd, "taskloop simd")
233OPENMP_DIRECTIVE(distribute)
234OPENMP_DIRECTIVE_EXT(declare_target, "declare target")
235OPENMP_DIRECTIVE_EXT(end_declare_target, "end declare target")
236OPENMP_DIRECTIVE_EXT(distribute_parallel_for, "distribute parallel for")
237OPENMP_DIRECTIVE_EXT(distribute_parallel_for_simd, "distribute parallel for simd")
238OPENMP_DIRECTIVE_EXT(distribute_simd, "distribute simd")
239OPENMP_DIRECTIVE_EXT(target_parallel_for_simd, "target parallel for simd")
240OPENMP_DIRECTIVE_EXT(target_simd, "target simd")
241OPENMP_DIRECTIVE_EXT(teams_distribute, "teams distribute")
242OPENMP_DIRECTIVE_EXT(teams_distribute_simd, "teams distribute simd")
243OPENMP_DIRECTIVE_EXT(teams_distribute_parallel_for_simd, "teams distribute parallel for simd")
244OPENMP_DIRECTIVE_EXT(teams_distribute_parallel_for, "teams distribute parallel for")
245OPENMP_DIRECTIVE_EXT(target_teams, "target teams")
246OPENMP_DIRECTIVE_EXT(target_teams_distribute, "target teams distribute")
247OPENMP_DIRECTIVE_EXT(target_teams_distribute_parallel_for, "target teams distribute parallel for")
248OPENMP_DIRECTIVE_EXT(target_teams_distribute_parallel_for_simd, "target teams distribute parallel for simd")
249OPENMP_DIRECTIVE_EXT(target_teams_distribute_simd, "target teams distribute simd")
250OPENMP_DIRECTIVE(allocate)
251
252// OpenMP clauses.
253OPENMP_CLAUSE(allocator, OMPAllocatorClause)
254OPENMP_CLAUSE(if, OMPIfClause)
255OPENMP_CLAUSE(final, OMPFinalClause)
256OPENMP_CLAUSE(num_threads, OMPNumThreadsClause)
257OPENMP_CLAUSE(safelen, OMPSafelenClause)
258OPENMP_CLAUSE(simdlen, OMPSimdlenClause)
259OPENMP_CLAUSE(collapse, OMPCollapseClause)
260OPENMP_CLAUSE(default, OMPDefaultClause)
261OPENMP_CLAUSE(private, OMPPrivateClause)
262OPENMP_CLAUSE(firstprivate, OMPFirstprivateClause)
263OPENMP_CLAUSE(lastprivate, OMPLastprivateClause)
264OPENMP_CLAUSE(shared,  OMPSharedClause)
265OPENMP_CLAUSE(reduction,  OMPReductionClause)
266OPENMP_CLAUSE(linear,  OMPLinearClause)
267OPENMP_CLAUSE(aligned, OMPAlignedClause)
268OPENMP_CLAUSE(copyin,  OMPCopyinClause)
269OPENMP_CLAUSE(copyprivate,  OMPCopyprivateClause)
270OPENMP_CLAUSE(proc_bind, OMPProcBindClause)
271OPENMP_CLAUSE(schedule, OMPScheduleClause)
272OPENMP_CLAUSE(ordered, OMPOrderedClause)
273OPENMP_CLAUSE(nowait, OMPNowaitClause)
274OPENMP_CLAUSE(untied, OMPUntiedClause)
275OPENMP_CLAUSE(mergeable, OMPMergeableClause)
276OPENMP_CLAUSE(flush, OMPFlushClause)
277OPENMP_CLAUSE(read, OMPReadClause)
278OPENMP_CLAUSE(write, OMPWriteClause)
279OPENMP_CLAUSE(update, OMPUpdateClause)
280OPENMP_CLAUSE(capture, OMPCaptureClause)
281OPENMP_CLAUSE(seq_cst, OMPSeqCstClause)
282OPENMP_CLAUSE(depend, OMPDependClause)
283OPENMP_CLAUSE(device, OMPDeviceClause)
284OPENMP_CLAUSE(threads, OMPThreadsClause)
285OPENMP_CLAUSE(simd, OMPSIMDClause)
286OPENMP_CLAUSE(map, OMPMapClause)
287OPENMP_CLAUSE(num_teams, OMPNumTeamsClause)
288OPENMP_CLAUSE(thread_limit, OMPThreadLimitClause)
289OPENMP_CLAUSE(priority, OMPPriorityClause)
290OPENMP_CLAUSE(grainsize, OMPGrainsizeClause)
291OPENMP_CLAUSE(nogroup, OMPNogroupClause)
292OPENMP_CLAUSE(num_tasks, OMPNumTasksClause)
293OPENMP_CLAUSE(hint, OMPHintClause)
294OPENMP_CLAUSE(dist_schedule, OMPDistScheduleClause)
295OPENMP_CLAUSE(defaultmap, OMPDefaultmapClause)
296OPENMP_CLAUSE(to, OMPToClause)
297OPENMP_CLAUSE(from, OMPFromClause)
298OPENMP_CLAUSE(use_device_ptr, OMPUseDevicePtrClause)
299OPENMP_CLAUSE(is_device_ptr, OMPIsDevicePtrClause)
300OPENMP_CLAUSE(task_reduction,  OMPTaskReductionClause)
301OPENMP_CLAUSE(in_reduction,  OMPInReductionClause)
302OPENMP_CLAUSE(unified_address, OMPUnifiedAddressClause)
303OPENMP_CLAUSE(unified_shared_memory, OMPUnifiedSharedMemoryClause)
304OPENMP_CLAUSE(reverse_offload, OMPReverseOffloadClause)
305OPENMP_CLAUSE(dynamic_allocators, OMPDynamicAllocatorsClause)
306OPENMP_CLAUSE(atomic_default_mem_order, OMPAtomicDefaultMemOrderClause)
307OPENMP_CLAUSE(allocate, OMPAllocateClause)
308
309// Clauses allowed for OpenMP directive 'parallel'.
310OPENMP_PARALLEL_CLAUSE(if)
311OPENMP_PARALLEL_CLAUSE(num_threads)
312OPENMP_PARALLEL_CLAUSE(default)
313OPENMP_PARALLEL_CLAUSE(proc_bind)
314OPENMP_PARALLEL_CLAUSE(private)
315OPENMP_PARALLEL_CLAUSE(firstprivate)
316OPENMP_PARALLEL_CLAUSE(shared)
317OPENMP_PARALLEL_CLAUSE(reduction)
318OPENMP_PARALLEL_CLAUSE(copyin)
319OPENMP_PARALLEL_CLAUSE(allocate)
320
321// Clauses allowed for directive 'omp simd'.
322OPENMP_SIMD_CLAUSE(private)
323OPENMP_SIMD_CLAUSE(lastprivate)
324OPENMP_SIMD_CLAUSE(linear)
325OPENMP_SIMD_CLAUSE(aligned)
326OPENMP_SIMD_CLAUSE(safelen)
327OPENMP_SIMD_CLAUSE(simdlen)
328OPENMP_SIMD_CLAUSE(collapse)
329OPENMP_SIMD_CLAUSE(reduction)
330OPENMP_SIMD_CLAUSE(allocate)
331
332// Clauses allowed for directive 'omp for'.
333OPENMP_FOR_CLAUSE(private)
334OPENMP_FOR_CLAUSE(lastprivate)
335OPENMP_FOR_CLAUSE(firstprivate)
336OPENMP_FOR_CLAUSE(reduction)
337OPENMP_FOR_CLAUSE(collapse)
338OPENMP_FOR_CLAUSE(schedule)
339OPENMP_FOR_CLAUSE(ordered)
340OPENMP_FOR_CLAUSE(nowait)
341OPENMP_FOR_CLAUSE(linear)
342OPENMP_FOR_CLAUSE(allocate)
343
344// Clauses allowed for directive 'omp for simd'.
345OPENMP_FOR_SIMD_CLAUSE(private)
346OPENMP_FOR_SIMD_CLAUSE(firstprivate)
347OPENMP_FOR_SIMD_CLAUSE(lastprivate)
348OPENMP_FOR_SIMD_CLAUSE(reduction)
349OPENMP_FOR_SIMD_CLAUSE(schedule)
350OPENMP_FOR_SIMD_CLAUSE(collapse)
351OPENMP_FOR_SIMD_CLAUSE(nowait)
352OPENMP_FOR_SIMD_CLAUSE(safelen)
353OPENMP_FOR_SIMD_CLAUSE(simdlen)
354OPENMP_FOR_SIMD_CLAUSE(linear)
355OPENMP_FOR_SIMD_CLAUSE(aligned)
356OPENMP_FOR_SIMD_CLAUSE(ordered)
357OPENMP_FOR_SIMD_CLAUSE(allocate)
358
359// Clauses allowed for OpenMP directive 'omp sections'.
360OPENMP_SECTIONS_CLAUSE(private)
361OPENMP_SECTIONS_CLAUSE(lastprivate)
362OPENMP_SECTIONS_CLAUSE(firstprivate)
363OPENMP_SECTIONS_CLAUSE(reduction)
364OPENMP_SECTIONS_CLAUSE(nowait)
365OPENMP_SECTIONS_CLAUSE(allocate)
366
367// Clauses allowed for directive 'omp single'.
368OPENMP_SINGLE_CLAUSE(private)
369OPENMP_SINGLE_CLAUSE(firstprivate)
370OPENMP_SINGLE_CLAUSE(copyprivate)
371OPENMP_SINGLE_CLAUSE(nowait)
372OPENMP_SINGLE_CLAUSE(allocate)
373
374// Clauses allowed for OpenMP directive 'cancel'.
375OPENMP_CANCEL_CLAUSE(if)
376
377// Static attributes for 'default' clause.
378OPENMP_DEFAULT_KIND(none)
379OPENMP_DEFAULT_KIND(shared)
380
381// Static attributes for 'proc_bind' clause.
382OPENMP_PROC_BIND_KIND(master)
383OPENMP_PROC_BIND_KIND(close)
384OPENMP_PROC_BIND_KIND(spread)
385
386// Static attributes for 'schedule' clause.
387OPENMP_SCHEDULE_KIND(static)
388OPENMP_SCHEDULE_KIND(dynamic)
389OPENMP_SCHEDULE_KIND(guided)
390OPENMP_SCHEDULE_KIND(auto)
391OPENMP_SCHEDULE_KIND(runtime)
392
393// Modifiers for 'schedule' clause.
394OPENMP_SCHEDULE_MODIFIER(monotonic)
395OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
396OPENMP_SCHEDULE_MODIFIER(simd)
397
398// Static attributes for 'defaultmap' clause.
399OPENMP_DEFAULTMAP_KIND(scalar)
400
401// Modifiers for 'defaultmap' clause.
402OPENMP_DEFAULTMAP_MODIFIER(tofrom)
403
404// Static attributes for 'depend' clause.
405OPENMP_DEPEND_KIND(in)
406OPENMP_DEPEND_KIND(out)
407OPENMP_DEPEND_KIND(inout)
408OPENMP_DEPEND_KIND(mutexinoutset)
409OPENMP_DEPEND_KIND(source)
410OPENMP_DEPEND_KIND(sink)
411
412// Modifiers for 'linear' clause.
413OPENMP_LINEAR_KIND(val)
414OPENMP_LINEAR_KIND(ref)
415OPENMP_LINEAR_KIND(uval)
416
417// Clauses allowed for OpenMP directive 'parallel for'.
418OPENMP_PARALLEL_FOR_CLAUSE(if)
419OPENMP_PARALLEL_FOR_CLAUSE(num_threads)
420OPENMP_PARALLEL_FOR_CLAUSE(default)
421OPENMP_PARALLEL_FOR_CLAUSE(proc_bind)
422OPENMP_PARALLEL_FOR_CLAUSE(private)
423OPENMP_PARALLEL_FOR_CLAUSE(firstprivate)
424OPENMP_PARALLEL_FOR_CLAUSE(shared)
425OPENMP_PARALLEL_FOR_CLAUSE(reduction)
426OPENMP_PARALLEL_FOR_CLAUSE(copyin)
427OPENMP_PARALLEL_FOR_CLAUSE(lastprivate)
428OPENMP_PARALLEL_FOR_CLAUSE(collapse)
429OPENMP_PARALLEL_FOR_CLAUSE(schedule)
430OPENMP_PARALLEL_FOR_CLAUSE(ordered)
431OPENMP_PARALLEL_FOR_CLAUSE(linear)
432OPENMP_PARALLEL_FOR_CLAUSE(allocate)
433
434// Clauses allowed for OpenMP directive 'parallel for simd'.
435OPENMP_PARALLEL_FOR_SIMD_CLAUSE(if)
436OPENMP_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
437OPENMP_PARALLEL_FOR_SIMD_CLAUSE(default)
438OPENMP_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
439OPENMP_PARALLEL_FOR_SIMD_CLAUSE(private)
440OPENMP_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
441OPENMP_PARALLEL_FOR_SIMD_CLAUSE(shared)
442OPENMP_PARALLEL_FOR_SIMD_CLAUSE(reduction)
443OPENMP_PARALLEL_FOR_SIMD_CLAUSE(copyin)
444OPENMP_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
445OPENMP_PARALLEL_FOR_SIMD_CLAUSE(collapse)
446OPENMP_PARALLEL_FOR_SIMD_CLAUSE(schedule)
447OPENMP_PARALLEL_FOR_SIMD_CLAUSE(safelen)
448OPENMP_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
449OPENMP_PARALLEL_FOR_SIMD_CLAUSE(linear)
450OPENMP_PARALLEL_FOR_SIMD_CLAUSE(aligned)
451OPENMP_PARALLEL_FOR_SIMD_CLAUSE(ordered)
452OPENMP_PARALLEL_FOR_SIMD_CLAUSE(allocate)
453
454// Clauses allowed for OpenMP directive 'parallel sections'.
455OPENMP_PARALLEL_SECTIONS_CLAUSE(if)
456OPENMP_PARALLEL_SECTIONS_CLAUSE(num_threads)
457OPENMP_PARALLEL_SECTIONS_CLAUSE(default)
458OPENMP_PARALLEL_SECTIONS_CLAUSE(proc_bind)
459OPENMP_PARALLEL_SECTIONS_CLAUSE(private)
460OPENMP_PARALLEL_SECTIONS_CLAUSE(firstprivate)
461OPENMP_PARALLEL_SECTIONS_CLAUSE(shared)
462OPENMP_PARALLEL_SECTIONS_CLAUSE(reduction)
463OPENMP_PARALLEL_SECTIONS_CLAUSE(copyin)
464OPENMP_PARALLEL_SECTIONS_CLAUSE(lastprivate)
465OPENMP_PARALLEL_SECTIONS_CLAUSE(allocate)
466
467// Clauses allowed for OpenMP directive 'task'.
468OPENMP_TASK_CLAUSE(if)
469OPENMP_TASK_CLAUSE(final)
470OPENMP_TASK_CLAUSE(default)
471OPENMP_TASK_CLAUSE(private)
472OPENMP_TASK_CLAUSE(firstprivate)
473OPENMP_TASK_CLAUSE(shared)
474OPENMP_TASK_CLAUSE(untied)
475OPENMP_TASK_CLAUSE(mergeable)
476OPENMP_TASK_CLAUSE(depend)
477OPENMP_TASK_CLAUSE(priority)
478OPENMP_TASK_CLAUSE(in_reduction)
479OPENMP_TASK_CLAUSE(allocate)
480
481// Clauses allowed for OpenMP directive 'atomic'.
482OPENMP_ATOMIC_CLAUSE(read)
483OPENMP_ATOMIC_CLAUSE(write)
484OPENMP_ATOMIC_CLAUSE(update)
485OPENMP_ATOMIC_CLAUSE(capture)
486OPENMP_ATOMIC_CLAUSE(seq_cst)
487
488// Clauses allowed for OpenMP directive 'target'.
489OPENMP_TARGET_CLAUSE(if)
490OPENMP_TARGET_CLAUSE(device)
491OPENMP_TARGET_CLAUSE(map)
492OPENMP_TARGET_CLAUSE(private)
493OPENMP_TARGET_CLAUSE(nowait)
494OPENMP_TARGET_CLAUSE(depend)
495OPENMP_TARGET_CLAUSE(defaultmap)
496OPENMP_TARGET_CLAUSE(firstprivate)
497OPENMP_TARGET_CLAUSE(is_device_ptr)
498OPENMP_TARGET_CLAUSE(reduction)
499OPENMP_TARGET_CLAUSE(allocate)
500
501// Clauses allowed for OpenMP directive 'requires'.
502OPENMP_REQUIRES_CLAUSE(unified_address)
503OPENMP_REQUIRES_CLAUSE(unified_shared_memory)
504OPENMP_REQUIRES_CLAUSE(reverse_offload)
505OPENMP_REQUIRES_CLAUSE(dynamic_allocators)
506OPENMP_REQUIRES_CLAUSE(atomic_default_mem_order)
507
508// Clauses allowed for OpenMP directive 'allocate'.
509OPENMP_ALLOCATE_CLAUSE(allocator)
510
511// Modifiers for 'atomic_default_mem_order' clause.
512OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(seq_cst)
513OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(acq_rel)
514OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(relaxed)
515
516// Clauses allowed for OpenMP directive 'target data'.
517OPENMP_TARGET_DATA_CLAUSE(if)
518OPENMP_TARGET_DATA_CLAUSE(device)
519OPENMP_TARGET_DATA_CLAUSE(map)
520OPENMP_TARGET_DATA_CLAUSE(use_device_ptr)
521
522// Clauses allowed for OpenMP directive 'target enter data'.
523OPENMP_TARGET_ENTER_DATA_CLAUSE(if)
524OPENMP_TARGET_ENTER_DATA_CLAUSE(device)
525OPENMP_TARGET_ENTER_DATA_CLAUSE(map)
526OPENMP_TARGET_ENTER_DATA_CLAUSE(nowait)
527OPENMP_TARGET_ENTER_DATA_CLAUSE(depend)
528
529// Clauses allowed for OpenMP directive 'target exit data'.
530OPENMP_TARGET_EXIT_DATA_CLAUSE(if)
531OPENMP_TARGET_EXIT_DATA_CLAUSE(device)
532OPENMP_TARGET_EXIT_DATA_CLAUSE(map)
533OPENMP_TARGET_EXIT_DATA_CLAUSE(nowait)
534OPENMP_TARGET_EXIT_DATA_CLAUSE(depend)
535
536// Clauses allowed for OpenMP directive 'target parallel'.
537OPENMP_TARGET_PARALLEL_CLAUSE(if)
538OPENMP_TARGET_PARALLEL_CLAUSE(device)
539OPENMP_TARGET_PARALLEL_CLAUSE(map)
540OPENMP_TARGET_PARALLEL_CLAUSE(private)
541OPENMP_TARGET_PARALLEL_CLAUSE(firstprivate)
542OPENMP_TARGET_PARALLEL_CLAUSE(nowait)
543OPENMP_TARGET_PARALLEL_CLAUSE(depend)
544OPENMP_TARGET_PARALLEL_CLAUSE(defaultmap)
545OPENMP_TARGET_PARALLEL_CLAUSE(num_threads)
546OPENMP_TARGET_PARALLEL_CLAUSE(default)
547OPENMP_TARGET_PARALLEL_CLAUSE(proc_bind)
548OPENMP_TARGET_PARALLEL_CLAUSE(shared)
549OPENMP_TARGET_PARALLEL_CLAUSE(reduction)
550OPENMP_TARGET_PARALLEL_CLAUSE(is_device_ptr)
551OPENMP_TARGET_PARALLEL_CLAUSE(allocate)
552
553// Clauses allowed for OpenMP directive 'target parallel for'.
554OPENMP_TARGET_PARALLEL_FOR_CLAUSE(if)
555OPENMP_TARGET_PARALLEL_FOR_CLAUSE(device)
556OPENMP_TARGET_PARALLEL_FOR_CLAUSE(map)
557OPENMP_TARGET_PARALLEL_FOR_CLAUSE(private)
558OPENMP_TARGET_PARALLEL_FOR_CLAUSE(firstprivate)
559OPENMP_TARGET_PARALLEL_FOR_CLAUSE(lastprivate)
560OPENMP_TARGET_PARALLEL_FOR_CLAUSE(nowait)
561OPENMP_TARGET_PARALLEL_FOR_CLAUSE(depend)
562OPENMP_TARGET_PARALLEL_FOR_CLAUSE(defaultmap)
563OPENMP_TARGET_PARALLEL_FOR_CLAUSE(num_threads)
564OPENMP_TARGET_PARALLEL_FOR_CLAUSE(default)
565OPENMP_TARGET_PARALLEL_FOR_CLAUSE(proc_bind)
566OPENMP_TARGET_PARALLEL_FOR_CLAUSE(shared)
567OPENMP_TARGET_PARALLEL_FOR_CLAUSE(reduction)
568OPENMP_TARGET_PARALLEL_FOR_CLAUSE(collapse)
569OPENMP_TARGET_PARALLEL_FOR_CLAUSE(schedule)
570OPENMP_TARGET_PARALLEL_FOR_CLAUSE(ordered)
571OPENMP_TARGET_PARALLEL_FOR_CLAUSE(linear)
572OPENMP_TARGET_PARALLEL_FOR_CLAUSE(is_device_ptr)
573OPENMP_TARGET_PARALLEL_FOR_CLAUSE(allocate)
574
575// Clauses allowed for OpenMP directive 'target update'.
576OPENMP_TARGET_UPDATE_CLAUSE(if)
577OPENMP_TARGET_UPDATE_CLAUSE(device)
578OPENMP_TARGET_UPDATE_CLAUSE(to)
579OPENMP_TARGET_UPDATE_CLAUSE(from)
580OPENMP_TARGET_UPDATE_CLAUSE(nowait)
581OPENMP_TARGET_UPDATE_CLAUSE(depend)
582
583// Clauses allowed for OpenMP directive 'teams'.
584OPENMP_TEAMS_CLAUSE(default)
585OPENMP_TEAMS_CLAUSE(private)
586OPENMP_TEAMS_CLAUSE(firstprivate)
587OPENMP_TEAMS_CLAUSE(shared)
588OPENMP_TEAMS_CLAUSE(reduction)
589OPENMP_TEAMS_CLAUSE(num_teams)
590OPENMP_TEAMS_CLAUSE(thread_limit)
591OPENMP_TEAMS_CLAUSE(allocate)
592
593// Clauses allowed for OpenMP directive 'ordered'.
594OPENMP_ORDERED_CLAUSE(threads)
595OPENMP_ORDERED_CLAUSE(simd)
596OPENMP_ORDERED_CLAUSE(depend)
597
598// Map types for 'map' clause.
599OPENMP_MAP_KIND(alloc)
600OPENMP_MAP_KIND(to)
601OPENMP_MAP_KIND(from)
602OPENMP_MAP_KIND(tofrom)
603OPENMP_MAP_KIND(delete)
604OPENMP_MAP_KIND(release)
605
606// Map-type-modifiers for 'map' clause.
607OPENMP_MAP_MODIFIER_KIND(always)
608OPENMP_MAP_MODIFIER_KIND(close)
609OPENMP_MAP_MODIFIER_KIND(mapper)
610
611// Modifiers for 'to' clause.
612OPENMP_TO_MODIFIER_KIND(mapper)
613
614// Modifiers for 'from' clause.
615OPENMP_FROM_MODIFIER_KIND(mapper)
616
617// Clauses allowed for OpenMP directive 'taskloop'.
618OPENMP_TASKLOOP_CLAUSE(if)
619OPENMP_TASKLOOP_CLAUSE(shared)
620OPENMP_TASKLOOP_CLAUSE(private)
621OPENMP_TASKLOOP_CLAUSE(firstprivate)
622OPENMP_TASKLOOP_CLAUSE(lastprivate)
623OPENMP_TASKLOOP_CLAUSE(default)
624OPENMP_TASKLOOP_CLAUSE(collapse)
625OPENMP_TASKLOOP_CLAUSE(final)
626OPENMP_TASKLOOP_CLAUSE(untied)
627OPENMP_TASKLOOP_CLAUSE(mergeable)
628OPENMP_TASKLOOP_CLAUSE(priority)
629OPENMP_TASKLOOP_CLAUSE(grainsize)
630OPENMP_TASKLOOP_CLAUSE(nogroup)
631OPENMP_TASKLOOP_CLAUSE(num_tasks)
632OPENMP_TASKLOOP_CLAUSE(reduction)
633OPENMP_TASKLOOP_CLAUSE(in_reduction)
634OPENMP_TASKLOOP_CLAUSE(allocate)
635
636// Clauses allowed for OpenMP directive 'taskloop simd'.
637OPENMP_TASKLOOP_SIMD_CLAUSE(if)
638OPENMP_TASKLOOP_SIMD_CLAUSE(shared)
639OPENMP_TASKLOOP_SIMD_CLAUSE(private)
640OPENMP_TASKLOOP_SIMD_CLAUSE(firstprivate)
641OPENMP_TASKLOOP_SIMD_CLAUSE(lastprivate)
642OPENMP_TASKLOOP_SIMD_CLAUSE(default)
643OPENMP_TASKLOOP_SIMD_CLAUSE(collapse)
644OPENMP_TASKLOOP_SIMD_CLAUSE(final)
645OPENMP_TASKLOOP_SIMD_CLAUSE(untied)
646OPENMP_TASKLOOP_SIMD_CLAUSE(mergeable)
647OPENMP_TASKLOOP_SIMD_CLAUSE(priority)
648OPENMP_TASKLOOP_SIMD_CLAUSE(linear)
649OPENMP_TASKLOOP_SIMD_CLAUSE(aligned)
650OPENMP_TASKLOOP_SIMD_CLAUSE(safelen)
651OPENMP_TASKLOOP_SIMD_CLAUSE(simdlen)
652OPENMP_TASKLOOP_SIMD_CLAUSE(grainsize)
653OPENMP_TASKLOOP_SIMD_CLAUSE(nogroup)
654OPENMP_TASKLOOP_SIMD_CLAUSE(num_tasks)
655OPENMP_TASKLOOP_SIMD_CLAUSE(reduction)
656OPENMP_TASKLOOP_SIMD_CLAUSE(in_reduction)
657OPENMP_TASKLOOP_SIMD_CLAUSE(allocate)
658
659// Clauses allowed for OpenMP directive 'critical'.
660OPENMP_CRITICAL_CLAUSE(hint)
661
662// Clauses allowed for OpenMP directive 'distribute'
663OPENMP_DISTRIBUTE_CLAUSE(private)
664OPENMP_DISTRIBUTE_CLAUSE(firstprivate)
665OPENMP_DISTRIBUTE_CLAUSE(lastprivate)
666OPENMP_DISTRIBUTE_CLAUSE(collapse)
667OPENMP_DISTRIBUTE_CLAUSE(dist_schedule)
668OPENMP_DISTRIBUTE_CLAUSE(allocate)
669
670// Static attributes for 'dist_schedule' clause.
671OPENMP_DIST_SCHEDULE_KIND(static)
672
673// Clauses allowed for OpenMP directive 'distribute parallel for'
674OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
675OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
676OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
677OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
678OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
679OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
680OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
681OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
682OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
683OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
684OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
685OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(copyin)
686OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
687OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(allocate)
688
689// Clauses allowed for OpenMP directive 'distribute parallel for simd'
690OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
691OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
692OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
693OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
694OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
695OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
696OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
697OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
698OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
699OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
700OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
701OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(copyin)
702OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
703OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
704OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
705OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
706OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
707OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(allocate)
708
709// Clauses allowed for OpenMP directive 'distribute simd'
710OPENMP_DISTRIBUTE_SIMD_CLAUSE(private)
711OPENMP_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
712OPENMP_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
713OPENMP_DISTRIBUTE_SIMD_CLAUSE(collapse)
714OPENMP_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
715OPENMP_DISTRIBUTE_SIMD_CLAUSE(linear)
716OPENMP_DISTRIBUTE_SIMD_CLAUSE(aligned)
717OPENMP_DISTRIBUTE_SIMD_CLAUSE(safelen)
718OPENMP_DISTRIBUTE_SIMD_CLAUSE(simdlen)
719OPENMP_DISTRIBUTE_SIMD_CLAUSE(reduction)
720OPENMP_DISTRIBUTE_SIMD_CLAUSE(allocate)
721
722// Clauses allowed for OpenMP directive 'target parallel for simd'.
723OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(if)
724OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(device)
725OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(map)
726OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(private)
727OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
728OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
729OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(nowait)
730OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(depend)
731OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(defaultmap)
732OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
733OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(default)
734OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
735OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(shared)
736OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(reduction)
737OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(collapse)
738OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(schedule)
739OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(ordered)
740OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(linear)
741OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(safelen)
742OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
743OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(aligned)
744OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(is_device_ptr)
745OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(allocate)
746
747// Clauses allowed for OpenMP directive 'target simd'.
748OPENMP_TARGET_SIMD_CLAUSE(if)
749OPENMP_TARGET_SIMD_CLAUSE(device)
750OPENMP_TARGET_SIMD_CLAUSE(map)
751OPENMP_TARGET_SIMD_CLAUSE(private)
752OPENMP_TARGET_SIMD_CLAUSE(nowait)
753OPENMP_TARGET_SIMD_CLAUSE(depend)
754OPENMP_TARGET_SIMD_CLAUSE(defaultmap)
755OPENMP_TARGET_SIMD_CLAUSE(firstprivate)
756OPENMP_TARGET_SIMD_CLAUSE(is_device_ptr)
757OPENMP_TARGET_SIMD_CLAUSE(lastprivate)
758OPENMP_TARGET_SIMD_CLAUSE(linear)
759OPENMP_TARGET_SIMD_CLAUSE(aligned)
760OPENMP_TARGET_SIMD_CLAUSE(safelen)
761OPENMP_TARGET_SIMD_CLAUSE(simdlen)
762OPENMP_TARGET_SIMD_CLAUSE(collapse)
763OPENMP_TARGET_SIMD_CLAUSE(reduction)
764OPENMP_TARGET_SIMD_CLAUSE(allocate)
765
766// Clauses allowed for OpenMP directive 'teams distribute'.
767OPENMP_TEAMS_DISTRIBUTE_CLAUSE(default)
768OPENMP_TEAMS_DISTRIBUTE_CLAUSE(private)
769OPENMP_TEAMS_DISTRIBUTE_CLAUSE(firstprivate)
770OPENMP_TEAMS_DISTRIBUTE_CLAUSE(shared)
771OPENMP_TEAMS_DISTRIBUTE_CLAUSE(reduction)
772OPENMP_TEAMS_DISTRIBUTE_CLAUSE(num_teams)
773OPENMP_TEAMS_DISTRIBUTE_CLAUSE(thread_limit)
774OPENMP_TEAMS_DISTRIBUTE_CLAUSE(lastprivate)
775OPENMP_TEAMS_DISTRIBUTE_CLAUSE(collapse)
776OPENMP_TEAMS_DISTRIBUTE_CLAUSE(dist_schedule)
777OPENMP_TEAMS_DISTRIBUTE_CLAUSE(allocate)
778
779// Clauses allowed for OpenMP directive 'teams distribute simd'
780OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(default)
781OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(private)
782OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
783OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(shared)
784OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(reduction)
785OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(num_teams)
786OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(thread_limit)
787OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
788OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(collapse)
789OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
790OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(linear)
791OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(aligned)
792OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(safelen)
793OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(simdlen)
794OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(allocate)
795
796// Clauses allowed for OpenMP directive 'teams distribute parallel for simd'
797OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
798OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
799OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
800OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
801OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
802OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
803OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
804OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
805OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
806OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
807OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
808OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
809OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
810OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
811OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
812OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
813OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_teams)
814OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(thread_limit)
815OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(allocate)
816
817// Clauses allowed for OpenMP directive 'teams distribute parallel for'
818OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
819OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
820OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
821OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
822OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
823OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
824OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
825OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
826OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
827OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
828OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
829OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
830OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_teams)
831OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(thread_limit)
832OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(copyin)
833OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(allocate)
834
835// Clauses allowed for OpenMP directive 'target teams'.
836OPENMP_TARGET_TEAMS_CLAUSE(if)
837OPENMP_TARGET_TEAMS_CLAUSE(device)
838OPENMP_TARGET_TEAMS_CLAUSE(map)
839OPENMP_TARGET_TEAMS_CLAUSE(private)
840OPENMP_TARGET_TEAMS_CLAUSE(nowait)
841OPENMP_TARGET_TEAMS_CLAUSE(depend)
842OPENMP_TARGET_TEAMS_CLAUSE(defaultmap)
843OPENMP_TARGET_TEAMS_CLAUSE(firstprivate)
844OPENMP_TARGET_TEAMS_CLAUSE(is_device_ptr)
845OPENMP_TARGET_TEAMS_CLAUSE(default)
846OPENMP_TARGET_TEAMS_CLAUSE(shared)
847OPENMP_TARGET_TEAMS_CLAUSE(reduction)
848OPENMP_TARGET_TEAMS_CLAUSE(num_teams)
849OPENMP_TARGET_TEAMS_CLAUSE(thread_limit)
850OPENMP_TARGET_TEAMS_CLAUSE(allocate)
851
852// Clauses allowed for OpenMP directive 'target teams distribute'.
853OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(if)
854OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(device)
855OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(map)
856OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(private)
857OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(nowait)
858OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(depend)
859OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(defaultmap)
860OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(firstprivate)
861OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(is_device_ptr)
862OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(default)
863OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(shared)
864OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(reduction)
865OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(num_teams)
866OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(thread_limit)
867OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(lastprivate)
868OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(collapse)
869OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(dist_schedule)
870OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(allocate)
871
872// Clauses allowed for OpenMP directive 'target teams distribute parallel for'.
873OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
874OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(device)
875OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(map)
876OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
877OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(nowait)
878OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(depend)
879OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(defaultmap)
880OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
881OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(is_device_ptr)
882OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
883OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
884OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
885OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_teams)
886OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(thread_limit)
887OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
888OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
889OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
890OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
891OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
892OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
893OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(allocate)
894
895// Clauses allowed for OpenMP directive
896// 'target teams distribute parallel for simd'.
897OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
898OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(device)
899OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(map)
900OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
901OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(nowait)
902OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(depend)
903OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(defaultmap)
904OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
905OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(is_device_ptr)
906OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
907OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
908OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
909OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_teams)
910OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(thread_limit)
911OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
912OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
913OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
914OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
915OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
916OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
917OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
918OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
919OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
920OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
921OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(allocate)
922
923// Clauses allowed for OpenMP directive 'target teams distribute simd'.
924OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(if)
925OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(device)
926OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(map)
927OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(private)
928OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(nowait)
929OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(depend)
930OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(defaultmap)
931OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
932OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
933OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(is_device_ptr)
934OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(shared)
935OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(reduction)
936OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(num_teams)
937OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(thread_limit)
938OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(collapse)
939OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
940OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(linear)
941OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(aligned)
942OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(safelen)
943OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(simdlen)
944OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(allocate)
945
946// Clauses allowed for OpenMP directive 'taskgroup'.
947OPENMP_TASKGROUP_CLAUSE(task_reduction)
948OPENMP_TASKGROUP_CLAUSE(allocate)
949
950// Clauses allowed for OpenMP directive 'declare mapper'.
951OPENMP_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
1013