1#ifdef GEN_FLANG_DIRECTIVE_CLAUSE_SETS
2#undef GEN_FLANG_DIRECTIVE_CLAUSE_SETS
3
4namespace llvm {
5namespace omp {
6
7// Sets for allocate
8
9static OmpClauseSet allowedClauses_OMPD_allocate {
10};
11
12static OmpClauseSet allowedOnceClauses_OMPD_allocate {
13 Clause::OMPC_align,
14 Clause::OMPC_allocator,
15};
16
17static OmpClauseSet allowedExclusiveClauses_OMPD_allocate {
18};
19
20static OmpClauseSet requiredClauses_OMPD_allocate {
21};
22
23// Sets for allocators
24
25static OmpClauseSet allowedClauses_OMPD_allocators {
26 Clause::OMPC_allocate,
27};
28
29static OmpClauseSet allowedOnceClauses_OMPD_allocators {
30};
31
32static OmpClauseSet allowedExclusiveClauses_OMPD_allocators {
33};
34
35static OmpClauseSet requiredClauses_OMPD_allocators {
36};
37
38// Sets for assume
39
40static OmpClauseSet allowedClauses_OMPD_assume {
41};
42
43static OmpClauseSet allowedOnceClauses_OMPD_assume {
44 Clause::OMPC_absent,
45 Clause::OMPC_contains,
46 Clause::OMPC_holds,
47 Clause::OMPC_no_openmp,
48 Clause::OMPC_no_openmp_routines,
49 Clause::OMPC_no_parallelism,
50 Clause::OMPC_no_openmp_constructs,
51};
52
53static OmpClauseSet allowedExclusiveClauses_OMPD_assume {
54};
55
56static OmpClauseSet requiredClauses_OMPD_assume {
57};
58
59// Sets for assumes
60
61static OmpClauseSet allowedClauses_OMPD_assumes {
62};
63
64static OmpClauseSet allowedOnceClauses_OMPD_assumes {
65 Clause::OMPC_absent,
66 Clause::OMPC_contains,
67 Clause::OMPC_holds,
68 Clause::OMPC_no_openmp,
69 Clause::OMPC_no_openmp_routines,
70 Clause::OMPC_no_parallelism,
71};
72
73static OmpClauseSet allowedExclusiveClauses_OMPD_assumes {
74};
75
76static OmpClauseSet requiredClauses_OMPD_assumes {
77};
78
79// Sets for atomic
80
81static OmpClauseSet allowedClauses_OMPD_atomic {
82};
83
84static OmpClauseSet allowedOnceClauses_OMPD_atomic {
85 Clause::OMPC_acq_rel,
86 Clause::OMPC_acquire,
87 Clause::OMPC_capture,
88 Clause::OMPC_compare,
89 Clause::OMPC_fail,
90 Clause::OMPC_hint,
91 Clause::OMPC_read,
92 Clause::OMPC_relaxed,
93 Clause::OMPC_release,
94 Clause::OMPC_seq_cst,
95 Clause::OMPC_update,
96 Clause::OMPC_weak,
97 Clause::OMPC_write,
98};
99
100static OmpClauseSet allowedExclusiveClauses_OMPD_atomic {
101};
102
103static OmpClauseSet requiredClauses_OMPD_atomic {
104};
105
106// Sets for barrier
107
108static OmpClauseSet allowedClauses_OMPD_barrier {
109};
110
111static OmpClauseSet allowedOnceClauses_OMPD_barrier {
112};
113
114static OmpClauseSet allowedExclusiveClauses_OMPD_barrier {
115};
116
117static OmpClauseSet requiredClauses_OMPD_barrier {
118};
119
120// Sets for begin assumes
121
122static OmpClauseSet allowedClauses_OMPD_begin_assumes {
123};
124
125static OmpClauseSet allowedOnceClauses_OMPD_begin_assumes {
126 Clause::OMPC_absent,
127 Clause::OMPC_contains,
128 Clause::OMPC_holds,
129 Clause::OMPC_no_openmp,
130 Clause::OMPC_no_openmp_routines,
131 Clause::OMPC_no_parallelism,
132};
133
134static OmpClauseSet allowedExclusiveClauses_OMPD_begin_assumes {
135};
136
137static OmpClauseSet requiredClauses_OMPD_begin_assumes {
138};
139
140// Sets for begin declare target
141
142static OmpClauseSet allowedClauses_OMPD_begin_declare_target {
143 Clause::OMPC_device_type,
144 Clause::OMPC_indirect,
145 Clause::OMPC_link,
146 Clause::OMPC_to,
147};
148
149static OmpClauseSet allowedOnceClauses_OMPD_begin_declare_target {
150};
151
152static OmpClauseSet allowedExclusiveClauses_OMPD_begin_declare_target {
153};
154
155static OmpClauseSet requiredClauses_OMPD_begin_declare_target {
156};
157
158// Sets for begin declare variant
159
160static OmpClauseSet allowedClauses_OMPD_begin_declare_variant {
161};
162
163static OmpClauseSet allowedOnceClauses_OMPD_begin_declare_variant {
164};
165
166static OmpClauseSet allowedExclusiveClauses_OMPD_begin_declare_variant {
167};
168
169static OmpClauseSet requiredClauses_OMPD_begin_declare_variant {
170};
171
172// Sets for cancel
173
174static OmpClauseSet allowedClauses_OMPD_cancel {
175};
176
177static OmpClauseSet allowedOnceClauses_OMPD_cancel {
178 Clause::OMPC_cancellation_construct_type,
179 Clause::OMPC_if,
180};
181
182static OmpClauseSet allowedExclusiveClauses_OMPD_cancel {
183};
184
185static OmpClauseSet requiredClauses_OMPD_cancel {
186};
187
188// Sets for cancellation point
189
190static OmpClauseSet allowedClauses_OMPD_cancellation_point {
191};
192
193static OmpClauseSet allowedOnceClauses_OMPD_cancellation_point {
194 Clause::OMPC_cancellation_construct_type,
195};
196
197static OmpClauseSet allowedExclusiveClauses_OMPD_cancellation_point {
198};
199
200static OmpClauseSet requiredClauses_OMPD_cancellation_point {
201};
202
203// Sets for critical
204
205static OmpClauseSet allowedClauses_OMPD_critical {
206};
207
208static OmpClauseSet allowedOnceClauses_OMPD_critical {
209 Clause::OMPC_hint,
210};
211
212static OmpClauseSet allowedExclusiveClauses_OMPD_critical {
213};
214
215static OmpClauseSet requiredClauses_OMPD_critical {
216};
217
218// Sets for declare mapper
219
220static OmpClauseSet allowedClauses_OMPD_declare_mapper {
221};
222
223static OmpClauseSet allowedOnceClauses_OMPD_declare_mapper {
224};
225
226static OmpClauseSet allowedExclusiveClauses_OMPD_declare_mapper {
227};
228
229static OmpClauseSet requiredClauses_OMPD_declare_mapper {
230 Clause::OMPC_map,
231};
232
233// Sets for declare reduction
234
235static OmpClauseSet allowedClauses_OMPD_declare_reduction {
236};
237
238static OmpClauseSet allowedOnceClauses_OMPD_declare_reduction {
239 Clause::OMPC_initializer,
240};
241
242static OmpClauseSet allowedExclusiveClauses_OMPD_declare_reduction {
243};
244
245static OmpClauseSet requiredClauses_OMPD_declare_reduction {
246};
247
248// Sets for declare simd
249
250static OmpClauseSet allowedClauses_OMPD_declare_simd {
251 Clause::OMPC_aligned,
252 Clause::OMPC_linear,
253 Clause::OMPC_uniform,
254};
255
256static OmpClauseSet allowedOnceClauses_OMPD_declare_simd {
257 Clause::OMPC_simdlen,
258};
259
260static OmpClauseSet allowedExclusiveClauses_OMPD_declare_simd {
261 Clause::OMPC_inbranch,
262 Clause::OMPC_notinbranch,
263};
264
265static OmpClauseSet requiredClauses_OMPD_declare_simd {
266};
267
268// Sets for declare target
269
270static OmpClauseSet allowedClauses_OMPD_declare_target {
271 Clause::OMPC_enter,
272 Clause::OMPC_indirect,
273 Clause::OMPC_link,
274 Clause::OMPC_to,
275};
276
277static OmpClauseSet allowedOnceClauses_OMPD_declare_target {
278 Clause::OMPC_device_type,
279};
280
281static OmpClauseSet allowedExclusiveClauses_OMPD_declare_target {
282};
283
284static OmpClauseSet requiredClauses_OMPD_declare_target {
285};
286
287// Sets for declare variant
288
289static OmpClauseSet allowedClauses_OMPD_declare_variant {
290 Clause::OMPC_adjust_args,
291};
292
293static OmpClauseSet allowedOnceClauses_OMPD_declare_variant {
294 Clause::OMPC_match,
295 Clause::OMPC_append_args,
296};
297
298static OmpClauseSet allowedExclusiveClauses_OMPD_declare_variant {
299};
300
301static OmpClauseSet requiredClauses_OMPD_declare_variant {
302};
303
304// Sets for depobj
305
306static OmpClauseSet allowedClauses_OMPD_depobj {
307 Clause::OMPC_depend,
308 Clause::OMPC_depobj,
309 Clause::OMPC_destroy,
310 Clause::OMPC_update,
311};
312
313static OmpClauseSet allowedOnceClauses_OMPD_depobj {
314};
315
316static OmpClauseSet allowedExclusiveClauses_OMPD_depobj {
317};
318
319static OmpClauseSet requiredClauses_OMPD_depobj {
320};
321
322// Sets for distribute
323
324static OmpClauseSet allowedClauses_OMPD_distribute {
325 Clause::OMPC_allocate,
326 Clause::OMPC_firstprivate,
327 Clause::OMPC_lastprivate,
328 Clause::OMPC_private,
329};
330
331static OmpClauseSet allowedOnceClauses_OMPD_distribute {
332 Clause::OMPC_collapse,
333 Clause::OMPC_dist_schedule,
334 Clause::OMPC_order,
335};
336
337static OmpClauseSet allowedExclusiveClauses_OMPD_distribute {
338};
339
340static OmpClauseSet requiredClauses_OMPD_distribute {
341};
342
343// Sets for distribute parallel do
344
345static OmpClauseSet allowedClauses_OMPD_distribute_parallel_do {
346 Clause::OMPC_allocate,
347 Clause::OMPC_copyin,
348 Clause::OMPC_default,
349 Clause::OMPC_firstprivate,
350 Clause::OMPC_lastprivate,
351 Clause::OMPC_linear,
352 Clause::OMPC_private,
353 Clause::OMPC_reduction,
354 Clause::OMPC_shared,
355};
356
357static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_do {
358 Clause::OMPC_collapse,
359 Clause::OMPC_dist_schedule,
360 Clause::OMPC_if,
361 Clause::OMPC_num_threads,
362 Clause::OMPC_order,
363 Clause::OMPC_proc_bind,
364 Clause::OMPC_schedule,
365};
366
367static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_do {
368};
369
370static OmpClauseSet requiredClauses_OMPD_distribute_parallel_do {
371};
372
373// Sets for distribute parallel do simd
374
375static OmpClauseSet allowedClauses_OMPD_distribute_parallel_do_simd {
376 Clause::OMPC_aligned,
377 Clause::OMPC_allocate,
378 Clause::OMPC_collapse,
379 Clause::OMPC_copyin,
380 Clause::OMPC_default,
381 Clause::OMPC_dist_schedule,
382 Clause::OMPC_firstprivate,
383 Clause::OMPC_if,
384 Clause::OMPC_lastprivate,
385 Clause::OMPC_linear,
386 Clause::OMPC_nontemporal,
387 Clause::OMPC_num_threads,
388 Clause::OMPC_order,
389 Clause::OMPC_private,
390 Clause::OMPC_proc_bind,
391 Clause::OMPC_reduction,
392 Clause::OMPC_safelen,
393 Clause::OMPC_schedule,
394 Clause::OMPC_shared,
395 Clause::OMPC_simdlen,
396};
397
398static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_do_simd {
399};
400
401static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_do_simd {
402};
403
404static OmpClauseSet requiredClauses_OMPD_distribute_parallel_do_simd {
405};
406
407// Sets for distribute parallel for
408
409static OmpClauseSet allowedClauses_OMPD_distribute_parallel_for {
410 Clause::OMPC_allocate,
411 Clause::OMPC_collapse,
412 Clause::OMPC_copyin,
413 Clause::OMPC_default,
414 Clause::OMPC_dist_schedule,
415 Clause::OMPC_firstprivate,
416 Clause::OMPC_if,
417 Clause::OMPC_lastprivate,
418 Clause::OMPC_num_threads,
419 Clause::OMPC_ompx_attribute,
420 Clause::OMPC_order,
421 Clause::OMPC_private,
422 Clause::OMPC_proc_bind,
423 Clause::OMPC_reduction,
424 Clause::OMPC_schedule,
425 Clause::OMPC_shared,
426};
427
428static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_for {
429};
430
431static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_for {
432};
433
434static OmpClauseSet requiredClauses_OMPD_distribute_parallel_for {
435};
436
437// Sets for distribute parallel for simd
438
439static OmpClauseSet allowedClauses_OMPD_distribute_parallel_for_simd {
440 Clause::OMPC_aligned,
441 Clause::OMPC_allocate,
442 Clause::OMPC_collapse,
443 Clause::OMPC_copyin,
444 Clause::OMPC_default,
445 Clause::OMPC_dist_schedule,
446 Clause::OMPC_firstprivate,
447 Clause::OMPC_if,
448 Clause::OMPC_lastprivate,
449 Clause::OMPC_linear,
450 Clause::OMPC_nontemporal,
451 Clause::OMPC_num_threads,
452 Clause::OMPC_ompx_attribute,
453 Clause::OMPC_order,
454 Clause::OMPC_private,
455 Clause::OMPC_proc_bind,
456 Clause::OMPC_reduction,
457 Clause::OMPC_safelen,
458 Clause::OMPC_schedule,
459 Clause::OMPC_shared,
460 Clause::OMPC_simdlen,
461};
462
463static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_for_simd {
464};
465
466static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_for_simd {
467};
468
469static OmpClauseSet requiredClauses_OMPD_distribute_parallel_for_simd {
470};
471
472// Sets for distribute simd
473
474static OmpClauseSet allowedClauses_OMPD_distribute_simd {
475 Clause::OMPC_aligned,
476 Clause::OMPC_allocate,
477 Clause::OMPC_copyin,
478 Clause::OMPC_default,
479 Clause::OMPC_firstprivate,
480 Clause::OMPC_lastprivate,
481 Clause::OMPC_linear,
482 Clause::OMPC_nontemporal,
483 Clause::OMPC_private,
484 Clause::OMPC_reduction,
485};
486
487static OmpClauseSet allowedOnceClauses_OMPD_distribute_simd {
488 Clause::OMPC_collapse,
489 Clause::OMPC_dist_schedule,
490 Clause::OMPC_if,
491 Clause::OMPC_num_threads,
492 Clause::OMPC_order,
493 Clause::OMPC_proc_bind,
494 Clause::OMPC_safelen,
495 Clause::OMPC_schedule,
496 Clause::OMPC_simdlen,
497};
498
499static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_simd {
500};
501
502static OmpClauseSet requiredClauses_OMPD_distribute_simd {
503};
504
505// Sets for do
506
507static OmpClauseSet allowedClauses_OMPD_do {
508 Clause::OMPC_firstprivate,
509 Clause::OMPC_lastprivate,
510 Clause::OMPC_linear,
511 Clause::OMPC_private,
512 Clause::OMPC_reduction,
513};
514
515static OmpClauseSet allowedOnceClauses_OMPD_do {
516 Clause::OMPC_collapse,
517 Clause::OMPC_nowait,
518 Clause::OMPC_order,
519 Clause::OMPC_ordered,
520 Clause::OMPC_schedule,
521};
522
523static OmpClauseSet allowedExclusiveClauses_OMPD_do {
524};
525
526static OmpClauseSet requiredClauses_OMPD_do {
527};
528
529// Sets for do simd
530
531static OmpClauseSet allowedClauses_OMPD_do_simd {
532 Clause::OMPC_aligned,
533 Clause::OMPC_firstprivate,
534 Clause::OMPC_lastprivate,
535 Clause::OMPC_linear,
536 Clause::OMPC_private,
537 Clause::OMPC_reduction,
538};
539
540static OmpClauseSet allowedOnceClauses_OMPD_do_simd {
541 Clause::OMPC_collapse,
542 Clause::OMPC_if,
543 Clause::OMPC_nowait,
544 Clause::OMPC_order,
545 Clause::OMPC_ordered,
546 Clause::OMPC_safelen,
547 Clause::OMPC_schedule,
548 Clause::OMPC_simdlen,
549};
550
551static OmpClauseSet allowedExclusiveClauses_OMPD_do_simd {
552};
553
554static OmpClauseSet requiredClauses_OMPD_do_simd {
555};
556
557// Sets for end assumes
558
559static OmpClauseSet allowedClauses_OMPD_end_assumes {
560};
561
562static OmpClauseSet allowedOnceClauses_OMPD_end_assumes {
563};
564
565static OmpClauseSet allowedExclusiveClauses_OMPD_end_assumes {
566};
567
568static OmpClauseSet requiredClauses_OMPD_end_assumes {
569};
570
571// Sets for end declare target
572
573static OmpClauseSet allowedClauses_OMPD_end_declare_target {
574};
575
576static OmpClauseSet allowedOnceClauses_OMPD_end_declare_target {
577};
578
579static OmpClauseSet allowedExclusiveClauses_OMPD_end_declare_target {
580};
581
582static OmpClauseSet requiredClauses_OMPD_end_declare_target {
583};
584
585// Sets for end declare variant
586
587static OmpClauseSet allowedClauses_OMPD_end_declare_variant {
588};
589
590static OmpClauseSet allowedOnceClauses_OMPD_end_declare_variant {
591};
592
593static OmpClauseSet allowedExclusiveClauses_OMPD_end_declare_variant {
594};
595
596static OmpClauseSet requiredClauses_OMPD_end_declare_variant {
597};
598
599// Sets for end do
600
601static OmpClauseSet allowedClauses_OMPD_end_do {
602};
603
604static OmpClauseSet allowedOnceClauses_OMPD_end_do {
605 Clause::OMPC_nowait,
606};
607
608static OmpClauseSet allowedExclusiveClauses_OMPD_end_do {
609};
610
611static OmpClauseSet requiredClauses_OMPD_end_do {
612};
613
614// Sets for end do simd
615
616static OmpClauseSet allowedClauses_OMPD_end_do_simd {
617};
618
619static OmpClauseSet allowedOnceClauses_OMPD_end_do_simd {
620 Clause::OMPC_nowait,
621};
622
623static OmpClauseSet allowedExclusiveClauses_OMPD_end_do_simd {
624};
625
626static OmpClauseSet requiredClauses_OMPD_end_do_simd {
627};
628
629// Sets for end scope
630
631static OmpClauseSet allowedClauses_OMPD_end_scope {
632};
633
634static OmpClauseSet allowedOnceClauses_OMPD_end_scope {
635 Clause::OMPC_nowait,
636};
637
638static OmpClauseSet allowedExclusiveClauses_OMPD_end_scope {
639};
640
641static OmpClauseSet requiredClauses_OMPD_end_scope {
642};
643
644// Sets for end sections
645
646static OmpClauseSet allowedClauses_OMPD_end_sections {
647};
648
649static OmpClauseSet allowedOnceClauses_OMPD_end_sections {
650 Clause::OMPC_nowait,
651};
652
653static OmpClauseSet allowedExclusiveClauses_OMPD_end_sections {
654};
655
656static OmpClauseSet requiredClauses_OMPD_end_sections {
657};
658
659// Sets for end single
660
661static OmpClauseSet allowedClauses_OMPD_end_single {
662 Clause::OMPC_copyprivate,
663};
664
665static OmpClauseSet allowedOnceClauses_OMPD_end_single {
666 Clause::OMPC_nowait,
667};
668
669static OmpClauseSet allowedExclusiveClauses_OMPD_end_single {
670};
671
672static OmpClauseSet requiredClauses_OMPD_end_single {
673};
674
675// Sets for end workshare
676
677static OmpClauseSet allowedClauses_OMPD_end_workshare {
678};
679
680static OmpClauseSet allowedOnceClauses_OMPD_end_workshare {
681 Clause::OMPC_nowait,
682};
683
684static OmpClauseSet allowedExclusiveClauses_OMPD_end_workshare {
685};
686
687static OmpClauseSet requiredClauses_OMPD_end_workshare {
688};
689
690// Sets for error
691
692static OmpClauseSet allowedClauses_OMPD_error {
693 Clause::OMPC_at,
694 Clause::OMPC_message,
695 Clause::OMPC_severity,
696};
697
698static OmpClauseSet allowedOnceClauses_OMPD_error {
699};
700
701static OmpClauseSet allowedExclusiveClauses_OMPD_error {
702};
703
704static OmpClauseSet requiredClauses_OMPD_error {
705};
706
707// Sets for flush
708
709static OmpClauseSet allowedClauses_OMPD_flush {
710};
711
712static OmpClauseSet allowedOnceClauses_OMPD_flush {
713 Clause::OMPC_acq_rel,
714 Clause::OMPC_acquire,
715 Clause::OMPC_flush,
716 Clause::OMPC_release,
717 Clause::OMPC_seq_cst,
718};
719
720static OmpClauseSet allowedExclusiveClauses_OMPD_flush {
721};
722
723static OmpClauseSet requiredClauses_OMPD_flush {
724};
725
726// Sets for for
727
728static OmpClauseSet allowedClauses_OMPD_for {
729 Clause::OMPC_allocate,
730 Clause::OMPC_collapse,
731 Clause::OMPC_firstprivate,
732 Clause::OMPC_lastprivate,
733 Clause::OMPC_linear,
734 Clause::OMPC_nowait,
735 Clause::OMPC_order,
736 Clause::OMPC_ordered,
737 Clause::OMPC_private,
738 Clause::OMPC_reduction,
739 Clause::OMPC_schedule,
740};
741
742static OmpClauseSet allowedOnceClauses_OMPD_for {
743};
744
745static OmpClauseSet allowedExclusiveClauses_OMPD_for {
746};
747
748static OmpClauseSet requiredClauses_OMPD_for {
749};
750
751// Sets for for simd
752
753static OmpClauseSet allowedClauses_OMPD_for_simd {
754 Clause::OMPC_aligned,
755 Clause::OMPC_allocate,
756 Clause::OMPC_collapse,
757 Clause::OMPC_firstprivate,
758 Clause::OMPC_if,
759 Clause::OMPC_lastprivate,
760 Clause::OMPC_linear,
761 Clause::OMPC_nontemporal,
762 Clause::OMPC_nowait,
763 Clause::OMPC_order,
764 Clause::OMPC_ordered,
765 Clause::OMPC_private,
766 Clause::OMPC_reduction,
767 Clause::OMPC_safelen,
768 Clause::OMPC_schedule,
769 Clause::OMPC_simdlen,
770};
771
772static OmpClauseSet allowedOnceClauses_OMPD_for_simd {
773};
774
775static OmpClauseSet allowedExclusiveClauses_OMPD_for_simd {
776};
777
778static OmpClauseSet requiredClauses_OMPD_for_simd {
779};
780
781// Sets for interchange
782
783static OmpClauseSet allowedClauses_OMPD_interchange {
784};
785
786static OmpClauseSet allowedOnceClauses_OMPD_interchange {
787 Clause::OMPC_permutation,
788};
789
790static OmpClauseSet allowedExclusiveClauses_OMPD_interchange {
791};
792
793static OmpClauseSet requiredClauses_OMPD_interchange {
794};
795
796// Sets for masked taskloop
797
798static OmpClauseSet allowedClauses_OMPD_masked_taskloop {
799 Clause::OMPC_allocate,
800 Clause::OMPC_collapse,
801 Clause::OMPC_default,
802 Clause::OMPC_filter,
803 Clause::OMPC_final,
804 Clause::OMPC_firstprivate,
805 Clause::OMPC_grainsize,
806 Clause::OMPC_if,
807 Clause::OMPC_in_reduction,
808 Clause::OMPC_lastprivate,
809 Clause::OMPC_mergeable,
810 Clause::OMPC_nogroup,
811 Clause::OMPC_num_tasks,
812 Clause::OMPC_priority,
813 Clause::OMPC_private,
814 Clause::OMPC_reduction,
815 Clause::OMPC_shared,
816 Clause::OMPC_untied,
817};
818
819static OmpClauseSet allowedOnceClauses_OMPD_masked_taskloop {
820};
821
822static OmpClauseSet allowedExclusiveClauses_OMPD_masked_taskloop {
823};
824
825static OmpClauseSet requiredClauses_OMPD_masked_taskloop {
826};
827
828// Sets for masked taskloop simd
829
830static OmpClauseSet allowedClauses_OMPD_masked_taskloop_simd {
831 Clause::OMPC_aligned,
832 Clause::OMPC_allocate,
833 Clause::OMPC_collapse,
834 Clause::OMPC_default,
835 Clause::OMPC_filter,
836 Clause::OMPC_final,
837 Clause::OMPC_firstprivate,
838 Clause::OMPC_grainsize,
839 Clause::OMPC_if,
840 Clause::OMPC_in_reduction,
841 Clause::OMPC_lastprivate,
842 Clause::OMPC_linear,
843 Clause::OMPC_mergeable,
844 Clause::OMPC_nogroup,
845 Clause::OMPC_nontemporal,
846 Clause::OMPC_num_tasks,
847 Clause::OMPC_order,
848 Clause::OMPC_priority,
849 Clause::OMPC_private,
850 Clause::OMPC_reduction,
851 Clause::OMPC_safelen,
852 Clause::OMPC_shared,
853 Clause::OMPC_simdlen,
854 Clause::OMPC_untied,
855};
856
857static OmpClauseSet allowedOnceClauses_OMPD_masked_taskloop_simd {
858};
859
860static OmpClauseSet allowedExclusiveClauses_OMPD_masked_taskloop_simd {
861};
862
863static OmpClauseSet requiredClauses_OMPD_masked_taskloop_simd {
864};
865
866// Sets for master
867
868static OmpClauseSet allowedClauses_OMPD_master {
869};
870
871static OmpClauseSet allowedOnceClauses_OMPD_master {
872};
873
874static OmpClauseSet allowedExclusiveClauses_OMPD_master {
875};
876
877static OmpClauseSet requiredClauses_OMPD_master {
878};
879
880// Sets for master taskloop
881
882static OmpClauseSet allowedClauses_OMPD_master_taskloop {
883 Clause::OMPC_allocate,
884 Clause::OMPC_collapse,
885 Clause::OMPC_default,
886 Clause::OMPC_final,
887 Clause::OMPC_firstprivate,
888 Clause::OMPC_grainsize,
889 Clause::OMPC_if,
890 Clause::OMPC_in_reduction,
891 Clause::OMPC_lastprivate,
892 Clause::OMPC_mergeable,
893 Clause::OMPC_nogroup,
894 Clause::OMPC_num_tasks,
895 Clause::OMPC_priority,
896 Clause::OMPC_private,
897 Clause::OMPC_reduction,
898 Clause::OMPC_shared,
899 Clause::OMPC_untied,
900};
901
902static OmpClauseSet allowedOnceClauses_OMPD_master_taskloop {
903};
904
905static OmpClauseSet allowedExclusiveClauses_OMPD_master_taskloop {
906};
907
908static OmpClauseSet requiredClauses_OMPD_master_taskloop {
909};
910
911// Sets for master taskloop simd
912
913static OmpClauseSet allowedClauses_OMPD_master_taskloop_simd {
914 Clause::OMPC_aligned,
915 Clause::OMPC_allocate,
916 Clause::OMPC_collapse,
917 Clause::OMPC_default,
918 Clause::OMPC_final,
919 Clause::OMPC_firstprivate,
920 Clause::OMPC_grainsize,
921 Clause::OMPC_if,
922 Clause::OMPC_in_reduction,
923 Clause::OMPC_lastprivate,
924 Clause::OMPC_linear,
925 Clause::OMPC_mergeable,
926 Clause::OMPC_nogroup,
927 Clause::OMPC_nontemporal,
928 Clause::OMPC_num_tasks,
929 Clause::OMPC_order,
930 Clause::OMPC_priority,
931 Clause::OMPC_private,
932 Clause::OMPC_reduction,
933 Clause::OMPC_safelen,
934 Clause::OMPC_shared,
935 Clause::OMPC_simdlen,
936 Clause::OMPC_untied,
937};
938
939static OmpClauseSet allowedOnceClauses_OMPD_master_taskloop_simd {
940};
941
942static OmpClauseSet allowedExclusiveClauses_OMPD_master_taskloop_simd {
943};
944
945static OmpClauseSet requiredClauses_OMPD_master_taskloop_simd {
946};
947
948// Sets for metadirective
949
950static OmpClauseSet allowedClauses_OMPD_metadirective {
951 Clause::OMPC_when,
952};
953
954static OmpClauseSet allowedOnceClauses_OMPD_metadirective {
955 Clause::OMPC_otherwise,
956 Clause::OMPC_default,
957};
958
959static OmpClauseSet allowedExclusiveClauses_OMPD_metadirective {
960};
961
962static OmpClauseSet requiredClauses_OMPD_metadirective {
963};
964
965// Sets for nothing
966
967static OmpClauseSet allowedClauses_OMPD_nothing {
968};
969
970static OmpClauseSet allowedOnceClauses_OMPD_nothing {
971};
972
973static OmpClauseSet allowedExclusiveClauses_OMPD_nothing {
974};
975
976static OmpClauseSet requiredClauses_OMPD_nothing {
977};
978
979// Sets for ordered
980
981static OmpClauseSet allowedClauses_OMPD_ordered {
982 Clause::OMPC_depend,
983 Clause::OMPC_doacross,
984};
985
986static OmpClauseSet allowedOnceClauses_OMPD_ordered {
987 Clause::OMPC_simd,
988 Clause::OMPC_threads,
989};
990
991static OmpClauseSet allowedExclusiveClauses_OMPD_ordered {
992};
993
994static OmpClauseSet requiredClauses_OMPD_ordered {
995};
996
997// Sets for parallel
998
999static OmpClauseSet allowedClauses_OMPD_parallel {
1000 Clause::OMPC_allocate,
1001 Clause::OMPC_copyin,
1002 Clause::OMPC_firstprivate,
1003 Clause::OMPC_ompx_attribute,
1004 Clause::OMPC_private,
1005 Clause::OMPC_reduction,
1006 Clause::OMPC_shared,
1007};
1008
1009static OmpClauseSet allowedOnceClauses_OMPD_parallel {
1010 Clause::OMPC_default,
1011 Clause::OMPC_if,
1012 Clause::OMPC_num_threads,
1013 Clause::OMPC_proc_bind,
1014};
1015
1016static OmpClauseSet allowedExclusiveClauses_OMPD_parallel {
1017};
1018
1019static OmpClauseSet requiredClauses_OMPD_parallel {
1020};
1021
1022// Sets for parallel do
1023
1024static OmpClauseSet allowedClauses_OMPD_parallel_do {
1025 Clause::OMPC_copyin,
1026 Clause::OMPC_default,
1027 Clause::OMPC_firstprivate,
1028 Clause::OMPC_lastprivate,
1029 Clause::OMPC_linear,
1030 Clause::OMPC_private,
1031 Clause::OMPC_reduction,
1032 Clause::OMPC_shared,
1033};
1034
1035static OmpClauseSet allowedOnceClauses_OMPD_parallel_do {
1036 Clause::OMPC_collapse,
1037 Clause::OMPC_if,
1038 Clause::OMPC_num_threads,
1039 Clause::OMPC_order,
1040 Clause::OMPC_ordered,
1041 Clause::OMPC_proc_bind,
1042 Clause::OMPC_schedule,
1043};
1044
1045static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_do {
1046};
1047
1048static OmpClauseSet requiredClauses_OMPD_parallel_do {
1049};
1050
1051// Sets for parallel do simd
1052
1053static OmpClauseSet allowedClauses_OMPD_parallel_do_simd {
1054 Clause::OMPC_aligned,
1055 Clause::OMPC_allocate,
1056 Clause::OMPC_copyin,
1057 Clause::OMPC_default,
1058 Clause::OMPC_firstprivate,
1059 Clause::OMPC_if,
1060 Clause::OMPC_lastprivate,
1061 Clause::OMPC_linear,
1062 Clause::OMPC_nontemporal,
1063 Clause::OMPC_private,
1064 Clause::OMPC_reduction,
1065 Clause::OMPC_shared,
1066};
1067
1068static OmpClauseSet allowedOnceClauses_OMPD_parallel_do_simd {
1069 Clause::OMPC_collapse,
1070 Clause::OMPC_num_threads,
1071 Clause::OMPC_order,
1072 Clause::OMPC_ordered,
1073 Clause::OMPC_proc_bind,
1074 Clause::OMPC_safelen,
1075 Clause::OMPC_schedule,
1076 Clause::OMPC_simdlen,
1077};
1078
1079static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_do_simd {
1080};
1081
1082static OmpClauseSet requiredClauses_OMPD_parallel_do_simd {
1083};
1084
1085// Sets for parallel for
1086
1087static OmpClauseSet allowedClauses_OMPD_parallel_for {
1088 Clause::OMPC_allocate,
1089 Clause::OMPC_collapse,
1090 Clause::OMPC_copyin,
1091 Clause::OMPC_default,
1092 Clause::OMPC_firstprivate,
1093 Clause::OMPC_if,
1094 Clause::OMPC_lastprivate,
1095 Clause::OMPC_linear,
1096 Clause::OMPC_num_threads,
1097 Clause::OMPC_ompx_attribute,
1098 Clause::OMPC_order,
1099 Clause::OMPC_ordered,
1100 Clause::OMPC_private,
1101 Clause::OMPC_proc_bind,
1102 Clause::OMPC_reduction,
1103 Clause::OMPC_schedule,
1104 Clause::OMPC_shared,
1105};
1106
1107static OmpClauseSet allowedOnceClauses_OMPD_parallel_for {
1108};
1109
1110static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_for {
1111};
1112
1113static OmpClauseSet requiredClauses_OMPD_parallel_for {
1114};
1115
1116// Sets for parallel for simd
1117
1118static OmpClauseSet allowedClauses_OMPD_parallel_for_simd {
1119 Clause::OMPC_aligned,
1120 Clause::OMPC_allocate,
1121 Clause::OMPC_collapse,
1122 Clause::OMPC_copyin,
1123 Clause::OMPC_default,
1124 Clause::OMPC_firstprivate,
1125 Clause::OMPC_if,
1126 Clause::OMPC_lastprivate,
1127 Clause::OMPC_linear,
1128 Clause::OMPC_nontemporal,
1129 Clause::OMPC_num_threads,
1130 Clause::OMPC_ompx_attribute,
1131 Clause::OMPC_order,
1132 Clause::OMPC_ordered,
1133 Clause::OMPC_private,
1134 Clause::OMPC_proc_bind,
1135 Clause::OMPC_reduction,
1136 Clause::OMPC_safelen,
1137 Clause::OMPC_schedule,
1138 Clause::OMPC_shared,
1139 Clause::OMPC_simdlen,
1140};
1141
1142static OmpClauseSet allowedOnceClauses_OMPD_parallel_for_simd {
1143};
1144
1145static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_for_simd {
1146};
1147
1148static OmpClauseSet requiredClauses_OMPD_parallel_for_simd {
1149};
1150
1151// Sets for parallel masked
1152
1153static OmpClauseSet allowedClauses_OMPD_parallel_masked {
1154 Clause::OMPC_allocate,
1155 Clause::OMPC_copyin,
1156 Clause::OMPC_default,
1157 Clause::OMPC_filter,
1158 Clause::OMPC_firstprivate,
1159 Clause::OMPC_if,
1160 Clause::OMPC_num_threads,
1161 Clause::OMPC_ompx_attribute,
1162 Clause::OMPC_private,
1163 Clause::OMPC_proc_bind,
1164 Clause::OMPC_reduction,
1165 Clause::OMPC_shared,
1166};
1167
1168static OmpClauseSet allowedOnceClauses_OMPD_parallel_masked {
1169};
1170
1171static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_masked {
1172};
1173
1174static OmpClauseSet requiredClauses_OMPD_parallel_masked {
1175};
1176
1177// Sets for parallel masked taskloop
1178
1179static OmpClauseSet allowedClauses_OMPD_parallel_masked_taskloop {
1180 Clause::OMPC_allocate,
1181 Clause::OMPC_collapse,
1182 Clause::OMPC_copyin,
1183 Clause::OMPC_default,
1184 Clause::OMPC_filter,
1185 Clause::OMPC_final,
1186 Clause::OMPC_firstprivate,
1187 Clause::OMPC_grainsize,
1188 Clause::OMPC_if,
1189 Clause::OMPC_lastprivate,
1190 Clause::OMPC_mergeable,
1191 Clause::OMPC_nogroup,
1192 Clause::OMPC_num_tasks,
1193 Clause::OMPC_num_threads,
1194 Clause::OMPC_ompx_attribute,
1195 Clause::OMPC_priority,
1196 Clause::OMPC_private,
1197 Clause::OMPC_proc_bind,
1198 Clause::OMPC_reduction,
1199 Clause::OMPC_shared,
1200 Clause::OMPC_untied,
1201};
1202
1203static OmpClauseSet allowedOnceClauses_OMPD_parallel_masked_taskloop {
1204};
1205
1206static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_masked_taskloop {
1207};
1208
1209static OmpClauseSet requiredClauses_OMPD_parallel_masked_taskloop {
1210};
1211
1212// Sets for parallel masked taskloop simd
1213
1214static OmpClauseSet allowedClauses_OMPD_parallel_masked_taskloop_simd {
1215 Clause::OMPC_aligned,
1216 Clause::OMPC_allocate,
1217 Clause::OMPC_collapse,
1218 Clause::OMPC_copyin,
1219 Clause::OMPC_default,
1220 Clause::OMPC_filter,
1221 Clause::OMPC_final,
1222 Clause::OMPC_firstprivate,
1223 Clause::OMPC_grainsize,
1224 Clause::OMPC_if,
1225 Clause::OMPC_lastprivate,
1226 Clause::OMPC_linear,
1227 Clause::OMPC_mergeable,
1228 Clause::OMPC_nogroup,
1229 Clause::OMPC_nontemporal,
1230 Clause::OMPC_num_tasks,
1231 Clause::OMPC_num_threads,
1232 Clause::OMPC_ompx_attribute,
1233 Clause::OMPC_order,
1234 Clause::OMPC_priority,
1235 Clause::OMPC_private,
1236 Clause::OMPC_proc_bind,
1237 Clause::OMPC_reduction,
1238 Clause::OMPC_safelen,
1239 Clause::OMPC_shared,
1240 Clause::OMPC_simdlen,
1241 Clause::OMPC_untied,
1242};
1243
1244static OmpClauseSet allowedOnceClauses_OMPD_parallel_masked_taskloop_simd {
1245};
1246
1247static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_masked_taskloop_simd {
1248};
1249
1250static OmpClauseSet requiredClauses_OMPD_parallel_masked_taskloop_simd {
1251};
1252
1253// Sets for parallel master
1254
1255static OmpClauseSet allowedClauses_OMPD_parallel_master {
1256 Clause::OMPC_allocate,
1257 Clause::OMPC_copyin,
1258 Clause::OMPC_default,
1259 Clause::OMPC_firstprivate,
1260 Clause::OMPC_if,
1261 Clause::OMPC_num_threads,
1262 Clause::OMPC_ompx_attribute,
1263 Clause::OMPC_private,
1264 Clause::OMPC_proc_bind,
1265 Clause::OMPC_reduction,
1266 Clause::OMPC_shared,
1267};
1268
1269static OmpClauseSet allowedOnceClauses_OMPD_parallel_master {
1270};
1271
1272static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master {
1273};
1274
1275static OmpClauseSet requiredClauses_OMPD_parallel_master {
1276};
1277
1278// Sets for parallel master taskloop
1279
1280static OmpClauseSet allowedClauses_OMPD_parallel_master_taskloop {
1281 Clause::OMPC_allocate,
1282 Clause::OMPC_collapse,
1283 Clause::OMPC_copyin,
1284 Clause::OMPC_default,
1285 Clause::OMPC_final,
1286 Clause::OMPC_firstprivate,
1287 Clause::OMPC_grainsize,
1288 Clause::OMPC_if,
1289 Clause::OMPC_lastprivate,
1290 Clause::OMPC_mergeable,
1291 Clause::OMPC_nogroup,
1292 Clause::OMPC_num_tasks,
1293 Clause::OMPC_num_threads,
1294 Clause::OMPC_ompx_attribute,
1295 Clause::OMPC_priority,
1296 Clause::OMPC_private,
1297 Clause::OMPC_proc_bind,
1298 Clause::OMPC_reduction,
1299 Clause::OMPC_shared,
1300 Clause::OMPC_untied,
1301};
1302
1303static OmpClauseSet allowedOnceClauses_OMPD_parallel_master_taskloop {
1304};
1305
1306static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master_taskloop {
1307};
1308
1309static OmpClauseSet requiredClauses_OMPD_parallel_master_taskloop {
1310};
1311
1312// Sets for parallel master taskloop simd
1313
1314static OmpClauseSet allowedClauses_OMPD_parallel_master_taskloop_simd {
1315 Clause::OMPC_aligned,
1316 Clause::OMPC_allocate,
1317 Clause::OMPC_collapse,
1318 Clause::OMPC_copyin,
1319 Clause::OMPC_default,
1320 Clause::OMPC_final,
1321 Clause::OMPC_firstprivate,
1322 Clause::OMPC_grainsize,
1323 Clause::OMPC_if,
1324 Clause::OMPC_lastprivate,
1325 Clause::OMPC_linear,
1326 Clause::OMPC_mergeable,
1327 Clause::OMPC_nogroup,
1328 Clause::OMPC_nontemporal,
1329 Clause::OMPC_num_tasks,
1330 Clause::OMPC_num_threads,
1331 Clause::OMPC_ompx_attribute,
1332 Clause::OMPC_order,
1333 Clause::OMPC_priority,
1334 Clause::OMPC_private,
1335 Clause::OMPC_proc_bind,
1336 Clause::OMPC_reduction,
1337 Clause::OMPC_safelen,
1338 Clause::OMPC_shared,
1339 Clause::OMPC_simdlen,
1340 Clause::OMPC_untied,
1341};
1342
1343static OmpClauseSet allowedOnceClauses_OMPD_parallel_master_taskloop_simd {
1344};
1345
1346static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master_taskloop_simd {
1347};
1348
1349static OmpClauseSet requiredClauses_OMPD_parallel_master_taskloop_simd {
1350};
1351
1352// Sets for parallel sections
1353
1354static OmpClauseSet allowedClauses_OMPD_parallel_sections {
1355 Clause::OMPC_allocate,
1356 Clause::OMPC_copyin,
1357 Clause::OMPC_default,
1358 Clause::OMPC_firstprivate,
1359 Clause::OMPC_lastprivate,
1360 Clause::OMPC_ompx_attribute,
1361 Clause::OMPC_private,
1362 Clause::OMPC_proc_bind,
1363 Clause::OMPC_reduction,
1364 Clause::OMPC_shared,
1365};
1366
1367static OmpClauseSet allowedOnceClauses_OMPD_parallel_sections {
1368 Clause::OMPC_if,
1369 Clause::OMPC_num_threads,
1370};
1371
1372static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_sections {
1373};
1374
1375static OmpClauseSet requiredClauses_OMPD_parallel_sections {
1376};
1377
1378// Sets for parallel workshare
1379
1380static OmpClauseSet allowedClauses_OMPD_parallel_workshare {
1381 Clause::OMPC_allocate,
1382 Clause::OMPC_copyin,
1383 Clause::OMPC_default,
1384 Clause::OMPC_firstprivate,
1385 Clause::OMPC_private,
1386 Clause::OMPC_reduction,
1387 Clause::OMPC_shared,
1388};
1389
1390static OmpClauseSet allowedOnceClauses_OMPD_parallel_workshare {
1391 Clause::OMPC_if,
1392 Clause::OMPC_num_threads,
1393 Clause::OMPC_proc_bind,
1394};
1395
1396static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_workshare {
1397};
1398
1399static OmpClauseSet requiredClauses_OMPD_parallel_workshare {
1400};
1401
1402// Sets for requires
1403
1404static OmpClauseSet allowedClauses_OMPD_requires {
1405};
1406
1407static OmpClauseSet allowedOnceClauses_OMPD_requires {
1408 Clause::OMPC_unified_address,
1409 Clause::OMPC_unified_shared_memory,
1410 Clause::OMPC_atomic_default_mem_order,
1411 Clause::OMPC_dynamic_allocators,
1412 Clause::OMPC_self_maps,
1413 Clause::OMPC_reverse_offload,
1414};
1415
1416static OmpClauseSet allowedExclusiveClauses_OMPD_requires {
1417};
1418
1419static OmpClauseSet requiredClauses_OMPD_requires {
1420};
1421
1422// Sets for reverse
1423
1424static OmpClauseSet allowedClauses_OMPD_reverse {
1425};
1426
1427static OmpClauseSet allowedOnceClauses_OMPD_reverse {
1428};
1429
1430static OmpClauseSet allowedExclusiveClauses_OMPD_reverse {
1431};
1432
1433static OmpClauseSet requiredClauses_OMPD_reverse {
1434};
1435
1436// Sets for scan
1437
1438static OmpClauseSet allowedClauses_OMPD_scan {
1439 Clause::OMPC_exclusive,
1440 Clause::OMPC_inclusive,
1441};
1442
1443static OmpClauseSet allowedOnceClauses_OMPD_scan {
1444};
1445
1446static OmpClauseSet allowedExclusiveClauses_OMPD_scan {
1447};
1448
1449static OmpClauseSet requiredClauses_OMPD_scan {
1450};
1451
1452// Sets for scope
1453
1454static OmpClauseSet allowedClauses_OMPD_scope {
1455 Clause::OMPC_private,
1456 Clause::OMPC_reduction,
1457 Clause::OMPC_firstprivate,
1458 Clause::OMPC_allocate,
1459};
1460
1461static OmpClauseSet allowedOnceClauses_OMPD_scope {
1462 Clause::OMPC_nowait,
1463};
1464
1465static OmpClauseSet allowedExclusiveClauses_OMPD_scope {
1466};
1467
1468static OmpClauseSet requiredClauses_OMPD_scope {
1469};
1470
1471// Sets for section
1472
1473static OmpClauseSet allowedClauses_OMPD_section {
1474};
1475
1476static OmpClauseSet allowedOnceClauses_OMPD_section {
1477};
1478
1479static OmpClauseSet allowedExclusiveClauses_OMPD_section {
1480};
1481
1482static OmpClauseSet requiredClauses_OMPD_section {
1483};
1484
1485// Sets for sections
1486
1487static OmpClauseSet allowedClauses_OMPD_sections {
1488 Clause::OMPC_allocate,
1489 Clause::OMPC_firstprivate,
1490 Clause::OMPC_lastprivate,
1491 Clause::OMPC_nowait,
1492 Clause::OMPC_private,
1493 Clause::OMPC_reduction,
1494};
1495
1496static OmpClauseSet allowedOnceClauses_OMPD_sections {
1497};
1498
1499static OmpClauseSet allowedExclusiveClauses_OMPD_sections {
1500};
1501
1502static OmpClauseSet requiredClauses_OMPD_sections {
1503};
1504
1505// Sets for simd
1506
1507static OmpClauseSet allowedClauses_OMPD_simd {
1508 Clause::OMPC_aligned,
1509 Clause::OMPC_allocate,
1510 Clause::OMPC_lastprivate,
1511 Clause::OMPC_linear,
1512 Clause::OMPC_nontemporal,
1513 Clause::OMPC_private,
1514 Clause::OMPC_reduction,
1515};
1516
1517static OmpClauseSet allowedOnceClauses_OMPD_simd {
1518 Clause::OMPC_collapse,
1519 Clause::OMPC_if,
1520 Clause::OMPC_order,
1521 Clause::OMPC_safelen,
1522 Clause::OMPC_simdlen,
1523};
1524
1525static OmpClauseSet allowedExclusiveClauses_OMPD_simd {
1526};
1527
1528static OmpClauseSet requiredClauses_OMPD_simd {
1529};
1530
1531// Sets for single
1532
1533static OmpClauseSet allowedClauses_OMPD_single {
1534 Clause::OMPC_allocate,
1535 Clause::OMPC_copyprivate,
1536 Clause::OMPC_firstprivate,
1537 Clause::OMPC_private,
1538};
1539
1540static OmpClauseSet allowedOnceClauses_OMPD_single {
1541 Clause::OMPC_nowait,
1542};
1543
1544static OmpClauseSet allowedExclusiveClauses_OMPD_single {
1545};
1546
1547static OmpClauseSet requiredClauses_OMPD_single {
1548};
1549
1550// Sets for stripe
1551
1552static OmpClauseSet allowedClauses_OMPD_stripe {
1553};
1554
1555static OmpClauseSet allowedOnceClauses_OMPD_stripe {
1556 Clause::OMPC_sizes,
1557};
1558
1559static OmpClauseSet allowedExclusiveClauses_OMPD_stripe {
1560};
1561
1562static OmpClauseSet requiredClauses_OMPD_stripe {
1563};
1564
1565// Sets for target
1566
1567static OmpClauseSet allowedClauses_OMPD_target {
1568 Clause::OMPC_allocate,
1569 Clause::OMPC_depend,
1570 Clause::OMPC_firstprivate,
1571 Clause::OMPC_has_device_addr,
1572 Clause::OMPC_in_reduction,
1573 Clause::OMPC_is_device_ptr,
1574 Clause::OMPC_map,
1575 Clause::OMPC_ompx_attribute,
1576 Clause::OMPC_private,
1577 Clause::OMPC_uses_allocators,
1578};
1579
1580static OmpClauseSet allowedOnceClauses_OMPD_target {
1581 Clause::OMPC_defaultmap,
1582 Clause::OMPC_device,
1583 Clause::OMPC_if,
1584 Clause::OMPC_nowait,
1585 Clause::OMPC_ompx_bare,
1586 Clause::OMPC_ompx_dyn_cgroup_mem,
1587 Clause::OMPC_thread_limit,
1588};
1589
1590static OmpClauseSet allowedExclusiveClauses_OMPD_target {
1591};
1592
1593static OmpClauseSet requiredClauses_OMPD_target {
1594};
1595
1596// Sets for target data
1597
1598static OmpClauseSet allowedClauses_OMPD_target_data {
1599};
1600
1601static OmpClauseSet allowedOnceClauses_OMPD_target_data {
1602 Clause::OMPC_device,
1603 Clause::OMPC_if,
1604};
1605
1606static OmpClauseSet allowedExclusiveClauses_OMPD_target_data {
1607};
1608
1609static OmpClauseSet requiredClauses_OMPD_target_data {
1610 Clause::OMPC_map,
1611 Clause::OMPC_use_device_addr,
1612 Clause::OMPC_use_device_ptr,
1613};
1614
1615// Sets for target enter data
1616
1617static OmpClauseSet allowedClauses_OMPD_target_enter_data {
1618 Clause::OMPC_depend,
1619};
1620
1621static OmpClauseSet allowedOnceClauses_OMPD_target_enter_data {
1622 Clause::OMPC_device,
1623 Clause::OMPC_if,
1624 Clause::OMPC_nowait,
1625};
1626
1627static OmpClauseSet allowedExclusiveClauses_OMPD_target_enter_data {
1628};
1629
1630static OmpClauseSet requiredClauses_OMPD_target_enter_data {
1631 Clause::OMPC_map,
1632};
1633
1634// Sets for target exit data
1635
1636static OmpClauseSet allowedClauses_OMPD_target_exit_data {
1637 Clause::OMPC_depend,
1638};
1639
1640static OmpClauseSet allowedOnceClauses_OMPD_target_exit_data {
1641 Clause::OMPC_device,
1642 Clause::OMPC_if,
1643 Clause::OMPC_nowait,
1644};
1645
1646static OmpClauseSet allowedExclusiveClauses_OMPD_target_exit_data {
1647};
1648
1649static OmpClauseSet requiredClauses_OMPD_target_exit_data {
1650 Clause::OMPC_map,
1651};
1652
1653// Sets for target parallel
1654
1655static OmpClauseSet allowedClauses_OMPD_target_parallel {
1656 Clause::OMPC_allocate,
1657 Clause::OMPC_default,
1658 Clause::OMPC_depend,
1659 Clause::OMPC_firstprivate,
1660 Clause::OMPC_has_device_addr,
1661 Clause::OMPC_if,
1662 Clause::OMPC_is_device_ptr,
1663 Clause::OMPC_map,
1664 Clause::OMPC_nowait,
1665 Clause::OMPC_ompx_attribute,
1666 Clause::OMPC_private,
1667 Clause::OMPC_reduction,
1668 Clause::OMPC_shared,
1669 Clause::OMPC_uses_allocators,
1670};
1671
1672static OmpClauseSet allowedOnceClauses_OMPD_target_parallel {
1673 Clause::OMPC_defaultmap,
1674 Clause::OMPC_device,
1675 Clause::OMPC_num_threads,
1676 Clause::OMPC_ompx_dyn_cgroup_mem,
1677 Clause::OMPC_proc_bind,
1678 Clause::OMPC_thread_limit,
1679};
1680
1681static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel {
1682};
1683
1684static OmpClauseSet requiredClauses_OMPD_target_parallel {
1685};
1686
1687// Sets for target parallel do
1688
1689static OmpClauseSet allowedClauses_OMPD_target_parallel_do {
1690 Clause::OMPC_allocator,
1691 Clause::OMPC_default,
1692 Clause::OMPC_depend,
1693 Clause::OMPC_firstprivate,
1694 Clause::OMPC_has_device_addr,
1695 Clause::OMPC_if,
1696 Clause::OMPC_is_device_ptr,
1697 Clause::OMPC_lastprivate,
1698 Clause::OMPC_linear,
1699 Clause::OMPC_map,
1700 Clause::OMPC_private,
1701 Clause::OMPC_reduction,
1702 Clause::OMPC_shared,
1703 Clause::OMPC_uses_allocators,
1704};
1705
1706static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_do {
1707 Clause::OMPC_collapse,
1708 Clause::OMPC_defaultmap,
1709 Clause::OMPC_device,
1710 Clause::OMPC_nowait,
1711 Clause::OMPC_num_threads,
1712 Clause::OMPC_order,
1713 Clause::OMPC_ordered,
1714 Clause::OMPC_proc_bind,
1715 Clause::OMPC_schedule,
1716};
1717
1718static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_do {
1719};
1720
1721static OmpClauseSet requiredClauses_OMPD_target_parallel_do {
1722};
1723
1724// Sets for target parallel do simd
1725
1726static OmpClauseSet allowedClauses_OMPD_target_parallel_do_simd {
1727 Clause::OMPC_aligned,
1728 Clause::OMPC_allocate,
1729 Clause::OMPC_collapse,
1730 Clause::OMPC_default,
1731 Clause::OMPC_defaultmap,
1732 Clause::OMPC_depend,
1733 Clause::OMPC_device,
1734 Clause::OMPC_firstprivate,
1735 Clause::OMPC_has_device_addr,
1736 Clause::OMPC_if,
1737 Clause::OMPC_is_device_ptr,
1738 Clause::OMPC_lastprivate,
1739 Clause::OMPC_linear,
1740 Clause::OMPC_map,
1741 Clause::OMPC_nontemporal,
1742 Clause::OMPC_nowait,
1743 Clause::OMPC_num_threads,
1744 Clause::OMPC_order,
1745 Clause::OMPC_ordered,
1746 Clause::OMPC_private,
1747 Clause::OMPC_proc_bind,
1748 Clause::OMPC_reduction,
1749 Clause::OMPC_safelen,
1750 Clause::OMPC_schedule,
1751 Clause::OMPC_shared,
1752 Clause::OMPC_simdlen,
1753 Clause::OMPC_uses_allocators,
1754};
1755
1756static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_do_simd {
1757};
1758
1759static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_do_simd {
1760};
1761
1762static OmpClauseSet requiredClauses_OMPD_target_parallel_do_simd {
1763};
1764
1765// Sets for target parallel for
1766
1767static OmpClauseSet allowedClauses_OMPD_target_parallel_for {
1768 Clause::OMPC_allocate,
1769 Clause::OMPC_collapse,
1770 Clause::OMPC_default,
1771 Clause::OMPC_defaultmap,
1772 Clause::OMPC_depend,
1773 Clause::OMPC_device,
1774 Clause::OMPC_firstprivate,
1775 Clause::OMPC_has_device_addr,
1776 Clause::OMPC_if,
1777 Clause::OMPC_is_device_ptr,
1778 Clause::OMPC_lastprivate,
1779 Clause::OMPC_linear,
1780 Clause::OMPC_map,
1781 Clause::OMPC_nowait,
1782 Clause::OMPC_num_threads,
1783 Clause::OMPC_ompx_attribute,
1784 Clause::OMPC_order,
1785 Clause::OMPC_ordered,
1786 Clause::OMPC_private,
1787 Clause::OMPC_proc_bind,
1788 Clause::OMPC_reduction,
1789 Clause::OMPC_schedule,
1790 Clause::OMPC_shared,
1791 Clause::OMPC_uses_allocators,
1792};
1793
1794static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_for {
1795 Clause::OMPC_ompx_dyn_cgroup_mem,
1796 Clause::OMPC_thread_limit,
1797};
1798
1799static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_for {
1800};
1801
1802static OmpClauseSet requiredClauses_OMPD_target_parallel_for {
1803};
1804
1805// Sets for target parallel for simd
1806
1807static OmpClauseSet allowedClauses_OMPD_target_parallel_for_simd {
1808 Clause::OMPC_aligned,
1809 Clause::OMPC_allocate,
1810 Clause::OMPC_collapse,
1811 Clause::OMPC_default,
1812 Clause::OMPC_defaultmap,
1813 Clause::OMPC_depend,
1814 Clause::OMPC_device,
1815 Clause::OMPC_firstprivate,
1816 Clause::OMPC_has_device_addr,
1817 Clause::OMPC_if,
1818 Clause::OMPC_is_device_ptr,
1819 Clause::OMPC_lastprivate,
1820 Clause::OMPC_linear,
1821 Clause::OMPC_map,
1822 Clause::OMPC_nontemporal,
1823 Clause::OMPC_nowait,
1824 Clause::OMPC_num_threads,
1825 Clause::OMPC_ompx_attribute,
1826 Clause::OMPC_order,
1827 Clause::OMPC_ordered,
1828 Clause::OMPC_private,
1829 Clause::OMPC_proc_bind,
1830 Clause::OMPC_reduction,
1831 Clause::OMPC_safelen,
1832 Clause::OMPC_schedule,
1833 Clause::OMPC_shared,
1834 Clause::OMPC_simdlen,
1835 Clause::OMPC_uses_allocators,
1836};
1837
1838static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_for_simd {
1839 Clause::OMPC_ompx_dyn_cgroup_mem,
1840 Clause::OMPC_thread_limit,
1841};
1842
1843static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_for_simd {
1844};
1845
1846static OmpClauseSet requiredClauses_OMPD_target_parallel_for_simd {
1847};
1848
1849// Sets for target simd
1850
1851static OmpClauseSet allowedClauses_OMPD_target_simd {
1852 Clause::OMPC_aligned,
1853 Clause::OMPC_allocate,
1854 Clause::OMPC_depend,
1855 Clause::OMPC_firstprivate,
1856 Clause::OMPC_has_device_addr,
1857 Clause::OMPC_if,
1858 Clause::OMPC_is_device_ptr,
1859 Clause::OMPC_lastprivate,
1860 Clause::OMPC_linear,
1861 Clause::OMPC_map,
1862 Clause::OMPC_nontemporal,
1863 Clause::OMPC_nowait,
1864 Clause::OMPC_ompx_attribute,
1865 Clause::OMPC_private,
1866 Clause::OMPC_reduction,
1867 Clause::OMPC_shared,
1868 Clause::OMPC_uses_allocators,
1869};
1870
1871static OmpClauseSet allowedOnceClauses_OMPD_target_simd {
1872 Clause::OMPC_collapse,
1873 Clause::OMPC_defaultmap,
1874 Clause::OMPC_device,
1875 Clause::OMPC_num_threads,
1876 Clause::OMPC_ompx_dyn_cgroup_mem,
1877 Clause::OMPC_order,
1878 Clause::OMPC_proc_bind,
1879 Clause::OMPC_safelen,
1880 Clause::OMPC_schedule,
1881 Clause::OMPC_simdlen,
1882 Clause::OMPC_thread_limit,
1883};
1884
1885static OmpClauseSet allowedExclusiveClauses_OMPD_target_simd {
1886};
1887
1888static OmpClauseSet requiredClauses_OMPD_target_simd {
1889};
1890
1891// Sets for target teams
1892
1893static OmpClauseSet allowedClauses_OMPD_target_teams {
1894 Clause::OMPC_allocate,
1895 Clause::OMPC_depend,
1896 Clause::OMPC_firstprivate,
1897 Clause::OMPC_has_device_addr,
1898 Clause::OMPC_if,
1899 Clause::OMPC_is_device_ptr,
1900 Clause::OMPC_map,
1901 Clause::OMPC_ompx_attribute,
1902 Clause::OMPC_private,
1903 Clause::OMPC_reduction,
1904 Clause::OMPC_shared,
1905 Clause::OMPC_uses_allocators,
1906};
1907
1908static OmpClauseSet allowedOnceClauses_OMPD_target_teams {
1909 Clause::OMPC_default,
1910 Clause::OMPC_defaultmap,
1911 Clause::OMPC_device,
1912 Clause::OMPC_nowait,
1913 Clause::OMPC_num_teams,
1914 Clause::OMPC_ompx_dyn_cgroup_mem,
1915 Clause::OMPC_ompx_bare,
1916 Clause::OMPC_thread_limit,
1917};
1918
1919static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams {
1920};
1921
1922static OmpClauseSet requiredClauses_OMPD_target_teams {
1923};
1924
1925// Sets for target teams distribute
1926
1927static OmpClauseSet allowedClauses_OMPD_target_teams_distribute {
1928 Clause::OMPC_allocate,
1929 Clause::OMPC_depend,
1930 Clause::OMPC_firstprivate,
1931 Clause::OMPC_has_device_addr,
1932 Clause::OMPC_if,
1933 Clause::OMPC_is_device_ptr,
1934 Clause::OMPC_lastprivate,
1935 Clause::OMPC_map,
1936 Clause::OMPC_ompx_attribute,
1937 Clause::OMPC_private,
1938 Clause::OMPC_reduction,
1939 Clause::OMPC_shared,
1940 Clause::OMPC_uses_allocators,
1941};
1942
1943static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute {
1944 Clause::OMPC_collapse,
1945 Clause::OMPC_default,
1946 Clause::OMPC_defaultmap,
1947 Clause::OMPC_device,
1948 Clause::OMPC_dist_schedule,
1949 Clause::OMPC_nowait,
1950 Clause::OMPC_num_teams,
1951 Clause::OMPC_ompx_dyn_cgroup_mem,
1952 Clause::OMPC_order,
1953 Clause::OMPC_thread_limit,
1954};
1955
1956static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute {
1957};
1958
1959static OmpClauseSet requiredClauses_OMPD_target_teams_distribute {
1960};
1961
1962// Sets for target teams distribute parallel do
1963
1964static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_do {
1965 Clause::OMPC_allocate,
1966 Clause::OMPC_depend,
1967 Clause::OMPC_firstprivate,
1968 Clause::OMPC_has_device_addr,
1969 Clause::OMPC_if,
1970 Clause::OMPC_is_device_ptr,
1971 Clause::OMPC_lastprivate,
1972 Clause::OMPC_linear,
1973 Clause::OMPC_map,
1974 Clause::OMPC_private,
1975 Clause::OMPC_reduction,
1976 Clause::OMPC_shared,
1977 Clause::OMPC_uses_allocators,
1978};
1979
1980static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_do {
1981 Clause::OMPC_collapse,
1982 Clause::OMPC_default,
1983 Clause::OMPC_defaultmap,
1984 Clause::OMPC_device,
1985 Clause::OMPC_dist_schedule,
1986 Clause::OMPC_nowait,
1987 Clause::OMPC_num_teams,
1988 Clause::OMPC_num_threads,
1989 Clause::OMPC_order,
1990 Clause::OMPC_proc_bind,
1991 Clause::OMPC_schedule,
1992 Clause::OMPC_thread_limit,
1993};
1994
1995static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do {
1996};
1997
1998static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_do {
1999};
2000
2001// Sets for target teams distribute parallel do simd
2002
2003static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_do_simd {
2004 Clause::OMPC_aligned,
2005 Clause::OMPC_allocate,
2006 Clause::OMPC_depend,
2007 Clause::OMPC_firstprivate,
2008 Clause::OMPC_has_device_addr,
2009 Clause::OMPC_if,
2010 Clause::OMPC_is_device_ptr,
2011 Clause::OMPC_lastprivate,
2012 Clause::OMPC_linear,
2013 Clause::OMPC_map,
2014 Clause::OMPC_nontemporal,
2015 Clause::OMPC_private,
2016 Clause::OMPC_reduction,
2017 Clause::OMPC_shared,
2018 Clause::OMPC_uses_allocators,
2019};
2020
2021static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_do_simd {
2022 Clause::OMPC_collapse,
2023 Clause::OMPC_default,
2024 Clause::OMPC_defaultmap,
2025 Clause::OMPC_device,
2026 Clause::OMPC_dist_schedule,
2027 Clause::OMPC_nowait,
2028 Clause::OMPC_num_teams,
2029 Clause::OMPC_num_threads,
2030 Clause::OMPC_order,
2031 Clause::OMPC_proc_bind,
2032 Clause::OMPC_safelen,
2033 Clause::OMPC_schedule,
2034 Clause::OMPC_simdlen,
2035 Clause::OMPC_thread_limit,
2036};
2037
2038static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do_simd {
2039};
2040
2041static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_do_simd {
2042};
2043
2044// Sets for target teams distribute parallel for
2045
2046static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_for {
2047 Clause::OMPC_allocate,
2048 Clause::OMPC_collapse,
2049 Clause::OMPC_default,
2050 Clause::OMPC_defaultmap,
2051 Clause::OMPC_depend,
2052 Clause::OMPC_device,
2053 Clause::OMPC_dist_schedule,
2054 Clause::OMPC_firstprivate,
2055 Clause::OMPC_has_device_addr,
2056 Clause::OMPC_if,
2057 Clause::OMPC_is_device_ptr,
2058 Clause::OMPC_lastprivate,
2059 Clause::OMPC_map,
2060 Clause::OMPC_nowait,
2061 Clause::OMPC_num_teams,
2062 Clause::OMPC_num_threads,
2063 Clause::OMPC_ompx_attribute,
2064 Clause::OMPC_order,
2065 Clause::OMPC_private,
2066 Clause::OMPC_proc_bind,
2067 Clause::OMPC_reduction,
2068 Clause::OMPC_schedule,
2069 Clause::OMPC_shared,
2070 Clause::OMPC_thread_limit,
2071 Clause::OMPC_uses_allocators,
2072};
2073
2074static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_for {
2075 Clause::OMPC_ompx_dyn_cgroup_mem,
2076};
2077
2078static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for {
2079};
2080
2081static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_for {
2082};
2083
2084// Sets for target teams distribute parallel for simd
2085
2086static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_for_simd {
2087 Clause::OMPC_aligned,
2088 Clause::OMPC_allocate,
2089 Clause::OMPC_collapse,
2090 Clause::OMPC_default,
2091 Clause::OMPC_defaultmap,
2092 Clause::OMPC_depend,
2093 Clause::OMPC_device,
2094 Clause::OMPC_dist_schedule,
2095 Clause::OMPC_firstprivate,
2096 Clause::OMPC_has_device_addr,
2097 Clause::OMPC_if,
2098 Clause::OMPC_is_device_ptr,
2099 Clause::OMPC_lastprivate,
2100 Clause::OMPC_linear,
2101 Clause::OMPC_map,
2102 Clause::OMPC_nontemporal,
2103 Clause::OMPC_nowait,
2104 Clause::OMPC_num_teams,
2105 Clause::OMPC_num_threads,
2106 Clause::OMPC_ompx_attribute,
2107 Clause::OMPC_order,
2108 Clause::OMPC_private,
2109 Clause::OMPC_proc_bind,
2110 Clause::OMPC_reduction,
2111 Clause::OMPC_safelen,
2112 Clause::OMPC_schedule,
2113 Clause::OMPC_shared,
2114 Clause::OMPC_simdlen,
2115 Clause::OMPC_thread_limit,
2116 Clause::OMPC_uses_allocators,
2117};
2118
2119static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_for_simd {
2120 Clause::OMPC_ompx_dyn_cgroup_mem,
2121};
2122
2123static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for_simd {
2124};
2125
2126static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_for_simd {
2127};
2128
2129// Sets for target teams distribute simd
2130
2131static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_simd {
2132 Clause::OMPC_aligned,
2133 Clause::OMPC_allocate,
2134 Clause::OMPC_depend,
2135 Clause::OMPC_firstprivate,
2136 Clause::OMPC_has_device_addr,
2137 Clause::OMPC_if,
2138 Clause::OMPC_is_device_ptr,
2139 Clause::OMPC_lastprivate,
2140 Clause::OMPC_linear,
2141 Clause::OMPC_map,
2142 Clause::OMPC_nontemporal,
2143 Clause::OMPC_ompx_attribute,
2144 Clause::OMPC_private,
2145 Clause::OMPC_reduction,
2146 Clause::OMPC_shared,
2147 Clause::OMPC_uses_allocators,
2148};
2149
2150static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_simd {
2151 Clause::OMPC_collapse,
2152 Clause::OMPC_defaultmap,
2153 Clause::OMPC_device,
2154 Clause::OMPC_dist_schedule,
2155 Clause::OMPC_nowait,
2156 Clause::OMPC_num_teams,
2157 Clause::OMPC_ompx_dyn_cgroup_mem,
2158 Clause::OMPC_order,
2159 Clause::OMPC_safelen,
2160 Clause::OMPC_simdlen,
2161 Clause::OMPC_thread_limit,
2162};
2163
2164static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_simd {
2165};
2166
2167static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_simd {
2168};
2169
2170// Sets for target update
2171
2172static OmpClauseSet allowedClauses_OMPD_target_update {
2173 Clause::OMPC_depend,
2174 Clause::OMPC_from,
2175 Clause::OMPC_to,
2176};
2177
2178static OmpClauseSet allowedOnceClauses_OMPD_target_update {
2179 Clause::OMPC_device,
2180 Clause::OMPC_if,
2181 Clause::OMPC_nowait,
2182};
2183
2184static OmpClauseSet allowedExclusiveClauses_OMPD_target_update {
2185};
2186
2187static OmpClauseSet requiredClauses_OMPD_target_update {
2188};
2189
2190// Sets for task
2191
2192static OmpClauseSet allowedClauses_OMPD_task {
2193 Clause::OMPC_affinity,
2194 Clause::OMPC_allocate,
2195 Clause::OMPC_depend,
2196 Clause::OMPC_firstprivate,
2197 Clause::OMPC_in_reduction,
2198 Clause::OMPC_mergeable,
2199 Clause::OMPC_private,
2200 Clause::OMPC_shared,
2201 Clause::OMPC_untied,
2202};
2203
2204static OmpClauseSet allowedOnceClauses_OMPD_task {
2205 Clause::OMPC_default,
2206 Clause::OMPC_detach,
2207 Clause::OMPC_final,
2208 Clause::OMPC_if,
2209 Clause::OMPC_priority,
2210};
2211
2212static OmpClauseSet allowedExclusiveClauses_OMPD_task {
2213};
2214
2215static OmpClauseSet requiredClauses_OMPD_task {
2216};
2217
2218// Sets for taskgroup
2219
2220static OmpClauseSet allowedClauses_OMPD_taskgroup {
2221 Clause::OMPC_allocate,
2222 Clause::OMPC_task_reduction,
2223};
2224
2225static OmpClauseSet allowedOnceClauses_OMPD_taskgroup {
2226};
2227
2228static OmpClauseSet allowedExclusiveClauses_OMPD_taskgroup {
2229};
2230
2231static OmpClauseSet requiredClauses_OMPD_taskgroup {
2232};
2233
2234// Sets for taskloop
2235
2236static OmpClauseSet allowedClauses_OMPD_taskloop {
2237 Clause::OMPC_allocate,
2238 Clause::OMPC_firstprivate,
2239 Clause::OMPC_in_reduction,
2240 Clause::OMPC_lastprivate,
2241 Clause::OMPC_mergeable,
2242 Clause::OMPC_nogroup,
2243 Clause::OMPC_private,
2244 Clause::OMPC_reduction,
2245 Clause::OMPC_shared,
2246 Clause::OMPC_untied,
2247};
2248
2249static OmpClauseSet allowedOnceClauses_OMPD_taskloop {
2250 Clause::OMPC_collapse,
2251 Clause::OMPC_default,
2252 Clause::OMPC_final,
2253 Clause::OMPC_if,
2254 Clause::OMPC_priority,
2255};
2256
2257static OmpClauseSet allowedExclusiveClauses_OMPD_taskloop {
2258 Clause::OMPC_grainsize,
2259 Clause::OMPC_num_tasks,
2260};
2261
2262static OmpClauseSet requiredClauses_OMPD_taskloop {
2263};
2264
2265// Sets for taskloop simd
2266
2267static OmpClauseSet allowedClauses_OMPD_taskloop_simd {
2268 Clause::OMPC_aligned,
2269 Clause::OMPC_allocate,
2270 Clause::OMPC_default,
2271 Clause::OMPC_firstprivate,
2272 Clause::OMPC_if,
2273 Clause::OMPC_in_reduction,
2274 Clause::OMPC_lastprivate,
2275 Clause::OMPC_linear,
2276 Clause::OMPC_mergeable,
2277 Clause::OMPC_nogroup,
2278 Clause::OMPC_nontemporal,
2279 Clause::OMPC_private,
2280 Clause::OMPC_reduction,
2281 Clause::OMPC_shared,
2282 Clause::OMPC_untied,
2283};
2284
2285static OmpClauseSet allowedOnceClauses_OMPD_taskloop_simd {
2286 Clause::OMPC_collapse,
2287 Clause::OMPC_final,
2288 Clause::OMPC_order,
2289 Clause::OMPC_priority,
2290 Clause::OMPC_safelen,
2291 Clause::OMPC_simdlen,
2292};
2293
2294static OmpClauseSet allowedExclusiveClauses_OMPD_taskloop_simd {
2295 Clause::OMPC_grainsize,
2296 Clause::OMPC_num_tasks,
2297};
2298
2299static OmpClauseSet requiredClauses_OMPD_taskloop_simd {
2300};
2301
2302// Sets for taskwait
2303
2304static OmpClauseSet allowedClauses_OMPD_taskwait {
2305 Clause::OMPC_depend,
2306 Clause::OMPC_nowait,
2307};
2308
2309static OmpClauseSet allowedOnceClauses_OMPD_taskwait {
2310};
2311
2312static OmpClauseSet allowedExclusiveClauses_OMPD_taskwait {
2313};
2314
2315static OmpClauseSet requiredClauses_OMPD_taskwait {
2316};
2317
2318// Sets for taskyield
2319
2320static OmpClauseSet allowedClauses_OMPD_taskyield {
2321};
2322
2323static OmpClauseSet allowedOnceClauses_OMPD_taskyield {
2324};
2325
2326static OmpClauseSet allowedExclusiveClauses_OMPD_taskyield {
2327};
2328
2329static OmpClauseSet requiredClauses_OMPD_taskyield {
2330};
2331
2332// Sets for teams
2333
2334static OmpClauseSet allowedClauses_OMPD_teams {
2335 Clause::OMPC_allocate,
2336 Clause::OMPC_firstprivate,
2337 Clause::OMPC_ompx_attribute,
2338 Clause::OMPC_private,
2339 Clause::OMPC_reduction,
2340 Clause::OMPC_shared,
2341};
2342
2343static OmpClauseSet allowedOnceClauses_OMPD_teams {
2344 Clause::OMPC_default,
2345 Clause::OMPC_if,
2346 Clause::OMPC_num_teams,
2347 Clause::OMPC_thread_limit,
2348};
2349
2350static OmpClauseSet allowedExclusiveClauses_OMPD_teams {
2351};
2352
2353static OmpClauseSet requiredClauses_OMPD_teams {
2354};
2355
2356// Sets for teams distribute
2357
2358static OmpClauseSet allowedClauses_OMPD_teams_distribute {
2359 Clause::OMPC_allocate,
2360 Clause::OMPC_collapse,
2361 Clause::OMPC_default,
2362 Clause::OMPC_dist_schedule,
2363 Clause::OMPC_firstprivate,
2364 Clause::OMPC_lastprivate,
2365 Clause::OMPC_num_teams,
2366 Clause::OMPC_ompx_attribute,
2367 Clause::OMPC_private,
2368 Clause::OMPC_reduction,
2369 Clause::OMPC_shared,
2370 Clause::OMPC_thread_limit,
2371};
2372
2373static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute {
2374 Clause::OMPC_if,
2375 Clause::OMPC_order,
2376};
2377
2378static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute {
2379};
2380
2381static OmpClauseSet requiredClauses_OMPD_teams_distribute {
2382};
2383
2384// Sets for teams distribute parallel do
2385
2386static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_do {
2387 Clause::OMPC_allocate,
2388 Clause::OMPC_copyin,
2389 Clause::OMPC_firstprivate,
2390 Clause::OMPC_if,
2391 Clause::OMPC_lastprivate,
2392 Clause::OMPC_linear,
2393 Clause::OMPC_private,
2394 Clause::OMPC_reduction,
2395 Clause::OMPC_shared,
2396};
2397
2398static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_do {
2399 Clause::OMPC_collapse,
2400 Clause::OMPC_default,
2401 Clause::OMPC_dist_schedule,
2402 Clause::OMPC_num_teams,
2403 Clause::OMPC_num_threads,
2404 Clause::OMPC_order,
2405 Clause::OMPC_proc_bind,
2406 Clause::OMPC_schedule,
2407 Clause::OMPC_thread_limit,
2408};
2409
2410static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_do {
2411};
2412
2413static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_do {
2414};
2415
2416// Sets for teams distribute parallel do simd
2417
2418static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_do_simd {
2419 Clause::OMPC_aligned,
2420 Clause::OMPC_allocate,
2421 Clause::OMPC_firstprivate,
2422 Clause::OMPC_if,
2423 Clause::OMPC_lastprivate,
2424 Clause::OMPC_linear,
2425 Clause::OMPC_nontemporal,
2426 Clause::OMPC_private,
2427 Clause::OMPC_reduction,
2428 Clause::OMPC_shared,
2429};
2430
2431static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_do_simd {
2432 Clause::OMPC_collapse,
2433 Clause::OMPC_default,
2434 Clause::OMPC_dist_schedule,
2435 Clause::OMPC_num_teams,
2436 Clause::OMPC_num_threads,
2437 Clause::OMPC_order,
2438 Clause::OMPC_proc_bind,
2439 Clause::OMPC_safelen,
2440 Clause::OMPC_schedule,
2441 Clause::OMPC_simdlen,
2442 Clause::OMPC_thread_limit,
2443};
2444
2445static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_do_simd {
2446};
2447
2448static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_do_simd {
2449};
2450
2451// Sets for teams distribute parallel for
2452
2453static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_for {
2454 Clause::OMPC_allocate,
2455 Clause::OMPC_collapse,
2456 Clause::OMPC_copyin,
2457 Clause::OMPC_default,
2458 Clause::OMPC_dist_schedule,
2459 Clause::OMPC_firstprivate,
2460 Clause::OMPC_if,
2461 Clause::OMPC_lastprivate,
2462 Clause::OMPC_num_teams,
2463 Clause::OMPC_num_threads,
2464 Clause::OMPC_ompx_attribute,
2465 Clause::OMPC_order,
2466 Clause::OMPC_private,
2467 Clause::OMPC_proc_bind,
2468 Clause::OMPC_reduction,
2469 Clause::OMPC_schedule,
2470 Clause::OMPC_shared,
2471 Clause::OMPC_thread_limit,
2472};
2473
2474static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_for {
2475};
2476
2477static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_for {
2478};
2479
2480static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_for {
2481};
2482
2483// Sets for teams distribute parallel for simd
2484
2485static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_for_simd {
2486 Clause::OMPC_aligned,
2487 Clause::OMPC_allocate,
2488 Clause::OMPC_collapse,
2489 Clause::OMPC_default,
2490 Clause::OMPC_dist_schedule,
2491 Clause::OMPC_firstprivate,
2492 Clause::OMPC_if,
2493 Clause::OMPC_lastprivate,
2494 Clause::OMPC_linear,
2495 Clause::OMPC_nontemporal,
2496 Clause::OMPC_num_teams,
2497 Clause::OMPC_num_threads,
2498 Clause::OMPC_ompx_attribute,
2499 Clause::OMPC_order,
2500 Clause::OMPC_private,
2501 Clause::OMPC_proc_bind,
2502 Clause::OMPC_reduction,
2503 Clause::OMPC_safelen,
2504 Clause::OMPC_schedule,
2505 Clause::OMPC_shared,
2506 Clause::OMPC_simdlen,
2507 Clause::OMPC_thread_limit,
2508};
2509
2510static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_for_simd {
2511};
2512
2513static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_for_simd {
2514};
2515
2516static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_for_simd {
2517};
2518
2519// Sets for teams distribute simd
2520
2521static OmpClauseSet allowedClauses_OMPD_teams_distribute_simd {
2522 Clause::OMPC_aligned,
2523 Clause::OMPC_allocate,
2524 Clause::OMPC_firstprivate,
2525 Clause::OMPC_if,
2526 Clause::OMPC_lastprivate,
2527 Clause::OMPC_linear,
2528 Clause::OMPC_nontemporal,
2529 Clause::OMPC_ompx_attribute,
2530 Clause::OMPC_private,
2531 Clause::OMPC_reduction,
2532 Clause::OMPC_shared,
2533};
2534
2535static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_simd {
2536 Clause::OMPC_collapse,
2537 Clause::OMPC_default,
2538 Clause::OMPC_dist_schedule,
2539 Clause::OMPC_num_teams,
2540 Clause::OMPC_order,
2541 Clause::OMPC_safelen,
2542 Clause::OMPC_simdlen,
2543 Clause::OMPC_thread_limit,
2544};
2545
2546static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_simd {
2547};
2548
2549static OmpClauseSet requiredClauses_OMPD_teams_distribute_simd {
2550};
2551
2552// Sets for threadprivate
2553
2554static OmpClauseSet allowedClauses_OMPD_threadprivate {
2555};
2556
2557static OmpClauseSet allowedOnceClauses_OMPD_threadprivate {
2558};
2559
2560static OmpClauseSet allowedExclusiveClauses_OMPD_threadprivate {
2561};
2562
2563static OmpClauseSet requiredClauses_OMPD_threadprivate {
2564};
2565
2566// Sets for tile
2567
2568static OmpClauseSet allowedClauses_OMPD_tile {
2569};
2570
2571static OmpClauseSet allowedOnceClauses_OMPD_tile {
2572 Clause::OMPC_sizes,
2573};
2574
2575static OmpClauseSet allowedExclusiveClauses_OMPD_tile {
2576};
2577
2578static OmpClauseSet requiredClauses_OMPD_tile {
2579};
2580
2581// Sets for unknown
2582
2583static OmpClauseSet allowedClauses_OMPD_unknown {
2584};
2585
2586static OmpClauseSet allowedOnceClauses_OMPD_unknown {
2587};
2588
2589static OmpClauseSet allowedExclusiveClauses_OMPD_unknown {
2590};
2591
2592static OmpClauseSet requiredClauses_OMPD_unknown {
2593};
2594
2595// Sets for unroll
2596
2597static OmpClauseSet allowedClauses_OMPD_unroll {
2598};
2599
2600static OmpClauseSet allowedOnceClauses_OMPD_unroll {
2601 Clause::OMPC_full,
2602 Clause::OMPC_partial,
2603};
2604
2605static OmpClauseSet allowedExclusiveClauses_OMPD_unroll {
2606};
2607
2608static OmpClauseSet requiredClauses_OMPD_unroll {
2609};
2610
2611// Sets for workshare
2612
2613static OmpClauseSet allowedClauses_OMPD_workshare {
2614};
2615
2616static OmpClauseSet allowedOnceClauses_OMPD_workshare {
2617 Clause::OMPC_nowait,
2618};
2619
2620static OmpClauseSet allowedExclusiveClauses_OMPD_workshare {
2621};
2622
2623static OmpClauseSet requiredClauses_OMPD_workshare {
2624};
2625
2626// Sets for dispatch
2627
2628static OmpClauseSet allowedClauses_OMPD_dispatch {
2629 Clause::OMPC_depend,
2630 Clause::OMPC_device,
2631 Clause::OMPC_has_device_addr,
2632 Clause::OMPC_is_device_ptr,
2633 Clause::OMPC_nocontext,
2634 Clause::OMPC_novariants,
2635 Clause::OMPC_nowait,
2636};
2637
2638static OmpClauseSet allowedOnceClauses_OMPD_dispatch {
2639};
2640
2641static OmpClauseSet allowedExclusiveClauses_OMPD_dispatch {
2642};
2643
2644static OmpClauseSet requiredClauses_OMPD_dispatch {
2645};
2646
2647// Sets for interop
2648
2649static OmpClauseSet allowedClauses_OMPD_interop {
2650 Clause::OMPC_depend,
2651 Clause::OMPC_destroy,
2652 Clause::OMPC_device,
2653 Clause::OMPC_init,
2654 Clause::OMPC_nowait,
2655 Clause::OMPC_use,
2656};
2657
2658static OmpClauseSet allowedOnceClauses_OMPD_interop {
2659};
2660
2661static OmpClauseSet allowedExclusiveClauses_OMPD_interop {
2662};
2663
2664static OmpClauseSet requiredClauses_OMPD_interop {
2665};
2666
2667// Sets for loop
2668
2669static OmpClauseSet allowedClauses_OMPD_loop {
2670 Clause::OMPC_lastprivate,
2671 Clause::OMPC_private,
2672 Clause::OMPC_reduction,
2673};
2674
2675static OmpClauseSet allowedOnceClauses_OMPD_loop {
2676 Clause::OMPC_bind,
2677 Clause::OMPC_collapse,
2678 Clause::OMPC_order,
2679};
2680
2681static OmpClauseSet allowedExclusiveClauses_OMPD_loop {
2682};
2683
2684static OmpClauseSet requiredClauses_OMPD_loop {
2685};
2686
2687// Sets for masked
2688
2689static OmpClauseSet allowedClauses_OMPD_masked {
2690};
2691
2692static OmpClauseSet allowedOnceClauses_OMPD_masked {
2693 Clause::OMPC_filter,
2694};
2695
2696static OmpClauseSet allowedExclusiveClauses_OMPD_masked {
2697};
2698
2699static OmpClauseSet requiredClauses_OMPD_masked {
2700};
2701
2702// Sets for parallel loop
2703
2704static OmpClauseSet allowedClauses_OMPD_parallel_loop {
2705 Clause::OMPC_allocate,
2706 Clause::OMPC_copyin,
2707 Clause::OMPC_firstprivate,
2708 Clause::OMPC_lastprivate,
2709 Clause::OMPC_ompx_attribute,
2710 Clause::OMPC_private,
2711 Clause::OMPC_reduction,
2712 Clause::OMPC_shared,
2713};
2714
2715static OmpClauseSet allowedOnceClauses_OMPD_parallel_loop {
2716 Clause::OMPC_bind,
2717 Clause::OMPC_collapse,
2718 Clause::OMPC_default,
2719 Clause::OMPC_if,
2720 Clause::OMPC_num_threads,
2721 Clause::OMPC_order,
2722 Clause::OMPC_proc_bind,
2723};
2724
2725static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_loop {
2726};
2727
2728static OmpClauseSet requiredClauses_OMPD_parallel_loop {
2729};
2730
2731// Sets for target loop
2732
2733static OmpClauseSet allowedClauses_OMPD_target_loop {
2734 Clause::OMPC_allocate,
2735 Clause::OMPC_depend,
2736 Clause::OMPC_firstprivate,
2737 Clause::OMPC_is_device_ptr,
2738 Clause::OMPC_has_device_addr,
2739 Clause::OMPC_lastprivate,
2740 Clause::OMPC_map,
2741 Clause::OMPC_private,
2742 Clause::OMPC_reduction,
2743 Clause::OMPC_uses_allocators,
2744 Clause::OMPC_ompx_attribute,
2745 Clause::OMPC_in_reduction,
2746};
2747
2748static OmpClauseSet allowedOnceClauses_OMPD_target_loop {
2749 Clause::OMPC_bind,
2750 Clause::OMPC_collapse,
2751 Clause::OMPC_order,
2752 Clause::OMPC_thread_limit,
2753 Clause::OMPC_ompx_dyn_cgroup_mem,
2754 Clause::OMPC_if,
2755 Clause::OMPC_device,
2756 Clause::OMPC_defaultmap,
2757 Clause::OMPC_nowait,
2758};
2759
2760static OmpClauseSet allowedExclusiveClauses_OMPD_target_loop {
2761};
2762
2763static OmpClauseSet requiredClauses_OMPD_target_loop {
2764};
2765
2766// Sets for target parallel loop
2767
2768static OmpClauseSet allowedClauses_OMPD_target_parallel_loop {
2769 Clause::OMPC_allocate,
2770 Clause::OMPC_depend,
2771 Clause::OMPC_device,
2772 Clause::OMPC_firstprivate,
2773 Clause::OMPC_has_device_addr,
2774 Clause::OMPC_if,
2775 Clause::OMPC_is_device_ptr,
2776 Clause::OMPC_lastprivate,
2777 Clause::OMPC_map,
2778 Clause::OMPC_ompx_attribute,
2779 Clause::OMPC_private,
2780 Clause::OMPC_reduction,
2781 Clause::OMPC_shared,
2782 Clause::OMPC_uses_allocators,
2783};
2784
2785static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_loop {
2786 Clause::OMPC_bind,
2787 Clause::OMPC_collapse,
2788 Clause::OMPC_default,
2789 Clause::OMPC_defaultmap,
2790 Clause::OMPC_nowait,
2791 Clause::OMPC_num_threads,
2792 Clause::OMPC_ompx_dyn_cgroup_mem,
2793 Clause::OMPC_order,
2794 Clause::OMPC_proc_bind,
2795 Clause::OMPC_thread_limit,
2796};
2797
2798static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_loop {
2799};
2800
2801static OmpClauseSet requiredClauses_OMPD_target_parallel_loop {
2802};
2803
2804// Sets for target teams loop
2805
2806static OmpClauseSet allowedClauses_OMPD_target_teams_loop {
2807 Clause::OMPC_allocate,
2808 Clause::OMPC_defaultmap,
2809 Clause::OMPC_depend,
2810 Clause::OMPC_device,
2811 Clause::OMPC_firstprivate,
2812 Clause::OMPC_has_device_addr,
2813 Clause::OMPC_if,
2814 Clause::OMPC_is_device_ptr,
2815 Clause::OMPC_lastprivate,
2816 Clause::OMPC_map,
2817 Clause::OMPC_ompx_attribute,
2818 Clause::OMPC_private,
2819 Clause::OMPC_reduction,
2820 Clause::OMPC_shared,
2821 Clause::OMPC_uses_allocators,
2822};
2823
2824static OmpClauseSet allowedOnceClauses_OMPD_target_teams_loop {
2825 Clause::OMPC_bind,
2826 Clause::OMPC_collapse,
2827 Clause::OMPC_default,
2828 Clause::OMPC_nowait,
2829 Clause::OMPC_num_teams,
2830 Clause::OMPC_ompx_dyn_cgroup_mem,
2831 Clause::OMPC_order,
2832 Clause::OMPC_thread_limit,
2833};
2834
2835static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_loop {
2836};
2837
2838static OmpClauseSet requiredClauses_OMPD_target_teams_loop {
2839};
2840
2841// Sets for teams loop
2842
2843static OmpClauseSet allowedClauses_OMPD_teams_loop {
2844 Clause::OMPC_allocate,
2845 Clause::OMPC_firstprivate,
2846 Clause::OMPC_lastprivate,
2847 Clause::OMPC_ompx_attribute,
2848 Clause::OMPC_private,
2849 Clause::OMPC_reduction,
2850 Clause::OMPC_shared,
2851};
2852
2853static OmpClauseSet allowedOnceClauses_OMPD_teams_loop {
2854 Clause::OMPC_bind,
2855 Clause::OMPC_collapse,
2856 Clause::OMPC_default,
2857 Clause::OMPC_num_teams,
2858 Clause::OMPC_order,
2859 Clause::OMPC_thread_limit,
2860};
2861
2862static OmpClauseSet allowedExclusiveClauses_OMPD_teams_loop {
2863};
2864
2865static OmpClauseSet requiredClauses_OMPD_teams_loop {
2866};
2867} // namespace omp
2868} // namespace llvm
2869
2870#endif // GEN_FLANG_DIRECTIVE_CLAUSE_SETS
2871
2872#ifdef GEN_FLANG_DIRECTIVE_CLAUSE_MAP
2873#undef GEN_FLANG_DIRECTIVE_CLAUSE_MAP
2874
2875{
2876 {llvm::omp::Directive::OMPD_allocate,
2877 {
2878 llvm::omp::allowedClauses_OMPD_allocate,
2879 llvm::omp::allowedOnceClauses_OMPD_allocate,
2880 llvm::omp::allowedExclusiveClauses_OMPD_allocate,
2881 llvm::omp::requiredClauses_OMPD_allocate,
2882 }
2883 },
2884 {llvm::omp::Directive::OMPD_allocators,
2885 {
2886 llvm::omp::allowedClauses_OMPD_allocators,
2887 llvm::omp::allowedOnceClauses_OMPD_allocators,
2888 llvm::omp::allowedExclusiveClauses_OMPD_allocators,
2889 llvm::omp::requiredClauses_OMPD_allocators,
2890 }
2891 },
2892 {llvm::omp::Directive::OMPD_assume,
2893 {
2894 llvm::omp::allowedClauses_OMPD_assume,
2895 llvm::omp::allowedOnceClauses_OMPD_assume,
2896 llvm::omp::allowedExclusiveClauses_OMPD_assume,
2897 llvm::omp::requiredClauses_OMPD_assume,
2898 }
2899 },
2900 {llvm::omp::Directive::OMPD_assumes,
2901 {
2902 llvm::omp::allowedClauses_OMPD_assumes,
2903 llvm::omp::allowedOnceClauses_OMPD_assumes,
2904 llvm::omp::allowedExclusiveClauses_OMPD_assumes,
2905 llvm::omp::requiredClauses_OMPD_assumes,
2906 }
2907 },
2908 {llvm::omp::Directive::OMPD_atomic,
2909 {
2910 llvm::omp::allowedClauses_OMPD_atomic,
2911 llvm::omp::allowedOnceClauses_OMPD_atomic,
2912 llvm::omp::allowedExclusiveClauses_OMPD_atomic,
2913 llvm::omp::requiredClauses_OMPD_atomic,
2914 }
2915 },
2916 {llvm::omp::Directive::OMPD_barrier,
2917 {
2918 llvm::omp::allowedClauses_OMPD_barrier,
2919 llvm::omp::allowedOnceClauses_OMPD_barrier,
2920 llvm::omp::allowedExclusiveClauses_OMPD_barrier,
2921 llvm::omp::requiredClauses_OMPD_barrier,
2922 }
2923 },
2924 {llvm::omp::Directive::OMPD_begin_assumes,
2925 {
2926 llvm::omp::allowedClauses_OMPD_begin_assumes,
2927 llvm::omp::allowedOnceClauses_OMPD_begin_assumes,
2928 llvm::omp::allowedExclusiveClauses_OMPD_begin_assumes,
2929 llvm::omp::requiredClauses_OMPD_begin_assumes,
2930 }
2931 },
2932 {llvm::omp::Directive::OMPD_begin_declare_target,
2933 {
2934 llvm::omp::allowedClauses_OMPD_begin_declare_target,
2935 llvm::omp::allowedOnceClauses_OMPD_begin_declare_target,
2936 llvm::omp::allowedExclusiveClauses_OMPD_begin_declare_target,
2937 llvm::omp::requiredClauses_OMPD_begin_declare_target,
2938 }
2939 },
2940 {llvm::omp::Directive::OMPD_begin_declare_variant,
2941 {
2942 llvm::omp::allowedClauses_OMPD_begin_declare_variant,
2943 llvm::omp::allowedOnceClauses_OMPD_begin_declare_variant,
2944 llvm::omp::allowedExclusiveClauses_OMPD_begin_declare_variant,
2945 llvm::omp::requiredClauses_OMPD_begin_declare_variant,
2946 }
2947 },
2948 {llvm::omp::Directive::OMPD_cancel,
2949 {
2950 llvm::omp::allowedClauses_OMPD_cancel,
2951 llvm::omp::allowedOnceClauses_OMPD_cancel,
2952 llvm::omp::allowedExclusiveClauses_OMPD_cancel,
2953 llvm::omp::requiredClauses_OMPD_cancel,
2954 }
2955 },
2956 {llvm::omp::Directive::OMPD_cancellation_point,
2957 {
2958 llvm::omp::allowedClauses_OMPD_cancellation_point,
2959 llvm::omp::allowedOnceClauses_OMPD_cancellation_point,
2960 llvm::omp::allowedExclusiveClauses_OMPD_cancellation_point,
2961 llvm::omp::requiredClauses_OMPD_cancellation_point,
2962 }
2963 },
2964 {llvm::omp::Directive::OMPD_critical,
2965 {
2966 llvm::omp::allowedClauses_OMPD_critical,
2967 llvm::omp::allowedOnceClauses_OMPD_critical,
2968 llvm::omp::allowedExclusiveClauses_OMPD_critical,
2969 llvm::omp::requiredClauses_OMPD_critical,
2970 }
2971 },
2972 {llvm::omp::Directive::OMPD_declare_mapper,
2973 {
2974 llvm::omp::allowedClauses_OMPD_declare_mapper,
2975 llvm::omp::allowedOnceClauses_OMPD_declare_mapper,
2976 llvm::omp::allowedExclusiveClauses_OMPD_declare_mapper,
2977 llvm::omp::requiredClauses_OMPD_declare_mapper,
2978 }
2979 },
2980 {llvm::omp::Directive::OMPD_declare_reduction,
2981 {
2982 llvm::omp::allowedClauses_OMPD_declare_reduction,
2983 llvm::omp::allowedOnceClauses_OMPD_declare_reduction,
2984 llvm::omp::allowedExclusiveClauses_OMPD_declare_reduction,
2985 llvm::omp::requiredClauses_OMPD_declare_reduction,
2986 }
2987 },
2988 {llvm::omp::Directive::OMPD_declare_simd,
2989 {
2990 llvm::omp::allowedClauses_OMPD_declare_simd,
2991 llvm::omp::allowedOnceClauses_OMPD_declare_simd,
2992 llvm::omp::allowedExclusiveClauses_OMPD_declare_simd,
2993 llvm::omp::requiredClauses_OMPD_declare_simd,
2994 }
2995 },
2996 {llvm::omp::Directive::OMPD_declare_target,
2997 {
2998 llvm::omp::allowedClauses_OMPD_declare_target,
2999 llvm::omp::allowedOnceClauses_OMPD_declare_target,
3000 llvm::omp::allowedExclusiveClauses_OMPD_declare_target,
3001 llvm::omp::requiredClauses_OMPD_declare_target,
3002 }
3003 },
3004 {llvm::omp::Directive::OMPD_declare_variant,
3005 {
3006 llvm::omp::allowedClauses_OMPD_declare_variant,
3007 llvm::omp::allowedOnceClauses_OMPD_declare_variant,
3008 llvm::omp::allowedExclusiveClauses_OMPD_declare_variant,
3009 llvm::omp::requiredClauses_OMPD_declare_variant,
3010 }
3011 },
3012 {llvm::omp::Directive::OMPD_depobj,
3013 {
3014 llvm::omp::allowedClauses_OMPD_depobj,
3015 llvm::omp::allowedOnceClauses_OMPD_depobj,
3016 llvm::omp::allowedExclusiveClauses_OMPD_depobj,
3017 llvm::omp::requiredClauses_OMPD_depobj,
3018 }
3019 },
3020 {llvm::omp::Directive::OMPD_distribute,
3021 {
3022 llvm::omp::allowedClauses_OMPD_distribute,
3023 llvm::omp::allowedOnceClauses_OMPD_distribute,
3024 llvm::omp::allowedExclusiveClauses_OMPD_distribute,
3025 llvm::omp::requiredClauses_OMPD_distribute,
3026 }
3027 },
3028 {llvm::omp::Directive::OMPD_distribute_parallel_do,
3029 {
3030 llvm::omp::allowedClauses_OMPD_distribute_parallel_do,
3031 llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_do,
3032 llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_do,
3033 llvm::omp::requiredClauses_OMPD_distribute_parallel_do,
3034 }
3035 },
3036 {llvm::omp::Directive::OMPD_distribute_parallel_do_simd,
3037 {
3038 llvm::omp::allowedClauses_OMPD_distribute_parallel_do_simd,
3039 llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_do_simd,
3040 llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_do_simd,
3041 llvm::omp::requiredClauses_OMPD_distribute_parallel_do_simd,
3042 }
3043 },
3044 {llvm::omp::Directive::OMPD_distribute_parallel_for,
3045 {
3046 llvm::omp::allowedClauses_OMPD_distribute_parallel_for,
3047 llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_for,
3048 llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_for,
3049 llvm::omp::requiredClauses_OMPD_distribute_parallel_for,
3050 }
3051 },
3052 {llvm::omp::Directive::OMPD_distribute_parallel_for_simd,
3053 {
3054 llvm::omp::allowedClauses_OMPD_distribute_parallel_for_simd,
3055 llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_for_simd,
3056 llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_for_simd,
3057 llvm::omp::requiredClauses_OMPD_distribute_parallel_for_simd,
3058 }
3059 },
3060 {llvm::omp::Directive::OMPD_distribute_simd,
3061 {
3062 llvm::omp::allowedClauses_OMPD_distribute_simd,
3063 llvm::omp::allowedOnceClauses_OMPD_distribute_simd,
3064 llvm::omp::allowedExclusiveClauses_OMPD_distribute_simd,
3065 llvm::omp::requiredClauses_OMPD_distribute_simd,
3066 }
3067 },
3068 {llvm::omp::Directive::OMPD_do,
3069 {
3070 llvm::omp::allowedClauses_OMPD_do,
3071 llvm::omp::allowedOnceClauses_OMPD_do,
3072 llvm::omp::allowedExclusiveClauses_OMPD_do,
3073 llvm::omp::requiredClauses_OMPD_do,
3074 }
3075 },
3076 {llvm::omp::Directive::OMPD_do_simd,
3077 {
3078 llvm::omp::allowedClauses_OMPD_do_simd,
3079 llvm::omp::allowedOnceClauses_OMPD_do_simd,
3080 llvm::omp::allowedExclusiveClauses_OMPD_do_simd,
3081 llvm::omp::requiredClauses_OMPD_do_simd,
3082 }
3083 },
3084 {llvm::omp::Directive::OMPD_end_assumes,
3085 {
3086 llvm::omp::allowedClauses_OMPD_end_assumes,
3087 llvm::omp::allowedOnceClauses_OMPD_end_assumes,
3088 llvm::omp::allowedExclusiveClauses_OMPD_end_assumes,
3089 llvm::omp::requiredClauses_OMPD_end_assumes,
3090 }
3091 },
3092 {llvm::omp::Directive::OMPD_end_declare_target,
3093 {
3094 llvm::omp::allowedClauses_OMPD_end_declare_target,
3095 llvm::omp::allowedOnceClauses_OMPD_end_declare_target,
3096 llvm::omp::allowedExclusiveClauses_OMPD_end_declare_target,
3097 llvm::omp::requiredClauses_OMPD_end_declare_target,
3098 }
3099 },
3100 {llvm::omp::Directive::OMPD_end_declare_variant,
3101 {
3102 llvm::omp::allowedClauses_OMPD_end_declare_variant,
3103 llvm::omp::allowedOnceClauses_OMPD_end_declare_variant,
3104 llvm::omp::allowedExclusiveClauses_OMPD_end_declare_variant,
3105 llvm::omp::requiredClauses_OMPD_end_declare_variant,
3106 }
3107 },
3108 {llvm::omp::Directive::OMPD_end_do,
3109 {
3110 llvm::omp::allowedClauses_OMPD_end_do,
3111 llvm::omp::allowedOnceClauses_OMPD_end_do,
3112 llvm::omp::allowedExclusiveClauses_OMPD_end_do,
3113 llvm::omp::requiredClauses_OMPD_end_do,
3114 }
3115 },
3116 {llvm::omp::Directive::OMPD_end_do_simd,
3117 {
3118 llvm::omp::allowedClauses_OMPD_end_do_simd,
3119 llvm::omp::allowedOnceClauses_OMPD_end_do_simd,
3120 llvm::omp::allowedExclusiveClauses_OMPD_end_do_simd,
3121 llvm::omp::requiredClauses_OMPD_end_do_simd,
3122 }
3123 },
3124 {llvm::omp::Directive::OMPD_end_scope,
3125 {
3126 llvm::omp::allowedClauses_OMPD_end_scope,
3127 llvm::omp::allowedOnceClauses_OMPD_end_scope,
3128 llvm::omp::allowedExclusiveClauses_OMPD_end_scope,
3129 llvm::omp::requiredClauses_OMPD_end_scope,
3130 }
3131 },
3132 {llvm::omp::Directive::OMPD_end_sections,
3133 {
3134 llvm::omp::allowedClauses_OMPD_end_sections,
3135 llvm::omp::allowedOnceClauses_OMPD_end_sections,
3136 llvm::omp::allowedExclusiveClauses_OMPD_end_sections,
3137 llvm::omp::requiredClauses_OMPD_end_sections,
3138 }
3139 },
3140 {llvm::omp::Directive::OMPD_end_single,
3141 {
3142 llvm::omp::allowedClauses_OMPD_end_single,
3143 llvm::omp::allowedOnceClauses_OMPD_end_single,
3144 llvm::omp::allowedExclusiveClauses_OMPD_end_single,
3145 llvm::omp::requiredClauses_OMPD_end_single,
3146 }
3147 },
3148 {llvm::omp::Directive::OMPD_end_workshare,
3149 {
3150 llvm::omp::allowedClauses_OMPD_end_workshare,
3151 llvm::omp::allowedOnceClauses_OMPD_end_workshare,
3152 llvm::omp::allowedExclusiveClauses_OMPD_end_workshare,
3153 llvm::omp::requiredClauses_OMPD_end_workshare,
3154 }
3155 },
3156 {llvm::omp::Directive::OMPD_error,
3157 {
3158 llvm::omp::allowedClauses_OMPD_error,
3159 llvm::omp::allowedOnceClauses_OMPD_error,
3160 llvm::omp::allowedExclusiveClauses_OMPD_error,
3161 llvm::omp::requiredClauses_OMPD_error,
3162 }
3163 },
3164 {llvm::omp::Directive::OMPD_flush,
3165 {
3166 llvm::omp::allowedClauses_OMPD_flush,
3167 llvm::omp::allowedOnceClauses_OMPD_flush,
3168 llvm::omp::allowedExclusiveClauses_OMPD_flush,
3169 llvm::omp::requiredClauses_OMPD_flush,
3170 }
3171 },
3172 {llvm::omp::Directive::OMPD_for,
3173 {
3174 llvm::omp::allowedClauses_OMPD_for,
3175 llvm::omp::allowedOnceClauses_OMPD_for,
3176 llvm::omp::allowedExclusiveClauses_OMPD_for,
3177 llvm::omp::requiredClauses_OMPD_for,
3178 }
3179 },
3180 {llvm::omp::Directive::OMPD_for_simd,
3181 {
3182 llvm::omp::allowedClauses_OMPD_for_simd,
3183 llvm::omp::allowedOnceClauses_OMPD_for_simd,
3184 llvm::omp::allowedExclusiveClauses_OMPD_for_simd,
3185 llvm::omp::requiredClauses_OMPD_for_simd,
3186 }
3187 },
3188 {llvm::omp::Directive::OMPD_interchange,
3189 {
3190 llvm::omp::allowedClauses_OMPD_interchange,
3191 llvm::omp::allowedOnceClauses_OMPD_interchange,
3192 llvm::omp::allowedExclusiveClauses_OMPD_interchange,
3193 llvm::omp::requiredClauses_OMPD_interchange,
3194 }
3195 },
3196 {llvm::omp::Directive::OMPD_masked_taskloop,
3197 {
3198 llvm::omp::allowedClauses_OMPD_masked_taskloop,
3199 llvm::omp::allowedOnceClauses_OMPD_masked_taskloop,
3200 llvm::omp::allowedExclusiveClauses_OMPD_masked_taskloop,
3201 llvm::omp::requiredClauses_OMPD_masked_taskloop,
3202 }
3203 },
3204 {llvm::omp::Directive::OMPD_masked_taskloop_simd,
3205 {
3206 llvm::omp::allowedClauses_OMPD_masked_taskloop_simd,
3207 llvm::omp::allowedOnceClauses_OMPD_masked_taskloop_simd,
3208 llvm::omp::allowedExclusiveClauses_OMPD_masked_taskloop_simd,
3209 llvm::omp::requiredClauses_OMPD_masked_taskloop_simd,
3210 }
3211 },
3212 {llvm::omp::Directive::OMPD_master,
3213 {
3214 llvm::omp::allowedClauses_OMPD_master,
3215 llvm::omp::allowedOnceClauses_OMPD_master,
3216 llvm::omp::allowedExclusiveClauses_OMPD_master,
3217 llvm::omp::requiredClauses_OMPD_master,
3218 }
3219 },
3220 {llvm::omp::Directive::OMPD_master_taskloop,
3221 {
3222 llvm::omp::allowedClauses_OMPD_master_taskloop,
3223 llvm::omp::allowedOnceClauses_OMPD_master_taskloop,
3224 llvm::omp::allowedExclusiveClauses_OMPD_master_taskloop,
3225 llvm::omp::requiredClauses_OMPD_master_taskloop,
3226 }
3227 },
3228 {llvm::omp::Directive::OMPD_master_taskloop_simd,
3229 {
3230 llvm::omp::allowedClauses_OMPD_master_taskloop_simd,
3231 llvm::omp::allowedOnceClauses_OMPD_master_taskloop_simd,
3232 llvm::omp::allowedExclusiveClauses_OMPD_master_taskloop_simd,
3233 llvm::omp::requiredClauses_OMPD_master_taskloop_simd,
3234 }
3235 },
3236 {llvm::omp::Directive::OMPD_metadirective,
3237 {
3238 llvm::omp::allowedClauses_OMPD_metadirective,
3239 llvm::omp::allowedOnceClauses_OMPD_metadirective,
3240 llvm::omp::allowedExclusiveClauses_OMPD_metadirective,
3241 llvm::omp::requiredClauses_OMPD_metadirective,
3242 }
3243 },
3244 {llvm::omp::Directive::OMPD_nothing,
3245 {
3246 llvm::omp::allowedClauses_OMPD_nothing,
3247 llvm::omp::allowedOnceClauses_OMPD_nothing,
3248 llvm::omp::allowedExclusiveClauses_OMPD_nothing,
3249 llvm::omp::requiredClauses_OMPD_nothing,
3250 }
3251 },
3252 {llvm::omp::Directive::OMPD_ordered,
3253 {
3254 llvm::omp::allowedClauses_OMPD_ordered,
3255 llvm::omp::allowedOnceClauses_OMPD_ordered,
3256 llvm::omp::allowedExclusiveClauses_OMPD_ordered,
3257 llvm::omp::requiredClauses_OMPD_ordered,
3258 }
3259 },
3260 {llvm::omp::Directive::OMPD_parallel,
3261 {
3262 llvm::omp::allowedClauses_OMPD_parallel,
3263 llvm::omp::allowedOnceClauses_OMPD_parallel,
3264 llvm::omp::allowedExclusiveClauses_OMPD_parallel,
3265 llvm::omp::requiredClauses_OMPD_parallel,
3266 }
3267 },
3268 {llvm::omp::Directive::OMPD_parallel_do,
3269 {
3270 llvm::omp::allowedClauses_OMPD_parallel_do,
3271 llvm::omp::allowedOnceClauses_OMPD_parallel_do,
3272 llvm::omp::allowedExclusiveClauses_OMPD_parallel_do,
3273 llvm::omp::requiredClauses_OMPD_parallel_do,
3274 }
3275 },
3276 {llvm::omp::Directive::OMPD_parallel_do_simd,
3277 {
3278 llvm::omp::allowedClauses_OMPD_parallel_do_simd,
3279 llvm::omp::allowedOnceClauses_OMPD_parallel_do_simd,
3280 llvm::omp::allowedExclusiveClauses_OMPD_parallel_do_simd,
3281 llvm::omp::requiredClauses_OMPD_parallel_do_simd,
3282 }
3283 },
3284 {llvm::omp::Directive::OMPD_parallel_for,
3285 {
3286 llvm::omp::allowedClauses_OMPD_parallel_for,
3287 llvm::omp::allowedOnceClauses_OMPD_parallel_for,
3288 llvm::omp::allowedExclusiveClauses_OMPD_parallel_for,
3289 llvm::omp::requiredClauses_OMPD_parallel_for,
3290 }
3291 },
3292 {llvm::omp::Directive::OMPD_parallel_for_simd,
3293 {
3294 llvm::omp::allowedClauses_OMPD_parallel_for_simd,
3295 llvm::omp::allowedOnceClauses_OMPD_parallel_for_simd,
3296 llvm::omp::allowedExclusiveClauses_OMPD_parallel_for_simd,
3297 llvm::omp::requiredClauses_OMPD_parallel_for_simd,
3298 }
3299 },
3300 {llvm::omp::Directive::OMPD_parallel_masked,
3301 {
3302 llvm::omp::allowedClauses_OMPD_parallel_masked,
3303 llvm::omp::allowedOnceClauses_OMPD_parallel_masked,
3304 llvm::omp::allowedExclusiveClauses_OMPD_parallel_masked,
3305 llvm::omp::requiredClauses_OMPD_parallel_masked,
3306 }
3307 },
3308 {llvm::omp::Directive::OMPD_parallel_masked_taskloop,
3309 {
3310 llvm::omp::allowedClauses_OMPD_parallel_masked_taskloop,
3311 llvm::omp::allowedOnceClauses_OMPD_parallel_masked_taskloop,
3312 llvm::omp::allowedExclusiveClauses_OMPD_parallel_masked_taskloop,
3313 llvm::omp::requiredClauses_OMPD_parallel_masked_taskloop,
3314 }
3315 },
3316 {llvm::omp::Directive::OMPD_parallel_masked_taskloop_simd,
3317 {
3318 llvm::omp::allowedClauses_OMPD_parallel_masked_taskloop_simd,
3319 llvm::omp::allowedOnceClauses_OMPD_parallel_masked_taskloop_simd,
3320 llvm::omp::allowedExclusiveClauses_OMPD_parallel_masked_taskloop_simd,
3321 llvm::omp::requiredClauses_OMPD_parallel_masked_taskloop_simd,
3322 }
3323 },
3324 {llvm::omp::Directive::OMPD_parallel_master,
3325 {
3326 llvm::omp::allowedClauses_OMPD_parallel_master,
3327 llvm::omp::allowedOnceClauses_OMPD_parallel_master,
3328 llvm::omp::allowedExclusiveClauses_OMPD_parallel_master,
3329 llvm::omp::requiredClauses_OMPD_parallel_master,
3330 }
3331 },
3332 {llvm::omp::Directive::OMPD_parallel_master_taskloop,
3333 {
3334 llvm::omp::allowedClauses_OMPD_parallel_master_taskloop,
3335 llvm::omp::allowedOnceClauses_OMPD_parallel_master_taskloop,
3336 llvm::omp::allowedExclusiveClauses_OMPD_parallel_master_taskloop,
3337 llvm::omp::requiredClauses_OMPD_parallel_master_taskloop,
3338 }
3339 },
3340 {llvm::omp::Directive::OMPD_parallel_master_taskloop_simd,
3341 {
3342 llvm::omp::allowedClauses_OMPD_parallel_master_taskloop_simd,
3343 llvm::omp::allowedOnceClauses_OMPD_parallel_master_taskloop_simd,
3344 llvm::omp::allowedExclusiveClauses_OMPD_parallel_master_taskloop_simd,
3345 llvm::omp::requiredClauses_OMPD_parallel_master_taskloop_simd,
3346 }
3347 },
3348 {llvm::omp::Directive::OMPD_parallel_sections,
3349 {
3350 llvm::omp::allowedClauses_OMPD_parallel_sections,
3351 llvm::omp::allowedOnceClauses_OMPD_parallel_sections,
3352 llvm::omp::allowedExclusiveClauses_OMPD_parallel_sections,
3353 llvm::omp::requiredClauses_OMPD_parallel_sections,
3354 }
3355 },
3356 {llvm::omp::Directive::OMPD_parallel_workshare,
3357 {
3358 llvm::omp::allowedClauses_OMPD_parallel_workshare,
3359 llvm::omp::allowedOnceClauses_OMPD_parallel_workshare,
3360 llvm::omp::allowedExclusiveClauses_OMPD_parallel_workshare,
3361 llvm::omp::requiredClauses_OMPD_parallel_workshare,
3362 }
3363 },
3364 {llvm::omp::Directive::OMPD_requires,
3365 {
3366 llvm::omp::allowedClauses_OMPD_requires,
3367 llvm::omp::allowedOnceClauses_OMPD_requires,
3368 llvm::omp::allowedExclusiveClauses_OMPD_requires,
3369 llvm::omp::requiredClauses_OMPD_requires,
3370 }
3371 },
3372 {llvm::omp::Directive::OMPD_reverse,
3373 {
3374 llvm::omp::allowedClauses_OMPD_reverse,
3375 llvm::omp::allowedOnceClauses_OMPD_reverse,
3376 llvm::omp::allowedExclusiveClauses_OMPD_reverse,
3377 llvm::omp::requiredClauses_OMPD_reverse,
3378 }
3379 },
3380 {llvm::omp::Directive::OMPD_scan,
3381 {
3382 llvm::omp::allowedClauses_OMPD_scan,
3383 llvm::omp::allowedOnceClauses_OMPD_scan,
3384 llvm::omp::allowedExclusiveClauses_OMPD_scan,
3385 llvm::omp::requiredClauses_OMPD_scan,
3386 }
3387 },
3388 {llvm::omp::Directive::OMPD_scope,
3389 {
3390 llvm::omp::allowedClauses_OMPD_scope,
3391 llvm::omp::allowedOnceClauses_OMPD_scope,
3392 llvm::omp::allowedExclusiveClauses_OMPD_scope,
3393 llvm::omp::requiredClauses_OMPD_scope,
3394 }
3395 },
3396 {llvm::omp::Directive::OMPD_section,
3397 {
3398 llvm::omp::allowedClauses_OMPD_section,
3399 llvm::omp::allowedOnceClauses_OMPD_section,
3400 llvm::omp::allowedExclusiveClauses_OMPD_section,
3401 llvm::omp::requiredClauses_OMPD_section,
3402 }
3403 },
3404 {llvm::omp::Directive::OMPD_sections,
3405 {
3406 llvm::omp::allowedClauses_OMPD_sections,
3407 llvm::omp::allowedOnceClauses_OMPD_sections,
3408 llvm::omp::allowedExclusiveClauses_OMPD_sections,
3409 llvm::omp::requiredClauses_OMPD_sections,
3410 }
3411 },
3412 {llvm::omp::Directive::OMPD_simd,
3413 {
3414 llvm::omp::allowedClauses_OMPD_simd,
3415 llvm::omp::allowedOnceClauses_OMPD_simd,
3416 llvm::omp::allowedExclusiveClauses_OMPD_simd,
3417 llvm::omp::requiredClauses_OMPD_simd,
3418 }
3419 },
3420 {llvm::omp::Directive::OMPD_single,
3421 {
3422 llvm::omp::allowedClauses_OMPD_single,
3423 llvm::omp::allowedOnceClauses_OMPD_single,
3424 llvm::omp::allowedExclusiveClauses_OMPD_single,
3425 llvm::omp::requiredClauses_OMPD_single,
3426 }
3427 },
3428 {llvm::omp::Directive::OMPD_stripe,
3429 {
3430 llvm::omp::allowedClauses_OMPD_stripe,
3431 llvm::omp::allowedOnceClauses_OMPD_stripe,
3432 llvm::omp::allowedExclusiveClauses_OMPD_stripe,
3433 llvm::omp::requiredClauses_OMPD_stripe,
3434 }
3435 },
3436 {llvm::omp::Directive::OMPD_target,
3437 {
3438 llvm::omp::allowedClauses_OMPD_target,
3439 llvm::omp::allowedOnceClauses_OMPD_target,
3440 llvm::omp::allowedExclusiveClauses_OMPD_target,
3441 llvm::omp::requiredClauses_OMPD_target,
3442 }
3443 },
3444 {llvm::omp::Directive::OMPD_target_data,
3445 {
3446 llvm::omp::allowedClauses_OMPD_target_data,
3447 llvm::omp::allowedOnceClauses_OMPD_target_data,
3448 llvm::omp::allowedExclusiveClauses_OMPD_target_data,
3449 llvm::omp::requiredClauses_OMPD_target_data,
3450 }
3451 },
3452 {llvm::omp::Directive::OMPD_target_enter_data,
3453 {
3454 llvm::omp::allowedClauses_OMPD_target_enter_data,
3455 llvm::omp::allowedOnceClauses_OMPD_target_enter_data,
3456 llvm::omp::allowedExclusiveClauses_OMPD_target_enter_data,
3457 llvm::omp::requiredClauses_OMPD_target_enter_data,
3458 }
3459 },
3460 {llvm::omp::Directive::OMPD_target_exit_data,
3461 {
3462 llvm::omp::allowedClauses_OMPD_target_exit_data,
3463 llvm::omp::allowedOnceClauses_OMPD_target_exit_data,
3464 llvm::omp::allowedExclusiveClauses_OMPD_target_exit_data,
3465 llvm::omp::requiredClauses_OMPD_target_exit_data,
3466 }
3467 },
3468 {llvm::omp::Directive::OMPD_target_parallel,
3469 {
3470 llvm::omp::allowedClauses_OMPD_target_parallel,
3471 llvm::omp::allowedOnceClauses_OMPD_target_parallel,
3472 llvm::omp::allowedExclusiveClauses_OMPD_target_parallel,
3473 llvm::omp::requiredClauses_OMPD_target_parallel,
3474 }
3475 },
3476 {llvm::omp::Directive::OMPD_target_parallel_do,
3477 {
3478 llvm::omp::allowedClauses_OMPD_target_parallel_do,
3479 llvm::omp::allowedOnceClauses_OMPD_target_parallel_do,
3480 llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_do,
3481 llvm::omp::requiredClauses_OMPD_target_parallel_do,
3482 }
3483 },
3484 {llvm::omp::Directive::OMPD_target_parallel_do_simd,
3485 {
3486 llvm::omp::allowedClauses_OMPD_target_parallel_do_simd,
3487 llvm::omp::allowedOnceClauses_OMPD_target_parallel_do_simd,
3488 llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_do_simd,
3489 llvm::omp::requiredClauses_OMPD_target_parallel_do_simd,
3490 }
3491 },
3492 {llvm::omp::Directive::OMPD_target_parallel_for,
3493 {
3494 llvm::omp::allowedClauses_OMPD_target_parallel_for,
3495 llvm::omp::allowedOnceClauses_OMPD_target_parallel_for,
3496 llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_for,
3497 llvm::omp::requiredClauses_OMPD_target_parallel_for,
3498 }
3499 },
3500 {llvm::omp::Directive::OMPD_target_parallel_for_simd,
3501 {
3502 llvm::omp::allowedClauses_OMPD_target_parallel_for_simd,
3503 llvm::omp::allowedOnceClauses_OMPD_target_parallel_for_simd,
3504 llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_for_simd,
3505 llvm::omp::requiredClauses_OMPD_target_parallel_for_simd,
3506 }
3507 },
3508 {llvm::omp::Directive::OMPD_target_simd,
3509 {
3510 llvm::omp::allowedClauses_OMPD_target_simd,
3511 llvm::omp::allowedOnceClauses_OMPD_target_simd,
3512 llvm::omp::allowedExclusiveClauses_OMPD_target_simd,
3513 llvm::omp::requiredClauses_OMPD_target_simd,
3514 }
3515 },
3516 {llvm::omp::Directive::OMPD_target_teams,
3517 {
3518 llvm::omp::allowedClauses_OMPD_target_teams,
3519 llvm::omp::allowedOnceClauses_OMPD_target_teams,
3520 llvm::omp::allowedExclusiveClauses_OMPD_target_teams,
3521 llvm::omp::requiredClauses_OMPD_target_teams,
3522 }
3523 },
3524 {llvm::omp::Directive::OMPD_target_teams_distribute,
3525 {
3526 llvm::omp::allowedClauses_OMPD_target_teams_distribute,
3527 llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute,
3528 llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute,
3529 llvm::omp::requiredClauses_OMPD_target_teams_distribute,
3530 }
3531 },
3532 {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do,
3533 {
3534 llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_do,
3535 llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_do,
3536 llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do,
3537 llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_do,
3538 }
3539 },
3540 {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do_simd,
3541 {
3542 llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_do_simd,
3543 llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_do_simd,
3544 llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do_simd,
3545 llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_do_simd,
3546 }
3547 },
3548 {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_for,
3549 {
3550 llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_for,
3551 llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_for,
3552 llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for,
3553 llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_for,
3554 }
3555 },
3556 {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_for_simd,
3557 {
3558 llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_for_simd,
3559 llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_for_simd,
3560 llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for_simd,
3561 llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_for_simd,
3562 }
3563 },
3564 {llvm::omp::Directive::OMPD_target_teams_distribute_simd,
3565 {
3566 llvm::omp::allowedClauses_OMPD_target_teams_distribute_simd,
3567 llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_simd,
3568 llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_simd,
3569 llvm::omp::requiredClauses_OMPD_target_teams_distribute_simd,
3570 }
3571 },
3572 {llvm::omp::Directive::OMPD_target_update,
3573 {
3574 llvm::omp::allowedClauses_OMPD_target_update,
3575 llvm::omp::allowedOnceClauses_OMPD_target_update,
3576 llvm::omp::allowedExclusiveClauses_OMPD_target_update,
3577 llvm::omp::requiredClauses_OMPD_target_update,
3578 }
3579 },
3580 {llvm::omp::Directive::OMPD_task,
3581 {
3582 llvm::omp::allowedClauses_OMPD_task,
3583 llvm::omp::allowedOnceClauses_OMPD_task,
3584 llvm::omp::allowedExclusiveClauses_OMPD_task,
3585 llvm::omp::requiredClauses_OMPD_task,
3586 }
3587 },
3588 {llvm::omp::Directive::OMPD_taskgroup,
3589 {
3590 llvm::omp::allowedClauses_OMPD_taskgroup,
3591 llvm::omp::allowedOnceClauses_OMPD_taskgroup,
3592 llvm::omp::allowedExclusiveClauses_OMPD_taskgroup,
3593 llvm::omp::requiredClauses_OMPD_taskgroup,
3594 }
3595 },
3596 {llvm::omp::Directive::OMPD_taskloop,
3597 {
3598 llvm::omp::allowedClauses_OMPD_taskloop,
3599 llvm::omp::allowedOnceClauses_OMPD_taskloop,
3600 llvm::omp::allowedExclusiveClauses_OMPD_taskloop,
3601 llvm::omp::requiredClauses_OMPD_taskloop,
3602 }
3603 },
3604 {llvm::omp::Directive::OMPD_taskloop_simd,
3605 {
3606 llvm::omp::allowedClauses_OMPD_taskloop_simd,
3607 llvm::omp::allowedOnceClauses_OMPD_taskloop_simd,
3608 llvm::omp::allowedExclusiveClauses_OMPD_taskloop_simd,
3609 llvm::omp::requiredClauses_OMPD_taskloop_simd,
3610 }
3611 },
3612 {llvm::omp::Directive::OMPD_taskwait,
3613 {
3614 llvm::omp::allowedClauses_OMPD_taskwait,
3615 llvm::omp::allowedOnceClauses_OMPD_taskwait,
3616 llvm::omp::allowedExclusiveClauses_OMPD_taskwait,
3617 llvm::omp::requiredClauses_OMPD_taskwait,
3618 }
3619 },
3620 {llvm::omp::Directive::OMPD_taskyield,
3621 {
3622 llvm::omp::allowedClauses_OMPD_taskyield,
3623 llvm::omp::allowedOnceClauses_OMPD_taskyield,
3624 llvm::omp::allowedExclusiveClauses_OMPD_taskyield,
3625 llvm::omp::requiredClauses_OMPD_taskyield,
3626 }
3627 },
3628 {llvm::omp::Directive::OMPD_teams,
3629 {
3630 llvm::omp::allowedClauses_OMPD_teams,
3631 llvm::omp::allowedOnceClauses_OMPD_teams,
3632 llvm::omp::allowedExclusiveClauses_OMPD_teams,
3633 llvm::omp::requiredClauses_OMPD_teams,
3634 }
3635 },
3636 {llvm::omp::Directive::OMPD_teams_distribute,
3637 {
3638 llvm::omp::allowedClauses_OMPD_teams_distribute,
3639 llvm::omp::allowedOnceClauses_OMPD_teams_distribute,
3640 llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute,
3641 llvm::omp::requiredClauses_OMPD_teams_distribute,
3642 }
3643 },
3644 {llvm::omp::Directive::OMPD_teams_distribute_parallel_do,
3645 {
3646 llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_do,
3647 llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_do,
3648 llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_do,
3649 llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_do,
3650 }
3651 },
3652 {llvm::omp::Directive::OMPD_teams_distribute_parallel_do_simd,
3653 {
3654 llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_do_simd,
3655 llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_do_simd,
3656 llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_do_simd,
3657 llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_do_simd,
3658 }
3659 },
3660 {llvm::omp::Directive::OMPD_teams_distribute_parallel_for,
3661 {
3662 llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_for,
3663 llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_for,
3664 llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_for,
3665 llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_for,
3666 }
3667 },
3668 {llvm::omp::Directive::OMPD_teams_distribute_parallel_for_simd,
3669 {
3670 llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_for_simd,
3671 llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_for_simd,
3672 llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_for_simd,
3673 llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_for_simd,
3674 }
3675 },
3676 {llvm::omp::Directive::OMPD_teams_distribute_simd,
3677 {
3678 llvm::omp::allowedClauses_OMPD_teams_distribute_simd,
3679 llvm::omp::allowedOnceClauses_OMPD_teams_distribute_simd,
3680 llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_simd,
3681 llvm::omp::requiredClauses_OMPD_teams_distribute_simd,
3682 }
3683 },
3684 {llvm::omp::Directive::OMPD_threadprivate,
3685 {
3686 llvm::omp::allowedClauses_OMPD_threadprivate,
3687 llvm::omp::allowedOnceClauses_OMPD_threadprivate,
3688 llvm::omp::allowedExclusiveClauses_OMPD_threadprivate,
3689 llvm::omp::requiredClauses_OMPD_threadprivate,
3690 }
3691 },
3692 {llvm::omp::Directive::OMPD_tile,
3693 {
3694 llvm::omp::allowedClauses_OMPD_tile,
3695 llvm::omp::allowedOnceClauses_OMPD_tile,
3696 llvm::omp::allowedExclusiveClauses_OMPD_tile,
3697 llvm::omp::requiredClauses_OMPD_tile,
3698 }
3699 },
3700 {llvm::omp::Directive::OMPD_unknown,
3701 {
3702 llvm::omp::allowedClauses_OMPD_unknown,
3703 llvm::omp::allowedOnceClauses_OMPD_unknown,
3704 llvm::omp::allowedExclusiveClauses_OMPD_unknown,
3705 llvm::omp::requiredClauses_OMPD_unknown,
3706 }
3707 },
3708 {llvm::omp::Directive::OMPD_unroll,
3709 {
3710 llvm::omp::allowedClauses_OMPD_unroll,
3711 llvm::omp::allowedOnceClauses_OMPD_unroll,
3712 llvm::omp::allowedExclusiveClauses_OMPD_unroll,
3713 llvm::omp::requiredClauses_OMPD_unroll,
3714 }
3715 },
3716 {llvm::omp::Directive::OMPD_workshare,
3717 {
3718 llvm::omp::allowedClauses_OMPD_workshare,
3719 llvm::omp::allowedOnceClauses_OMPD_workshare,
3720 llvm::omp::allowedExclusiveClauses_OMPD_workshare,
3721 llvm::omp::requiredClauses_OMPD_workshare,
3722 }
3723 },
3724 {llvm::omp::Directive::OMPD_dispatch,
3725 {
3726 llvm::omp::allowedClauses_OMPD_dispatch,
3727 llvm::omp::allowedOnceClauses_OMPD_dispatch,
3728 llvm::omp::allowedExclusiveClauses_OMPD_dispatch,
3729 llvm::omp::requiredClauses_OMPD_dispatch,
3730 }
3731 },
3732 {llvm::omp::Directive::OMPD_interop,
3733 {
3734 llvm::omp::allowedClauses_OMPD_interop,
3735 llvm::omp::allowedOnceClauses_OMPD_interop,
3736 llvm::omp::allowedExclusiveClauses_OMPD_interop,
3737 llvm::omp::requiredClauses_OMPD_interop,
3738 }
3739 },
3740 {llvm::omp::Directive::OMPD_loop,
3741 {
3742 llvm::omp::allowedClauses_OMPD_loop,
3743 llvm::omp::allowedOnceClauses_OMPD_loop,
3744 llvm::omp::allowedExclusiveClauses_OMPD_loop,
3745 llvm::omp::requiredClauses_OMPD_loop,
3746 }
3747 },
3748 {llvm::omp::Directive::OMPD_masked,
3749 {
3750 llvm::omp::allowedClauses_OMPD_masked,
3751 llvm::omp::allowedOnceClauses_OMPD_masked,
3752 llvm::omp::allowedExclusiveClauses_OMPD_masked,
3753 llvm::omp::requiredClauses_OMPD_masked,
3754 }
3755 },
3756 {llvm::omp::Directive::OMPD_parallel_loop,
3757 {
3758 llvm::omp::allowedClauses_OMPD_parallel_loop,
3759 llvm::omp::allowedOnceClauses_OMPD_parallel_loop,
3760 llvm::omp::allowedExclusiveClauses_OMPD_parallel_loop,
3761 llvm::omp::requiredClauses_OMPD_parallel_loop,
3762 }
3763 },
3764 {llvm::omp::Directive::OMPD_target_loop,
3765 {
3766 llvm::omp::allowedClauses_OMPD_target_loop,
3767 llvm::omp::allowedOnceClauses_OMPD_target_loop,
3768 llvm::omp::allowedExclusiveClauses_OMPD_target_loop,
3769 llvm::omp::requiredClauses_OMPD_target_loop,
3770 }
3771 },
3772 {llvm::omp::Directive::OMPD_target_parallel_loop,
3773 {
3774 llvm::omp::allowedClauses_OMPD_target_parallel_loop,
3775 llvm::omp::allowedOnceClauses_OMPD_target_parallel_loop,
3776 llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_loop,
3777 llvm::omp::requiredClauses_OMPD_target_parallel_loop,
3778 }
3779 },
3780 {llvm::omp::Directive::OMPD_target_teams_loop,
3781 {
3782 llvm::omp::allowedClauses_OMPD_target_teams_loop,
3783 llvm::omp::allowedOnceClauses_OMPD_target_teams_loop,
3784 llvm::omp::allowedExclusiveClauses_OMPD_target_teams_loop,
3785 llvm::omp::requiredClauses_OMPD_target_teams_loop,
3786 }
3787 },
3788 {llvm::omp::Directive::OMPD_teams_loop,
3789 {
3790 llvm::omp::allowedClauses_OMPD_teams_loop,
3791 llvm::omp::allowedOnceClauses_OMPD_teams_loop,
3792 llvm::omp::allowedExclusiveClauses_OMPD_teams_loop,
3793 llvm::omp::requiredClauses_OMPD_teams_loop,
3794 }
3795 },
3796}
3797
3798#endif // GEN_FLANG_DIRECTIVE_CLAUSE_MAP
3799
3800#ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES
3801#undef GEN_FLANG_CLAUSE_PARSER_CLASSES
3802
3803WRAPPER_CLASS(Absent, OmpAbsentClause);
3804EMPTY_CLASS(AcqRel);
3805EMPTY_CLASS(Acquire);
3806WRAPPER_CLASS(AdjustArgs, OmpAdjustArgsClause);
3807WRAPPER_CLASS(Affinity, OmpAffinityClause);
3808WRAPPER_CLASS(Align, OmpAlignClause);
3809WRAPPER_CLASS(Aligned, OmpAlignedClause);
3810WRAPPER_CLASS(Allocate, OmpAllocateClause);
3811WRAPPER_CLASS(Allocator, ScalarIntExpr);
3812WRAPPER_CLASS(AppendArgs, OmpAppendArgsClause);
3813WRAPPER_CLASS(At, OmpAtClause);
3814WRAPPER_CLASS(AtomicDefaultMemOrder, OmpAtomicDefaultMemOrderClause);
3815WRAPPER_CLASS(Bind, OmpBindClause);
3816WRAPPER_CLASS(CancellationConstructType, OmpCancellationConstructTypeClause);
3817EMPTY_CLASS(Capture);
3818WRAPPER_CLASS(Collapse, ScalarIntConstantExpr);
3819EMPTY_CLASS(Compare);
3820WRAPPER_CLASS(Contains, OmpContainsClause);
3821WRAPPER_CLASS(Copyprivate, OmpObjectList);
3822WRAPPER_CLASS(Copyin, OmpObjectList);
3823WRAPPER_CLASS(Default, OmpDefaultClause);
3824WRAPPER_CLASS(Defaultmap, OmpDefaultmapClause);
3825WRAPPER_CLASS(Depend, OmpDependClause);
3826EMPTY_CLASS(Depobj);
3827WRAPPER_CLASS(Destroy, std::optional<OmpDestroyClause>);
3828WRAPPER_CLASS(Detach, OmpDetachClause);
3829WRAPPER_CLASS(Device, OmpDeviceClause);
3830WRAPPER_CLASS(DeviceType, OmpDeviceTypeClause);
3831WRAPPER_CLASS(DistSchedule, std::optional<ScalarIntExpr>);
3832WRAPPER_CLASS(Doacross, OmpDoacrossClause);
3833EMPTY_CLASS(DynamicAllocators);
3834WRAPPER_CLASS(Enter, OmpObjectList);
3835WRAPPER_CLASS(Exclusive, OmpObjectList);
3836WRAPPER_CLASS(Fail, OmpFailClause);
3837WRAPPER_CLASS(Filter, ScalarIntExpr);
3838WRAPPER_CLASS(Final, ScalarLogicalExpr);
3839WRAPPER_CLASS(Firstprivate, OmpObjectList);
3840EMPTY_CLASS(Flush);
3841WRAPPER_CLASS(From, OmpFromClause);
3842EMPTY_CLASS(Full);
3843WRAPPER_CLASS(Grainsize, OmpGrainsizeClause);
3844WRAPPER_CLASS(HasDeviceAddr, OmpObjectList);
3845WRAPPER_CLASS(Hint, OmpHintClause);
3846WRAPPER_CLASS(Holds, OmpHoldsClause);
3847WRAPPER_CLASS(If, OmpIfClause);
3848WRAPPER_CLASS(InReduction, OmpInReductionClause);
3849EMPTY_CLASS(Inbranch);
3850WRAPPER_CLASS(Inclusive, OmpObjectList);
3851WRAPPER_CLASS(Indirect, OmpIndirectClause);
3852WRAPPER_CLASS(Init, OmpInitClause);
3853WRAPPER_CLASS(Initializer, OmpInitializerClause);
3854WRAPPER_CLASS(IsDevicePtr, OmpObjectList);
3855WRAPPER_CLASS(Lastprivate, OmpLastprivateClause);
3856WRAPPER_CLASS(Linear, OmpLinearClause);
3857WRAPPER_CLASS(Link, OmpObjectList);
3858WRAPPER_CLASS(Map, OmpMapClause);
3859WRAPPER_CLASS(Match, OmpMatchClause);
3860EMPTY_CLASS(MemoryOrder);
3861EMPTY_CLASS(Mergeable);
3862WRAPPER_CLASS(Message, OmpMessageClause);
3863EMPTY_CLASS(Nogroup);
3864EMPTY_CLASS(NoOpenmp);
3865EMPTY_CLASS(NoOpenmpConstructs);
3866EMPTY_CLASS(NoOpenmpRoutines);
3867EMPTY_CLASS(NoParallelism);
3868EMPTY_CLASS(Nowait);
3869WRAPPER_CLASS(Nocontext, ScalarLogicalExpr);
3870WRAPPER_CLASS(Nontemporal, std::list<Name>);
3871EMPTY_CLASS(Notinbranch);
3872WRAPPER_CLASS(Novariants, ScalarLogicalExpr);
3873WRAPPER_CLASS(NumTasks, OmpNumTasksClause);
3874WRAPPER_CLASS(NumTeams, ScalarIntExpr);
3875WRAPPER_CLASS(NumThreads, ScalarIntExpr);
3876EMPTY_CLASS(OmpxAttribute);
3877EMPTY_CLASS(OmpxBare);
3878WRAPPER_CLASS(OmpxDynCgroupMem, ScalarIntExpr);
3879WRAPPER_CLASS(Order, OmpOrderClause);
3880WRAPPER_CLASS(Ordered, std::optional<ScalarIntConstantExpr>);
3881WRAPPER_CLASS(Otherwise, std::optional<OmpOtherwiseClause>);
3882WRAPPER_CLASS(Partial, std::optional<ScalarIntConstantExpr>);
3883WRAPPER_CLASS(Permutation, std::list<ScalarIntExpr>);
3884WRAPPER_CLASS(Priority, ScalarIntExpr);
3885WRAPPER_CLASS(Private, OmpObjectList);
3886WRAPPER_CLASS(ProcBind, OmpProcBindClause);
3887EMPTY_CLASS(Read);
3888WRAPPER_CLASS(Reduction, OmpReductionClause);
3889EMPTY_CLASS(Relaxed);
3890EMPTY_CLASS(Release);
3891EMPTY_CLASS(ReverseOffload);
3892WRAPPER_CLASS(Safelen, ScalarIntConstantExpr);
3893WRAPPER_CLASS(Schedule, OmpScheduleClause);
3894EMPTY_CLASS(SelfMaps);
3895EMPTY_CLASS(SeqCst);
3896WRAPPER_CLASS(Severity, OmpSeverityClause);
3897WRAPPER_CLASS(Shared, OmpObjectList);
3898EMPTY_CLASS(Simd);
3899WRAPPER_CLASS(Simdlen, ScalarIntConstantExpr);
3900WRAPPER_CLASS(Sizes, std::list<ScalarIntExpr>);
3901WRAPPER_CLASS(TaskReduction, OmpTaskReductionClause);
3902WRAPPER_CLASS(ThreadLimit, ScalarIntExpr);
3903EMPTY_CLASS(Threadprivate);
3904EMPTY_CLASS(Threads);
3905WRAPPER_CLASS(To, OmpToClause);
3906EMPTY_CLASS(UnifiedAddress);
3907EMPTY_CLASS(UnifiedSharedMemory);
3908WRAPPER_CLASS(Uniform, std::list<Name>);
3909EMPTY_CLASS(Unknown);
3910EMPTY_CLASS(Untied);
3911WRAPPER_CLASS(Update, std::optional<OmpUpdateClause>);
3912WRAPPER_CLASS(Use, OmpUseClause);
3913WRAPPER_CLASS(UseDeviceAddr, OmpObjectList);
3914WRAPPER_CLASS(UseDevicePtr, OmpObjectList);
3915EMPTY_CLASS(UsesAllocators);
3916EMPTY_CLASS(Weak);
3917WRAPPER_CLASS(When, OmpWhenClause);
3918EMPTY_CLASS(Write);
3919
3920#endif // GEN_FLANG_CLAUSE_PARSER_CLASSES
3921
3922#ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
3923#undef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
3924
3925Absent
3926, AcqRel
3927, Acquire
3928, AdjustArgs
3929, Affinity
3930, Align
3931, Aligned
3932, Allocate
3933, Allocator
3934, AppendArgs
3935, At
3936, AtomicDefaultMemOrder
3937, Bind
3938, CancellationConstructType
3939, Capture
3940, Collapse
3941, Compare
3942, Contains
3943, Copyprivate
3944, Copyin
3945, Default
3946, Defaultmap
3947, Depend
3948, Depobj
3949, Destroy
3950, Detach
3951, Device
3952, DeviceType
3953, DistSchedule
3954, Doacross
3955, DynamicAllocators
3956, Enter
3957, Exclusive
3958, Fail
3959, Filter
3960, Final
3961, Firstprivate
3962, Flush
3963, From
3964, Full
3965, Grainsize
3966, HasDeviceAddr
3967, Hint
3968, Holds
3969, If
3970, InReduction
3971, Inbranch
3972, Inclusive
3973, Indirect
3974, Init
3975, Initializer
3976, IsDevicePtr
3977, Lastprivate
3978, Linear
3979, Link
3980, Map
3981, Match
3982, MemoryOrder
3983, Mergeable
3984, Message
3985, Nogroup
3986, NoOpenmp
3987, NoOpenmpConstructs
3988, NoOpenmpRoutines
3989, NoParallelism
3990, Nowait
3991, Nocontext
3992, Nontemporal
3993, Notinbranch
3994, Novariants
3995, NumTasks
3996, NumTeams
3997, NumThreads
3998, OmpxAttribute
3999, OmpxBare
4000, OmpxDynCgroupMem
4001, Order
4002, Ordered
4003, Otherwise
4004, Partial
4005, Permutation
4006, Priority
4007, Private
4008, ProcBind
4009, Read
4010, Reduction
4011, Relaxed
4012, Release
4013, ReverseOffload
4014, Safelen
4015, Schedule
4016, SelfMaps
4017, SeqCst
4018, Severity
4019, Shared
4020, Simd
4021, Simdlen
4022, Sizes
4023, TaskReduction
4024, ThreadLimit
4025, Threadprivate
4026, Threads
4027, To
4028, UnifiedAddress
4029, UnifiedSharedMemory
4030, Uniform
4031, Unknown
4032, Untied
4033, Update
4034, Use
4035, UseDeviceAddr
4036, UseDevicePtr
4037, UsesAllocators
4038, Weak
4039, When
4040, Write
4041
4042#endif // GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
4043
4044#ifdef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
4045#undef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
4046
4047NODE(OmpClause, Absent)
4048NODE(OmpClause, AcqRel)
4049NODE(OmpClause, Acquire)
4050NODE(OmpClause, AdjustArgs)
4051NODE(OmpClause, Affinity)
4052NODE(OmpClause, Align)
4053NODE(OmpClause, Aligned)
4054NODE(OmpClause, Allocate)
4055NODE(OmpClause, Allocator)
4056NODE(OmpClause, AppendArgs)
4057NODE(OmpClause, At)
4058NODE(OmpClause, AtomicDefaultMemOrder)
4059NODE(OmpClause, Bind)
4060NODE(OmpClause, CancellationConstructType)
4061NODE(OmpClause, Capture)
4062NODE(OmpClause, Collapse)
4063NODE(OmpClause, Compare)
4064NODE(OmpClause, Contains)
4065NODE(OmpClause, Copyprivate)
4066NODE(OmpClause, Copyin)
4067NODE(OmpClause, Default)
4068NODE(OmpClause, Defaultmap)
4069NODE(OmpClause, Depend)
4070NODE(OmpClause, Depobj)
4071NODE(OmpClause, Destroy)
4072NODE(OmpClause, Detach)
4073NODE(OmpClause, Device)
4074NODE(OmpClause, DeviceType)
4075NODE(OmpClause, DistSchedule)
4076NODE(OmpClause, Doacross)
4077NODE(OmpClause, DynamicAllocators)
4078NODE(OmpClause, Enter)
4079NODE(OmpClause, Exclusive)
4080NODE(OmpClause, Fail)
4081NODE(OmpClause, Filter)
4082NODE(OmpClause, Final)
4083NODE(OmpClause, Firstprivate)
4084NODE(OmpClause, Flush)
4085NODE(OmpClause, From)
4086NODE(OmpClause, Full)
4087NODE(OmpClause, Grainsize)
4088NODE(OmpClause, HasDeviceAddr)
4089NODE(OmpClause, Hint)
4090NODE(OmpClause, Holds)
4091NODE(OmpClause, If)
4092NODE(OmpClause, InReduction)
4093NODE(OmpClause, Inbranch)
4094NODE(OmpClause, Inclusive)
4095NODE(OmpClause, Indirect)
4096NODE(OmpClause, Init)
4097NODE(OmpClause, Initializer)
4098NODE(OmpClause, IsDevicePtr)
4099NODE(OmpClause, Lastprivate)
4100NODE(OmpClause, Linear)
4101NODE(OmpClause, Link)
4102NODE(OmpClause, Map)
4103NODE(OmpClause, Match)
4104NODE(OmpClause, MemoryOrder)
4105NODE(OmpClause, Mergeable)
4106NODE(OmpClause, Message)
4107NODE(OmpClause, Nogroup)
4108NODE(OmpClause, NoOpenmp)
4109NODE(OmpClause, NoOpenmpConstructs)
4110NODE(OmpClause, NoOpenmpRoutines)
4111NODE(OmpClause, NoParallelism)
4112NODE(OmpClause, Nowait)
4113NODE(OmpClause, Nocontext)
4114NODE(OmpClause, Nontemporal)
4115NODE(OmpClause, Notinbranch)
4116NODE(OmpClause, Novariants)
4117NODE(OmpClause, NumTasks)
4118NODE(OmpClause, NumTeams)
4119NODE(OmpClause, NumThreads)
4120NODE(OmpClause, OmpxAttribute)
4121NODE(OmpClause, OmpxBare)
4122NODE(OmpClause, OmpxDynCgroupMem)
4123NODE(OmpClause, Order)
4124NODE(OmpClause, Ordered)
4125NODE(OmpClause, Otherwise)
4126NODE(OmpClause, Partial)
4127NODE(OmpClause, Permutation)
4128NODE(OmpClause, Priority)
4129NODE(OmpClause, Private)
4130NODE(OmpClause, ProcBind)
4131NODE(OmpClause, Read)
4132NODE(OmpClause, Reduction)
4133NODE(OmpClause, Relaxed)
4134NODE(OmpClause, Release)
4135NODE(OmpClause, ReverseOffload)
4136NODE(OmpClause, Safelen)
4137NODE(OmpClause, Schedule)
4138NODE(OmpClause, SelfMaps)
4139NODE(OmpClause, SeqCst)
4140NODE(OmpClause, Severity)
4141NODE(OmpClause, Shared)
4142NODE(OmpClause, Simd)
4143NODE(OmpClause, Simdlen)
4144NODE(OmpClause, Sizes)
4145NODE(OmpClause, TaskReduction)
4146NODE(OmpClause, ThreadLimit)
4147NODE(OmpClause, Threadprivate)
4148NODE(OmpClause, Threads)
4149NODE(OmpClause, To)
4150NODE(OmpClause, UnifiedAddress)
4151NODE(OmpClause, UnifiedSharedMemory)
4152NODE(OmpClause, Uniform)
4153NODE(OmpClause, Unknown)
4154NODE(OmpClause, Untied)
4155NODE(OmpClause, Update)
4156NODE(OmpClause, Use)
4157NODE(OmpClause, UseDeviceAddr)
4158NODE(OmpClause, UseDevicePtr)
4159NODE(OmpClause, UsesAllocators)
4160NODE(OmpClause, Weak)
4161NODE(OmpClause, When)
4162NODE(OmpClause, Write)
4163
4164#endif // GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
4165
4166#ifdef GEN_FLANG_CLAUSE_UNPARSE
4167#undef GEN_FLANG_CLAUSE_UNPARSE
4168
4169void Unparse(const OmpClause::Absent &x) {
4170 Word("ABSENT");
4171 Put("(");
4172 Walk(x.v);
4173 Put(")");
4174}
4175void Before(const OmpClause::AcqRel &) { Word("ACQ_REL"); }
4176void Before(const OmpClause::Acquire &) { Word("ACQUIRE"); }
4177void Unparse(const OmpClause::AdjustArgs &x) {
4178 Word("ADJUST_ARGS");
4179 Put("(");
4180 Walk(x.v);
4181 Put(")");
4182}
4183void Unparse(const OmpClause::Affinity &x) {
4184 Word("AFFINITY");
4185 Put("(");
4186 Walk(x.v);
4187 Put(")");
4188}
4189void Unparse(const OmpClause::Align &x) {
4190 Word("ALIGN");
4191 Put("(");
4192 Walk(x.v);
4193 Put(")");
4194}
4195void Unparse(const OmpClause::Aligned &x) {
4196 Word("ALIGNED");
4197 Put("(");
4198 Walk(x.v);
4199 Put(")");
4200}
4201void Unparse(const OmpClause::Allocate &x) {
4202 Word("ALLOCATE");
4203 Put("(");
4204 Walk(x.v);
4205 Put(")");
4206}
4207void Unparse(const OmpClause::Allocator &x) {
4208 Word("ALLOCATOR");
4209 Put("(");
4210 Walk(x.v);
4211 Put(")");
4212}
4213void Unparse(const OmpClause::AppendArgs &x) {
4214 Word("APPEND_ARGS");
4215 Put("(");
4216 Walk(x.v);
4217 Put(")");
4218}
4219void Unparse(const OmpClause::At &x) {
4220 Word("AT");
4221 Put("(");
4222 Walk(x.v);
4223 Put(")");
4224}
4225void Unparse(const OmpClause::AtomicDefaultMemOrder &x) {
4226 Word("ATOMIC_DEFAULT_MEM_ORDER");
4227 Put("(");
4228 Walk(x.v);
4229 Put(")");
4230}
4231void Unparse(const OmpClause::Bind &x) {
4232 Word("BIND");
4233 Put("(");
4234 Walk(x.v);
4235 Put(")");
4236}
4237void Before(const OmpClause::Capture &) { Word("CAPTURE"); }
4238void Unparse(const OmpClause::Collapse &x) {
4239 Word("COLLAPSE");
4240 Put("(");
4241 Walk(x.v);
4242 Put(")");
4243}
4244void Before(const OmpClause::Compare &) { Word("COMPARE"); }
4245void Unparse(const OmpClause::Contains &x) {
4246 Word("CONTAINS");
4247 Put("(");
4248 Walk(x.v);
4249 Put(")");
4250}
4251void Unparse(const OmpClause::Copyprivate &x) {
4252 Word("COPYPRIVATE");
4253 Put("(");
4254 Walk(x.v);
4255 Put(")");
4256}
4257void Unparse(const OmpClause::Copyin &x) {
4258 Word("COPYIN");
4259 Put("(");
4260 Walk(x.v);
4261 Put(")");
4262}
4263void Unparse(const OmpClause::Default &x) {
4264 Word("DEFAULT");
4265 Put("(");
4266 Walk(x.v);
4267 Put(")");
4268}
4269void Unparse(const OmpClause::Defaultmap &x) {
4270 Word("DEFAULTMAP");
4271 Put("(");
4272 Walk(x.v);
4273 Put(")");
4274}
4275void Unparse(const OmpClause::Depend &x) {
4276 Word("DEPEND");
4277 Put("(");
4278 Walk(x.v);
4279 Put(")");
4280}
4281void Before(const OmpClause::Depobj &) { Word("DEPOBJ"); }
4282void Unparse(const OmpClause::Destroy &x) {
4283 Word("DESTROY");
4284 Walk("(", x.v, ")");
4285}
4286void Unparse(const OmpClause::Detach &x) {
4287 Word("DETACH");
4288 Put("(");
4289 Walk(x.v);
4290 Put(")");
4291}
4292void Unparse(const OmpClause::Device &x) {
4293 Word("DEVICE");
4294 Put("(");
4295 Walk(x.v);
4296 Put(")");
4297}
4298void Unparse(const OmpClause::DeviceType &x) {
4299 Word("DEVICE_TYPE");
4300 Put("(");
4301 Walk(x.v);
4302 Put(")");
4303}
4304void Unparse(const OmpClause::DistSchedule &x) {
4305 Word("DIST_SCHEDULE");
4306 Walk("(", x.v, ")");
4307}
4308void Unparse(const OmpClause::Doacross &x) {
4309 Word("DOACROSS");
4310 Put("(");
4311 Walk(x.v);
4312 Put(")");
4313}
4314void Before(const OmpClause::DynamicAllocators &) { Word("DYNAMIC_ALLOCATORS"); }
4315void Unparse(const OmpClause::Enter &x) {
4316 Word("ENTER");
4317 Put("(");
4318 Walk(x.v);
4319 Put(")");
4320}
4321void Unparse(const OmpClause::Exclusive &x) {
4322 Word("EXCLUSIVE");
4323 Put("(");
4324 Walk(x.v);
4325 Put(")");
4326}
4327void Unparse(const OmpClause::Fail &x) {
4328 Word("FAIL");
4329 Put("(");
4330 Walk(x.v);
4331 Put(")");
4332}
4333void Unparse(const OmpClause::Filter &x) {
4334 Word("FILTER");
4335 Put("(");
4336 Walk(x.v);
4337 Put(")");
4338}
4339void Unparse(const OmpClause::Final &x) {
4340 Word("FINAL");
4341 Put("(");
4342 Walk(x.v);
4343 Put(")");
4344}
4345void Unparse(const OmpClause::Firstprivate &x) {
4346 Word("FIRSTPRIVATE");
4347 Put("(");
4348 Walk(x.v);
4349 Put(")");
4350}
4351void Before(const OmpClause::Flush &) { Word("FLUSH"); }
4352void Unparse(const OmpClause::From &x) {
4353 Word("FROM");
4354 Put("(");
4355 Walk(x.v);
4356 Put(")");
4357}
4358void Before(const OmpClause::Full &) { Word("FULL"); }
4359void Unparse(const OmpClause::Grainsize &x) {
4360 Word("GRAINSIZE");
4361 Put("(");
4362 Walk(x.v);
4363 Put(")");
4364}
4365void Unparse(const OmpClause::HasDeviceAddr &x) {
4366 Word("HAS_DEVICE_ADDR");
4367 Put("(");
4368 Walk(x.v);
4369 Put(")");
4370}
4371void Unparse(const OmpClause::Hint &x) {
4372 Word("HINT");
4373 Put("(");
4374 Walk(x.v);
4375 Put(")");
4376}
4377void Unparse(const OmpClause::Holds &x) {
4378 Word("HOLDS");
4379 Put("(");
4380 Walk(x.v);
4381 Put(")");
4382}
4383void Unparse(const OmpClause::If &x) {
4384 Word("IF");
4385 Put("(");
4386 Walk(x.v);
4387 Put(")");
4388}
4389void Unparse(const OmpClause::InReduction &x) {
4390 Word("IN_REDUCTION");
4391 Put("(");
4392 Walk(x.v);
4393 Put(")");
4394}
4395void Before(const OmpClause::Inbranch &) { Word("INBRANCH"); }
4396void Unparse(const OmpClause::Inclusive &x) {
4397 Word("INCLUSIVE");
4398 Put("(");
4399 Walk(x.v);
4400 Put(")");
4401}
4402void Unparse(const OmpClause::Indirect &x) {
4403 Word("INDIRECT");
4404 Put("(");
4405 Walk(x.v);
4406 Put(")");
4407}
4408void Unparse(const OmpClause::Init &x) {
4409 Word("INIT");
4410 Put("(");
4411 Walk(x.v);
4412 Put(")");
4413}
4414void Unparse(const OmpClause::Initializer &x) {
4415 Word("INITIALIZER");
4416 Put("(");
4417 Walk(x.v);
4418 Put(")");
4419}
4420void Unparse(const OmpClause::IsDevicePtr &x) {
4421 Word("IS_DEVICE_PTR");
4422 Put("(");
4423 Walk(x.v);
4424 Put(")");
4425}
4426void Unparse(const OmpClause::Lastprivate &x) {
4427 Word("LASTPRIVATE");
4428 Put("(");
4429 Walk(x.v);
4430 Put(")");
4431}
4432void Unparse(const OmpClause::Linear &x) {
4433 Word("LINEAR");
4434 Put("(");
4435 Walk(x.v);
4436 Put(")");
4437}
4438void Unparse(const OmpClause::Link &x) {
4439 Word("LINK");
4440 Put("(");
4441 Walk(x.v);
4442 Put(")");
4443}
4444void Unparse(const OmpClause::Map &x) {
4445 Word("MAP");
4446 Put("(");
4447 Walk(x.v);
4448 Put(")");
4449}
4450void Unparse(const OmpClause::Match &x) {
4451 Word("MATCH");
4452 Put("(");
4453 Walk(x.v);
4454 Put(")");
4455}
4456void Before(const OmpClause::MemoryOrder &) { Word("MEMORY_ORDER"); }
4457void Before(const OmpClause::Mergeable &) { Word("MERGEABLE"); }
4458void Unparse(const OmpClause::Message &x) {
4459 Word("MESSAGE");
4460 Put("(");
4461 Walk(x.v);
4462 Put(")");
4463}
4464void Before(const OmpClause::Nogroup &) { Word("NOGROUP"); }
4465void Before(const OmpClause::NoOpenmp &) { Word("NO_OPENMP"); }
4466void Before(const OmpClause::NoOpenmpConstructs &) { Word("NO_OPENMP_CONSTRUCTS"); }
4467void Before(const OmpClause::NoOpenmpRoutines &) { Word("NO_OPENMP_ROUTINES"); }
4468void Before(const OmpClause::NoParallelism &) { Word("NO_PARALLELISM"); }
4469void Before(const OmpClause::Nowait &) { Word("NOWAIT"); }
4470void Unparse(const OmpClause::Nocontext &x) {
4471 Word("NOCONTEXT");
4472 Put("(");
4473 Walk(x.v);
4474 Put(")");
4475}
4476void Unparse(const OmpClause::Nontemporal &x) {
4477 Word("NONTEMPORAL");
4478 Put("(");
4479 Walk(x.v, ",");
4480 Put(")");
4481}
4482void Before(const OmpClause::Notinbranch &) { Word("NOTINBRANCH"); }
4483void Unparse(const OmpClause::Novariants &x) {
4484 Word("NOVARIANTS");
4485 Put("(");
4486 Walk(x.v);
4487 Put(")");
4488}
4489void Unparse(const OmpClause::NumTasks &x) {
4490 Word("NUM_TASKS");
4491 Put("(");
4492 Walk(x.v);
4493 Put(")");
4494}
4495void Unparse(const OmpClause::NumTeams &x) {
4496 Word("NUM_TEAMS");
4497 Put("(");
4498 Walk(x.v);
4499 Put(")");
4500}
4501void Unparse(const OmpClause::NumThreads &x) {
4502 Word("NUM_THREADS");
4503 Put("(");
4504 Walk(x.v);
4505 Put(")");
4506}
4507void Before(const OmpClause::OmpxAttribute &) { Word("OMPX_ATTRIBUTE"); }
4508void Before(const OmpClause::OmpxBare &) { Word("OMPX_BARE"); }
4509void Unparse(const OmpClause::OmpxDynCgroupMem &x) {
4510 Word("OMPX_DYN_CGROUP_MEM");
4511 Put("(");
4512 Walk(x.v);
4513 Put(")");
4514}
4515void Unparse(const OmpClause::Order &x) {
4516 Word("ORDER");
4517 Put("(");
4518 Walk(x.v);
4519 Put(")");
4520}
4521void Unparse(const OmpClause::Ordered &x) {
4522 Word("ORDERED");
4523 Walk("(", x.v, ")");
4524}
4525void Unparse(const OmpClause::Otherwise &x) {
4526 Word("OTHERWISE");
4527 Walk("(", x.v, ")");
4528}
4529void Unparse(const OmpClause::Partial &x) {
4530 Word("PARTIAL");
4531 Walk("(", x.v, ")");
4532}
4533void Unparse(const OmpClause::Permutation &x) {
4534 Word("PERMUTATION");
4535 Put("(");
4536 Walk(x.v, ",");
4537 Put(")");
4538}
4539void Unparse(const OmpClause::Priority &x) {
4540 Word("PRIORITY");
4541 Put("(");
4542 Walk(x.v);
4543 Put(")");
4544}
4545void Unparse(const OmpClause::Private &x) {
4546 Word("PRIVATE");
4547 Put("(");
4548 Walk(x.v);
4549 Put(")");
4550}
4551void Unparse(const OmpClause::ProcBind &x) {
4552 Word("PROC_BIND");
4553 Put("(");
4554 Walk(x.v);
4555 Put(")");
4556}
4557void Before(const OmpClause::Read &) { Word("READ"); }
4558void Unparse(const OmpClause::Reduction &x) {
4559 Word("REDUCTION");
4560 Put("(");
4561 Walk(x.v);
4562 Put(")");
4563}
4564void Before(const OmpClause::Relaxed &) { Word("RELAXED"); }
4565void Before(const OmpClause::Release &) { Word("RELEASE"); }
4566void Before(const OmpClause::ReverseOffload &) { Word("REVERSE_OFFLOAD"); }
4567void Unparse(const OmpClause::Safelen &x) {
4568 Word("SAFELEN");
4569 Put("(");
4570 Walk(x.v);
4571 Put(")");
4572}
4573void Unparse(const OmpClause::Schedule &x) {
4574 Word("SCHEDULE");
4575 Put("(");
4576 Walk(x.v);
4577 Put(")");
4578}
4579void Before(const OmpClause::SelfMaps &) { Word("SELF_MAPS"); }
4580void Before(const OmpClause::SeqCst &) { Word("SEQ_CST"); }
4581void Unparse(const OmpClause::Severity &x) {
4582 Word("SEVERITY");
4583 Put("(");
4584 Walk(x.v);
4585 Put(")");
4586}
4587void Unparse(const OmpClause::Shared &x) {
4588 Word("SHARED");
4589 Put("(");
4590 Walk(x.v);
4591 Put(")");
4592}
4593void Before(const OmpClause::Simd &) { Word("SIMD"); }
4594void Unparse(const OmpClause::Simdlen &x) {
4595 Word("SIMDLEN");
4596 Put("(");
4597 Walk(x.v);
4598 Put(")");
4599}
4600void Unparse(const OmpClause::Sizes &x) {
4601 Word("SIZES");
4602 Put("(");
4603 Walk(x.v, ",");
4604 Put(")");
4605}
4606void Unparse(const OmpClause::TaskReduction &x) {
4607 Word("TASK_REDUCTION");
4608 Put("(");
4609 Walk(x.v);
4610 Put(")");
4611}
4612void Unparse(const OmpClause::ThreadLimit &x) {
4613 Word("THREAD_LIMIT");
4614 Put("(");
4615 Walk(x.v);
4616 Put(")");
4617}
4618void Before(const OmpClause::Threadprivate &) { Word("THREADPRIVATE"); }
4619void Before(const OmpClause::Threads &) { Word("THREADS"); }
4620void Unparse(const OmpClause::To &x) {
4621 Word("TO");
4622 Put("(");
4623 Walk(x.v);
4624 Put(")");
4625}
4626void Before(const OmpClause::UnifiedAddress &) { Word("UNIFIED_ADDRESS"); }
4627void Before(const OmpClause::UnifiedSharedMemory &) { Word("UNIFIED_SHARED_MEMORY"); }
4628void Unparse(const OmpClause::Uniform &x) {
4629 Word("UNIFORM");
4630 Put("(");
4631 Walk(x.v, ",");
4632 Put(")");
4633}
4634void Before(const OmpClause::Unknown &) { Word("UNKNOWN"); }
4635void Before(const OmpClause::Untied &) { Word("UNTIED"); }
4636void Unparse(const OmpClause::Update &x) {
4637 Word("UPDATE");
4638 Walk("(", x.v, ")");
4639}
4640void Unparse(const OmpClause::Use &x) {
4641 Word("USE");
4642 Put("(");
4643 Walk(x.v);
4644 Put(")");
4645}
4646void Unparse(const OmpClause::UseDeviceAddr &x) {
4647 Word("USE_DEVICE_ADDR");
4648 Put("(");
4649 Walk(x.v);
4650 Put(")");
4651}
4652void Unparse(const OmpClause::UseDevicePtr &x) {
4653 Word("USE_DEVICE_PTR");
4654 Put("(");
4655 Walk(x.v);
4656 Put(")");
4657}
4658void Before(const OmpClause::UsesAllocators &) { Word("USES_ALLOCATORS"); }
4659void Before(const OmpClause::Weak &) { Word("WEAK"); }
4660void Unparse(const OmpClause::When &x) {
4661 Word("WHEN");
4662 Put("(");
4663 Walk(x.v);
4664 Put(")");
4665}
4666void Before(const OmpClause::Write &) { Word("WRITE"); }
4667
4668#endif // GEN_FLANG_CLAUSE_UNPARSE
4669
4670#ifdef GEN_FLANG_CLAUSE_CHECK_ENTER
4671#undef GEN_FLANG_CLAUSE_CHECK_ENTER
4672
4673void Enter(const parser::OmpClause::Absent &);
4674void Enter(const parser::OmpClause::AcqRel &);
4675void Enter(const parser::OmpClause::Acquire &);
4676void Enter(const parser::OmpClause::AdjustArgs &);
4677void Enter(const parser::OmpClause::Affinity &);
4678void Enter(const parser::OmpClause::Align &);
4679void Enter(const parser::OmpClause::Aligned &);
4680void Enter(const parser::OmpClause::Allocate &);
4681void Enter(const parser::OmpClause::Allocator &);
4682void Enter(const parser::OmpClause::AppendArgs &);
4683void Enter(const parser::OmpClause::At &);
4684void Enter(const parser::OmpClause::AtomicDefaultMemOrder &);
4685void Enter(const parser::OmpClause::Bind &);
4686void Enter(const parser::OmpClause::CancellationConstructType &);
4687void Enter(const parser::OmpClause::Capture &);
4688void Enter(const parser::OmpClause::Collapse &);
4689void Enter(const parser::OmpClause::Compare &);
4690void Enter(const parser::OmpClause::Contains &);
4691void Enter(const parser::OmpClause::Copyprivate &);
4692void Enter(const parser::OmpClause::Copyin &);
4693void Enter(const parser::OmpClause::Default &);
4694void Enter(const parser::OmpClause::Defaultmap &);
4695void Enter(const parser::OmpClause::Depend &);
4696void Enter(const parser::OmpClause::Depobj &);
4697void Enter(const parser::OmpClause::Destroy &);
4698void Enter(const parser::OmpClause::Detach &);
4699void Enter(const parser::OmpClause::Device &);
4700void Enter(const parser::OmpClause::DeviceType &);
4701void Enter(const parser::OmpClause::DistSchedule &);
4702void Enter(const parser::OmpClause::Doacross &);
4703void Enter(const parser::OmpClause::DynamicAllocators &);
4704void Enter(const parser::OmpClause::Enter &);
4705void Enter(const parser::OmpClause::Exclusive &);
4706void Enter(const parser::OmpClause::Fail &);
4707void Enter(const parser::OmpClause::Filter &);
4708void Enter(const parser::OmpClause::Final &);
4709void Enter(const parser::OmpClause::Firstprivate &);
4710void Enter(const parser::OmpClause::Flush &);
4711void Enter(const parser::OmpClause::From &);
4712void Enter(const parser::OmpClause::Full &);
4713void Enter(const parser::OmpClause::Grainsize &);
4714void Enter(const parser::OmpClause::HasDeviceAddr &);
4715void Enter(const parser::OmpClause::Hint &);
4716void Enter(const parser::OmpClause::Holds &);
4717void Enter(const parser::OmpClause::If &);
4718void Enter(const parser::OmpClause::InReduction &);
4719void Enter(const parser::OmpClause::Inbranch &);
4720void Enter(const parser::OmpClause::Inclusive &);
4721void Enter(const parser::OmpClause::Indirect &);
4722void Enter(const parser::OmpClause::Init &);
4723void Enter(const parser::OmpClause::Initializer &);
4724void Enter(const parser::OmpClause::IsDevicePtr &);
4725void Enter(const parser::OmpClause::Lastprivate &);
4726void Enter(const parser::OmpClause::Linear &);
4727void Enter(const parser::OmpClause::Link &);
4728void Enter(const parser::OmpClause::Map &);
4729void Enter(const parser::OmpClause::Match &);
4730void Enter(const parser::OmpClause::MemoryOrder &);
4731void Enter(const parser::OmpClause::Mergeable &);
4732void Enter(const parser::OmpClause::Message &);
4733void Enter(const parser::OmpClause::Nogroup &);
4734void Enter(const parser::OmpClause::NoOpenmp &);
4735void Enter(const parser::OmpClause::NoOpenmpConstructs &);
4736void Enter(const parser::OmpClause::NoOpenmpRoutines &);
4737void Enter(const parser::OmpClause::NoParallelism &);
4738void Enter(const parser::OmpClause::Nowait &);
4739void Enter(const parser::OmpClause::Nocontext &);
4740void Enter(const parser::OmpClause::Nontemporal &);
4741void Enter(const parser::OmpClause::Notinbranch &);
4742void Enter(const parser::OmpClause::Novariants &);
4743void Enter(const parser::OmpClause::NumTasks &);
4744void Enter(const parser::OmpClause::NumTeams &);
4745void Enter(const parser::OmpClause::NumThreads &);
4746void Enter(const parser::OmpClause::OmpxAttribute &);
4747void Enter(const parser::OmpClause::OmpxBare &);
4748void Enter(const parser::OmpClause::OmpxDynCgroupMem &);
4749void Enter(const parser::OmpClause::Order &);
4750void Enter(const parser::OmpClause::Ordered &);
4751void Enter(const parser::OmpClause::Otherwise &);
4752void Enter(const parser::OmpClause::Partial &);
4753void Enter(const parser::OmpClause::Permutation &);
4754void Enter(const parser::OmpClause::Priority &);
4755void Enter(const parser::OmpClause::Private &);
4756void Enter(const parser::OmpClause::ProcBind &);
4757void Enter(const parser::OmpClause::Read &);
4758void Enter(const parser::OmpClause::Reduction &);
4759void Enter(const parser::OmpClause::Relaxed &);
4760void Enter(const parser::OmpClause::Release &);
4761void Enter(const parser::OmpClause::ReverseOffload &);
4762void Enter(const parser::OmpClause::Safelen &);
4763void Enter(const parser::OmpClause::Schedule &);
4764void Enter(const parser::OmpClause::SelfMaps &);
4765void Enter(const parser::OmpClause::SeqCst &);
4766void Enter(const parser::OmpClause::Severity &);
4767void Enter(const parser::OmpClause::Shared &);
4768void Enter(const parser::OmpClause::Simd &);
4769void Enter(const parser::OmpClause::Simdlen &);
4770void Enter(const parser::OmpClause::Sizes &);
4771void Enter(const parser::OmpClause::TaskReduction &);
4772void Enter(const parser::OmpClause::ThreadLimit &);
4773void Enter(const parser::OmpClause::Threadprivate &);
4774void Enter(const parser::OmpClause::Threads &);
4775void Enter(const parser::OmpClause::To &);
4776void Enter(const parser::OmpClause::UnifiedAddress &);
4777void Enter(const parser::OmpClause::UnifiedSharedMemory &);
4778void Enter(const parser::OmpClause::Uniform &);
4779void Enter(const parser::OmpClause::Unknown &);
4780void Enter(const parser::OmpClause::Untied &);
4781void Enter(const parser::OmpClause::Update &);
4782void Enter(const parser::OmpClause::Use &);
4783void Enter(const parser::OmpClause::UseDeviceAddr &);
4784void Enter(const parser::OmpClause::UseDevicePtr &);
4785void Enter(const parser::OmpClause::UsesAllocators &);
4786void Enter(const parser::OmpClause::Weak &);
4787void Enter(const parser::OmpClause::When &);
4788void Enter(const parser::OmpClause::Write &);
4789
4790#endif // GEN_FLANG_CLAUSE_CHECK_ENTER
4791
4792#ifdef GEN_FLANG_CLAUSE_PARSER_KIND_MAP
4793#undef GEN_FLANG_CLAUSE_PARSER_KIND_MAP
4794
4795if constexpr (std::is_same_v<A, parser::OmpClause::Absent>)
4796 return llvm::omp::Clause::OMPC_absent;
4797if constexpr (std::is_same_v<A, parser::OmpClause::AcqRel>)
4798 return llvm::omp::Clause::OMPC_acq_rel;
4799if constexpr (std::is_same_v<A, parser::OmpClause::Acquire>)
4800 return llvm::omp::Clause::OMPC_acquire;
4801if constexpr (std::is_same_v<A, parser::OmpClause::AdjustArgs>)
4802 return llvm::omp::Clause::OMPC_adjust_args;
4803if constexpr (std::is_same_v<A, parser::OmpClause::Affinity>)
4804 return llvm::omp::Clause::OMPC_affinity;
4805if constexpr (std::is_same_v<A, parser::OmpClause::Align>)
4806 return llvm::omp::Clause::OMPC_align;
4807if constexpr (std::is_same_v<A, parser::OmpClause::Aligned>)
4808 return llvm::omp::Clause::OMPC_aligned;
4809if constexpr (std::is_same_v<A, parser::OmpClause::Allocate>)
4810 return llvm::omp::Clause::OMPC_allocate;
4811if constexpr (std::is_same_v<A, parser::OmpClause::Allocator>)
4812 return llvm::omp::Clause::OMPC_allocator;
4813if constexpr (std::is_same_v<A, parser::OmpClause::AppendArgs>)
4814 return llvm::omp::Clause::OMPC_append_args;
4815if constexpr (std::is_same_v<A, parser::OmpClause::At>)
4816 return llvm::omp::Clause::OMPC_at;
4817if constexpr (std::is_same_v<A, parser::OmpClause::AtomicDefaultMemOrder>)
4818 return llvm::omp::Clause::OMPC_atomic_default_mem_order;
4819if constexpr (std::is_same_v<A, parser::OmpClause::Bind>)
4820 return llvm::omp::Clause::OMPC_bind;
4821if constexpr (std::is_same_v<A, parser::OmpClause::CancellationConstructType>)
4822 return llvm::omp::Clause::OMPC_cancellation_construct_type;
4823if constexpr (std::is_same_v<A, parser::OmpClause::Capture>)
4824 return llvm::omp::Clause::OMPC_capture;
4825if constexpr (std::is_same_v<A, parser::OmpClause::Collapse>)
4826 return llvm::omp::Clause::OMPC_collapse;
4827if constexpr (std::is_same_v<A, parser::OmpClause::Compare>)
4828 return llvm::omp::Clause::OMPC_compare;
4829if constexpr (std::is_same_v<A, parser::OmpClause::Contains>)
4830 return llvm::omp::Clause::OMPC_contains;
4831if constexpr (std::is_same_v<A, parser::OmpClause::Copyprivate>)
4832 return llvm::omp::Clause::OMPC_copyprivate;
4833if constexpr (std::is_same_v<A, parser::OmpClause::Copyin>)
4834 return llvm::omp::Clause::OMPC_copyin;
4835if constexpr (std::is_same_v<A, parser::OmpClause::Default>)
4836 return llvm::omp::Clause::OMPC_default;
4837if constexpr (std::is_same_v<A, parser::OmpClause::Defaultmap>)
4838 return llvm::omp::Clause::OMPC_defaultmap;
4839if constexpr (std::is_same_v<A, parser::OmpClause::Depend>)
4840 return llvm::omp::Clause::OMPC_depend;
4841if constexpr (std::is_same_v<A, parser::OmpClause::Depobj>)
4842 return llvm::omp::Clause::OMPC_depobj;
4843if constexpr (std::is_same_v<A, parser::OmpClause::Destroy>)
4844 return llvm::omp::Clause::OMPC_destroy;
4845if constexpr (std::is_same_v<A, parser::OmpClause::Detach>)
4846 return llvm::omp::Clause::OMPC_detach;
4847if constexpr (std::is_same_v<A, parser::OmpClause::Device>)
4848 return llvm::omp::Clause::OMPC_device;
4849if constexpr (std::is_same_v<A, parser::OmpClause::DeviceType>)
4850 return llvm::omp::Clause::OMPC_device_type;
4851if constexpr (std::is_same_v<A, parser::OmpClause::DistSchedule>)
4852 return llvm::omp::Clause::OMPC_dist_schedule;
4853if constexpr (std::is_same_v<A, parser::OmpClause::Doacross>)
4854 return llvm::omp::Clause::OMPC_doacross;
4855if constexpr (std::is_same_v<A, parser::OmpClause::DynamicAllocators>)
4856 return llvm::omp::Clause::OMPC_dynamic_allocators;
4857if constexpr (std::is_same_v<A, parser::OmpClause::Enter>)
4858 return llvm::omp::Clause::OMPC_enter;
4859if constexpr (std::is_same_v<A, parser::OmpClause::Exclusive>)
4860 return llvm::omp::Clause::OMPC_exclusive;
4861if constexpr (std::is_same_v<A, parser::OmpClause::Fail>)
4862 return llvm::omp::Clause::OMPC_fail;
4863if constexpr (std::is_same_v<A, parser::OmpClause::Filter>)
4864 return llvm::omp::Clause::OMPC_filter;
4865if constexpr (std::is_same_v<A, parser::OmpClause::Final>)
4866 return llvm::omp::Clause::OMPC_final;
4867if constexpr (std::is_same_v<A, parser::OmpClause::Firstprivate>)
4868 return llvm::omp::Clause::OMPC_firstprivate;
4869if constexpr (std::is_same_v<A, parser::OmpClause::Flush>)
4870 return llvm::omp::Clause::OMPC_flush;
4871if constexpr (std::is_same_v<A, parser::OmpClause::From>)
4872 return llvm::omp::Clause::OMPC_from;
4873if constexpr (std::is_same_v<A, parser::OmpClause::Full>)
4874 return llvm::omp::Clause::OMPC_full;
4875if constexpr (std::is_same_v<A, parser::OmpClause::Grainsize>)
4876 return llvm::omp::Clause::OMPC_grainsize;
4877if constexpr (std::is_same_v<A, parser::OmpClause::HasDeviceAddr>)
4878 return llvm::omp::Clause::OMPC_has_device_addr;
4879if constexpr (std::is_same_v<A, parser::OmpClause::Hint>)
4880 return llvm::omp::Clause::OMPC_hint;
4881if constexpr (std::is_same_v<A, parser::OmpClause::Holds>)
4882 return llvm::omp::Clause::OMPC_holds;
4883if constexpr (std::is_same_v<A, parser::OmpClause::If>)
4884 return llvm::omp::Clause::OMPC_if;
4885if constexpr (std::is_same_v<A, parser::OmpClause::InReduction>)
4886 return llvm::omp::Clause::OMPC_in_reduction;
4887if constexpr (std::is_same_v<A, parser::OmpClause::Inbranch>)
4888 return llvm::omp::Clause::OMPC_inbranch;
4889if constexpr (std::is_same_v<A, parser::OmpClause::Inclusive>)
4890 return llvm::omp::Clause::OMPC_inclusive;
4891if constexpr (std::is_same_v<A, parser::OmpClause::Indirect>)
4892 return llvm::omp::Clause::OMPC_indirect;
4893if constexpr (std::is_same_v<A, parser::OmpClause::Init>)
4894 return llvm::omp::Clause::OMPC_init;
4895if constexpr (std::is_same_v<A, parser::OmpClause::Initializer>)
4896 return llvm::omp::Clause::OMPC_initializer;
4897if constexpr (std::is_same_v<A, parser::OmpClause::IsDevicePtr>)
4898 return llvm::omp::Clause::OMPC_is_device_ptr;
4899if constexpr (std::is_same_v<A, parser::OmpClause::Lastprivate>)
4900 return llvm::omp::Clause::OMPC_lastprivate;
4901if constexpr (std::is_same_v<A, parser::OmpClause::Linear>)
4902 return llvm::omp::Clause::OMPC_linear;
4903if constexpr (std::is_same_v<A, parser::OmpClause::Link>)
4904 return llvm::omp::Clause::OMPC_link;
4905if constexpr (std::is_same_v<A, parser::OmpClause::Map>)
4906 return llvm::omp::Clause::OMPC_map;
4907if constexpr (std::is_same_v<A, parser::OmpClause::Match>)
4908 return llvm::omp::Clause::OMPC_match;
4909if constexpr (std::is_same_v<A, parser::OmpClause::MemoryOrder>)
4910 return llvm::omp::Clause::OMPC_memory_order;
4911if constexpr (std::is_same_v<A, parser::OmpClause::Mergeable>)
4912 return llvm::omp::Clause::OMPC_mergeable;
4913if constexpr (std::is_same_v<A, parser::OmpClause::Message>)
4914 return llvm::omp::Clause::OMPC_message;
4915if constexpr (std::is_same_v<A, parser::OmpClause::Nogroup>)
4916 return llvm::omp::Clause::OMPC_nogroup;
4917if constexpr (std::is_same_v<A, parser::OmpClause::NoOpenmp>)
4918 return llvm::omp::Clause::OMPC_no_openmp;
4919if constexpr (std::is_same_v<A, parser::OmpClause::NoOpenmpConstructs>)
4920 return llvm::omp::Clause::OMPC_no_openmp_constructs;
4921if constexpr (std::is_same_v<A, parser::OmpClause::NoOpenmpRoutines>)
4922 return llvm::omp::Clause::OMPC_no_openmp_routines;
4923if constexpr (std::is_same_v<A, parser::OmpClause::NoParallelism>)
4924 return llvm::omp::Clause::OMPC_no_parallelism;
4925if constexpr (std::is_same_v<A, parser::OmpClause::Nowait>)
4926 return llvm::omp::Clause::OMPC_nowait;
4927if constexpr (std::is_same_v<A, parser::OmpClause::Nocontext>)
4928 return llvm::omp::Clause::OMPC_nocontext;
4929if constexpr (std::is_same_v<A, parser::OmpClause::Nontemporal>)
4930 return llvm::omp::Clause::OMPC_nontemporal;
4931if constexpr (std::is_same_v<A, parser::OmpClause::Notinbranch>)
4932 return llvm::omp::Clause::OMPC_notinbranch;
4933if constexpr (std::is_same_v<A, parser::OmpClause::Novariants>)
4934 return llvm::omp::Clause::OMPC_novariants;
4935if constexpr (std::is_same_v<A, parser::OmpClause::NumTasks>)
4936 return llvm::omp::Clause::OMPC_num_tasks;
4937if constexpr (std::is_same_v<A, parser::OmpClause::NumTeams>)
4938 return llvm::omp::Clause::OMPC_num_teams;
4939if constexpr (std::is_same_v<A, parser::OmpClause::NumThreads>)
4940 return llvm::omp::Clause::OMPC_num_threads;
4941if constexpr (std::is_same_v<A, parser::OmpClause::OmpxAttribute>)
4942 return llvm::omp::Clause::OMPC_ompx_attribute;
4943if constexpr (std::is_same_v<A, parser::OmpClause::OmpxBare>)
4944 return llvm::omp::Clause::OMPC_ompx_bare;
4945if constexpr (std::is_same_v<A, parser::OmpClause::OmpxDynCgroupMem>)
4946 return llvm::omp::Clause::OMPC_ompx_dyn_cgroup_mem;
4947if constexpr (std::is_same_v<A, parser::OmpClause::Order>)
4948 return llvm::omp::Clause::OMPC_order;
4949if constexpr (std::is_same_v<A, parser::OmpClause::Ordered>)
4950 return llvm::omp::Clause::OMPC_ordered;
4951if constexpr (std::is_same_v<A, parser::OmpClause::Otherwise>)
4952 return llvm::omp::Clause::OMPC_otherwise;
4953if constexpr (std::is_same_v<A, parser::OmpClause::Partial>)
4954 return llvm::omp::Clause::OMPC_partial;
4955if constexpr (std::is_same_v<A, parser::OmpClause::Permutation>)
4956 return llvm::omp::Clause::OMPC_permutation;
4957if constexpr (std::is_same_v<A, parser::OmpClause::Priority>)
4958 return llvm::omp::Clause::OMPC_priority;
4959if constexpr (std::is_same_v<A, parser::OmpClause::Private>)
4960 return llvm::omp::Clause::OMPC_private;
4961if constexpr (std::is_same_v<A, parser::OmpClause::ProcBind>)
4962 return llvm::omp::Clause::OMPC_proc_bind;
4963if constexpr (std::is_same_v<A, parser::OmpClause::Read>)
4964 return llvm::omp::Clause::OMPC_read;
4965if constexpr (std::is_same_v<A, parser::OmpClause::Reduction>)
4966 return llvm::omp::Clause::OMPC_reduction;
4967if constexpr (std::is_same_v<A, parser::OmpClause::Relaxed>)
4968 return llvm::omp::Clause::OMPC_relaxed;
4969if constexpr (std::is_same_v<A, parser::OmpClause::Release>)
4970 return llvm::omp::Clause::OMPC_release;
4971if constexpr (std::is_same_v<A, parser::OmpClause::ReverseOffload>)
4972 return llvm::omp::Clause::OMPC_reverse_offload;
4973if constexpr (std::is_same_v<A, parser::OmpClause::Safelen>)
4974 return llvm::omp::Clause::OMPC_safelen;
4975if constexpr (std::is_same_v<A, parser::OmpClause::Schedule>)
4976 return llvm::omp::Clause::OMPC_schedule;
4977if constexpr (std::is_same_v<A, parser::OmpClause::SelfMaps>)
4978 return llvm::omp::Clause::OMPC_self_maps;
4979if constexpr (std::is_same_v<A, parser::OmpClause::SeqCst>)
4980 return llvm::omp::Clause::OMPC_seq_cst;
4981if constexpr (std::is_same_v<A, parser::OmpClause::Severity>)
4982 return llvm::omp::Clause::OMPC_severity;
4983if constexpr (std::is_same_v<A, parser::OmpClause::Shared>)
4984 return llvm::omp::Clause::OMPC_shared;
4985if constexpr (std::is_same_v<A, parser::OmpClause::Simd>)
4986 return llvm::omp::Clause::OMPC_simd;
4987if constexpr (std::is_same_v<A, parser::OmpClause::Simdlen>)
4988 return llvm::omp::Clause::OMPC_simdlen;
4989if constexpr (std::is_same_v<A, parser::OmpClause::Sizes>)
4990 return llvm::omp::Clause::OMPC_sizes;
4991if constexpr (std::is_same_v<A, parser::OmpClause::TaskReduction>)
4992 return llvm::omp::Clause::OMPC_task_reduction;
4993if constexpr (std::is_same_v<A, parser::OmpClause::ThreadLimit>)
4994 return llvm::omp::Clause::OMPC_thread_limit;
4995if constexpr (std::is_same_v<A, parser::OmpClause::Threadprivate>)
4996 return llvm::omp::Clause::OMPC_threadprivate;
4997if constexpr (std::is_same_v<A, parser::OmpClause::Threads>)
4998 return llvm::omp::Clause::OMPC_threads;
4999if constexpr (std::is_same_v<A, parser::OmpClause::To>)
5000 return llvm::omp::Clause::OMPC_to;
5001if constexpr (std::is_same_v<A, parser::OmpClause::UnifiedAddress>)
5002 return llvm::omp::Clause::OMPC_unified_address;
5003if constexpr (std::is_same_v<A, parser::OmpClause::UnifiedSharedMemory>)
5004 return llvm::omp::Clause::OMPC_unified_shared_memory;
5005if constexpr (std::is_same_v<A, parser::OmpClause::Uniform>)
5006 return llvm::omp::Clause::OMPC_uniform;
5007if constexpr (std::is_same_v<A, parser::OmpClause::Unknown>)
5008 return llvm::omp::Clause::OMPC_unknown;
5009if constexpr (std::is_same_v<A, parser::OmpClause::Untied>)
5010 return llvm::omp::Clause::OMPC_untied;
5011if constexpr (std::is_same_v<A, parser::OmpClause::Update>)
5012 return llvm::omp::Clause::OMPC_update;
5013if constexpr (std::is_same_v<A, parser::OmpClause::Use>)
5014 return llvm::omp::Clause::OMPC_use;
5015if constexpr (std::is_same_v<A, parser::OmpClause::UseDeviceAddr>)
5016 return llvm::omp::Clause::OMPC_use_device_addr;
5017if constexpr (std::is_same_v<A, parser::OmpClause::UseDevicePtr>)
5018 return llvm::omp::Clause::OMPC_use_device_ptr;
5019if constexpr (std::is_same_v<A, parser::OmpClause::UsesAllocators>)
5020 return llvm::omp::Clause::OMPC_uses_allocators;
5021if constexpr (std::is_same_v<A, parser::OmpClause::Weak>)
5022 return llvm::omp::Clause::OMPC_weak;
5023if constexpr (std::is_same_v<A, parser::OmpClause::When>)
5024 return llvm::omp::Clause::OMPC_when;
5025if constexpr (std::is_same_v<A, parser::OmpClause::Write>)
5026 return llvm::omp::Clause::OMPC_write;
5027llvm_unreachable("Invalid OpenMP Parser clause");
5028
5029#endif // GEN_FLANG_CLAUSE_PARSER_KIND_MAP
5030
5031#ifdef GEN_FLANG_CLAUSES_PARSER
5032#undef GEN_FLANG_CLAUSES_PARSER
5033
5034TYPE_PARSER(
5035 "write" >> construct<OmpClause>(construct<OmpClause::Write>()) ||
5036 "when" >> construct<OmpClause>(construct<OmpClause::When>(parenthesized(Parser<OmpWhenClause>{}))) ||
5037 "weak" >> construct<OmpClause>(construct<OmpClause::Weak>()) ||
5038 "uses_allocators" >> construct<OmpClause>(construct<OmpClause::UsesAllocators>()) ||
5039 "use_device_ptr" >> construct<OmpClause>(construct<OmpClause::UseDevicePtr>(parenthesized(Parser<OmpObjectList>{}))) ||
5040 "use_device_addr" >> construct<OmpClause>(construct<OmpClause::UseDeviceAddr>(parenthesized(Parser<OmpObjectList>{}))) ||
5041 "use" >> construct<OmpClause>(construct<OmpClause::Use>(parenthesized(Parser<OmpUseClause>{}))) ||
5042 "update" >> construct<OmpClause>(construct<OmpClause::Update>(maybe(parenthesized(Parser<OmpUpdateClause>{})))) ||
5043 "untied" >> construct<OmpClause>(construct<OmpClause::Untied>()) ||
5044 "unknown" >> construct<OmpClause>(construct<OmpClause::Unknown>()) ||
5045 "uniform" >> construct<OmpClause>(construct<OmpClause::Uniform>(parenthesized(nonemptyList(name)))) ||
5046 "unified_shared_memory" >> construct<OmpClause>(construct<OmpClause::UnifiedSharedMemory>()) ||
5047 "unified_address" >> construct<OmpClause>(construct<OmpClause::UnifiedAddress>()) ||
5048 "to" >> construct<OmpClause>(construct<OmpClause::To>(parenthesized(Parser<OmpToClause>{}))) ||
5049 "threads" >> construct<OmpClause>(construct<OmpClause::Threads>()) ||
5050 "threadprivate" >> construct<OmpClause>(construct<OmpClause::Threadprivate>()) ||
5051 "thread_limit" >> construct<OmpClause>(construct<OmpClause::ThreadLimit>(parenthesized(scalarIntExpr))) ||
5052 "task_reduction" >> construct<OmpClause>(construct<OmpClause::TaskReduction>(parenthesized(Parser<OmpTaskReductionClause>{}))) ||
5053 "sizes" >> construct<OmpClause>(construct<OmpClause::Sizes>(parenthesized(nonemptyList(scalarIntExpr)))) ||
5054 "simdlen" >> construct<OmpClause>(construct<OmpClause::Simdlen>(parenthesized(scalarIntConstantExpr))) ||
5055 "simd" >> construct<OmpClause>(construct<OmpClause::Simd>()) ||
5056 "shared" >> construct<OmpClause>(construct<OmpClause::Shared>(parenthesized(Parser<OmpObjectList>{}))) ||
5057 "severity" >> construct<OmpClause>(construct<OmpClause::Severity>(parenthesized(Parser<OmpSeverityClause>{}))) ||
5058 "seq_cst" >> construct<OmpClause>(construct<OmpClause::SeqCst>()) ||
5059 "self_maps" >> construct<OmpClause>(construct<OmpClause::SelfMaps>()) ||
5060 "schedule" >> construct<OmpClause>(construct<OmpClause::Schedule>(parenthesized(Parser<OmpScheduleClause>{}))) ||
5061 "safelen" >> construct<OmpClause>(construct<OmpClause::Safelen>(parenthesized(scalarIntConstantExpr))) ||
5062 "reverse_offload" >> construct<OmpClause>(construct<OmpClause::ReverseOffload>()) ||
5063 "release" >> construct<OmpClause>(construct<OmpClause::Release>()) ||
5064 "relaxed" >> construct<OmpClause>(construct<OmpClause::Relaxed>()) ||
5065 "reduction" >> construct<OmpClause>(construct<OmpClause::Reduction>(parenthesized(Parser<OmpReductionClause>{}))) ||
5066 "read" >> construct<OmpClause>(construct<OmpClause::Read>()) ||
5067 "proc_bind" >> construct<OmpClause>(construct<OmpClause::ProcBind>(parenthesized(Parser<OmpProcBindClause>{}))) ||
5068 "private" >> construct<OmpClause>(construct<OmpClause::Private>(parenthesized(Parser<OmpObjectList>{}))) ||
5069 "priority" >> construct<OmpClause>(construct<OmpClause::Priority>(parenthesized(scalarIntExpr))) ||
5070 "permutation" >> construct<OmpClause>(construct<OmpClause::Permutation>(parenthesized(nonemptyList(scalarIntExpr)))) ||
5071 "partial" >> construct<OmpClause>(construct<OmpClause::Partial>(maybe(parenthesized(scalarIntConstantExpr)))) ||
5072 "otherwise" >> construct<OmpClause>(construct<OmpClause::Otherwise>(maybe(parenthesized(Parser<OmpOtherwiseClause>{})))) ||
5073 "ordered" >> construct<OmpClause>(construct<OmpClause::Ordered>(maybe(parenthesized(scalarIntConstantExpr)))) ||
5074 "order" >> construct<OmpClause>(construct<OmpClause::Order>(parenthesized(Parser<OmpOrderClause>{}))) ||
5075 "ompx_dyn_cgroup_mem" >> construct<OmpClause>(construct<OmpClause::OmpxDynCgroupMem>(parenthesized(scalarIntExpr))) ||
5076 "ompx_bare" >> construct<OmpClause>(construct<OmpClause::OmpxBare>()) ||
5077 "ompx_attribute" >> construct<OmpClause>(construct<OmpClause::OmpxAttribute>()) ||
5078 "num_threads" >> construct<OmpClause>(construct<OmpClause::NumThreads>(parenthesized(scalarIntExpr))) ||
5079 "num_teams" >> construct<OmpClause>(construct<OmpClause::NumTeams>(parenthesized(scalarIntExpr))) ||
5080 "num_tasks" >> construct<OmpClause>(construct<OmpClause::NumTasks>(parenthesized(Parser<OmpNumTasksClause>{}))) ||
5081 "nowait" >> construct<OmpClause>(construct<OmpClause::Nowait>()) ||
5082 "novariants" >> construct<OmpClause>(construct<OmpClause::Novariants>(parenthesized(scalarLogicalExpr))) ||
5083 "notinbranch" >> construct<OmpClause>(construct<OmpClause::Notinbranch>()) ||
5084 "nontemporal" >> construct<OmpClause>(construct<OmpClause::Nontemporal>(parenthesized(nonemptyList(name)))) ||
5085 "nogroup" >> construct<OmpClause>(construct<OmpClause::Nogroup>()) ||
5086 "nocontext" >> construct<OmpClause>(construct<OmpClause::Nocontext>(parenthesized(scalarLogicalExpr))) ||
5087 "no_parallelism" >> construct<OmpClause>(construct<OmpClause::NoParallelism>()) ||
5088 "no_openmp_routines" >> construct<OmpClause>(construct<OmpClause::NoOpenmpRoutines>()) ||
5089 "no_openmp_constructs" >> construct<OmpClause>(construct<OmpClause::NoOpenmpConstructs>()) ||
5090 "no_openmp" >> construct<OmpClause>(construct<OmpClause::NoOpenmp>()) ||
5091 "message" >> construct<OmpClause>(construct<OmpClause::Message>(parenthesized(Parser<OmpMessageClause>{}))) ||
5092 "mergeable" >> construct<OmpClause>(construct<OmpClause::Mergeable>()) ||
5093 "memory_order" >> construct<OmpClause>(construct<OmpClause::MemoryOrder>()) ||
5094 "match" >> construct<OmpClause>(construct<OmpClause::Match>(parenthesized(Parser<OmpMatchClause>{}))) ||
5095 "map" >> construct<OmpClause>(construct<OmpClause::Map>(parenthesized(Parser<OmpMapClause>{}))) ||
5096 "link" >> construct<OmpClause>(construct<OmpClause::Link>(parenthesized(Parser<OmpObjectList>{}))) ||
5097 "linear" >> construct<OmpClause>(construct<OmpClause::Linear>(parenthesized(Parser<OmpLinearClause>{}))) ||
5098 "lastprivate" >> construct<OmpClause>(construct<OmpClause::Lastprivate>(parenthesized(Parser<OmpLastprivateClause>{}))) ||
5099 "is_device_ptr" >> construct<OmpClause>(construct<OmpClause::IsDevicePtr>(parenthesized(Parser<OmpObjectList>{}))) ||
5100 "initializer" >> construct<OmpClause>(construct<OmpClause::Initializer>(parenthesized(Parser<OmpInitializerClause>{}))) ||
5101 "init" >> construct<OmpClause>(construct<OmpClause::Init>(parenthesized(Parser<OmpInitClause>{}))) ||
5102 "indirect" >> construct<OmpClause>(construct<OmpClause::Indirect>(parenthesized(Parser<OmpIndirectClause>{}))) ||
5103 "inclusive" >> construct<OmpClause>(construct<OmpClause::Inclusive>(parenthesized(Parser<OmpObjectList>{}))) ||
5104 "inbranch" >> construct<OmpClause>(construct<OmpClause::Inbranch>()) ||
5105 "in_reduction" >> construct<OmpClause>(construct<OmpClause::InReduction>(parenthesized(Parser<OmpInReductionClause>{}))) ||
5106 "if" >> construct<OmpClause>(construct<OmpClause::If>(parenthesized(Parser<OmpIfClause>{}))) ||
5107 "holds" >> construct<OmpClause>(construct<OmpClause::Holds>(parenthesized(Parser<OmpHoldsClause>{}))) ||
5108 "hint" >> construct<OmpClause>(construct<OmpClause::Hint>(parenthesized(Parser<OmpHintClause>{}))) ||
5109 "has_device_addr" >> construct<OmpClause>(construct<OmpClause::HasDeviceAddr>(parenthesized(Parser<OmpObjectList>{}))) ||
5110 "grainsize" >> construct<OmpClause>(construct<OmpClause::Grainsize>(parenthesized(Parser<OmpGrainsizeClause>{}))) ||
5111 "full" >> construct<OmpClause>(construct<OmpClause::Full>()) ||
5112 "from" >> construct<OmpClause>(construct<OmpClause::From>(parenthesized(Parser<OmpFromClause>{}))) ||
5113 "flush" >> construct<OmpClause>(construct<OmpClause::Flush>()) ||
5114 "firstprivate" >> construct<OmpClause>(construct<OmpClause::Firstprivate>(parenthesized(Parser<OmpObjectList>{}))) ||
5115 "final" >> construct<OmpClause>(construct<OmpClause::Final>(parenthesized(scalarLogicalExpr))) ||
5116 "filter" >> construct<OmpClause>(construct<OmpClause::Filter>(parenthesized(scalarIntExpr))) ||
5117 "fail" >> construct<OmpClause>(construct<OmpClause::Fail>(parenthesized(Parser<OmpFailClause>{}))) ||
5118 "exclusive" >> construct<OmpClause>(construct<OmpClause::Exclusive>(parenthesized(Parser<OmpObjectList>{}))) ||
5119 "enter" >> construct<OmpClause>(construct<OmpClause::Enter>(parenthesized(Parser<OmpObjectList>{}))) ||
5120 "dynamic_allocators" >> construct<OmpClause>(construct<OmpClause::DynamicAllocators>()) ||
5121 "doacross" >> construct<OmpClause>(construct<OmpClause::Doacross>(parenthesized(Parser<OmpDoacrossClause>{}))) ||
5122 "dist_schedule" >> construct<OmpClause>(construct<OmpClause::DistSchedule>(maybe(parenthesized(scalarIntExpr)))) ||
5123 "device_type" >> construct<OmpClause>(construct<OmpClause::DeviceType>(parenthesized(Parser<OmpDeviceTypeClause>{}))) ||
5124 "device" >> construct<OmpClause>(construct<OmpClause::Device>(parenthesized(Parser<OmpDeviceClause>{}))) ||
5125 "detach" >> construct<OmpClause>(construct<OmpClause::Detach>(parenthesized(Parser<OmpDetachClause>{}))) ||
5126 "destroy" >> construct<OmpClause>(construct<OmpClause::Destroy>(maybe(parenthesized(Parser<OmpDestroyClause>{})))) ||
5127 "depobj" >> construct<OmpClause>(construct<OmpClause::Depobj>()) ||
5128 "depend" >> construct<OmpClause>(construct<OmpClause::Depend>(parenthesized(Parser<OmpDependClause>{}))) ||
5129 "defaultmap" >> construct<OmpClause>(construct<OmpClause::Defaultmap>(parenthesized(Parser<OmpDefaultmapClause>{}))) ||
5130 "default" >> construct<OmpClause>(construct<OmpClause::Default>(parenthesized(Parser<OmpDefaultClause>{}))) ||
5131 "copyprivate" >> construct<OmpClause>(construct<OmpClause::Copyprivate>(parenthesized(Parser<OmpObjectList>{}))) ||
5132 "copyin" >> construct<OmpClause>(construct<OmpClause::Copyin>(parenthesized(Parser<OmpObjectList>{}))) ||
5133 "contains" >> construct<OmpClause>(construct<OmpClause::Contains>(parenthesized(Parser<OmpContainsClause>{}))) ||
5134 "compare" >> construct<OmpClause>(construct<OmpClause::Compare>()) ||
5135 "collapse" >> construct<OmpClause>(construct<OmpClause::Collapse>(parenthesized(scalarIntConstantExpr))) ||
5136 "capture" >> construct<OmpClause>(construct<OmpClause::Capture>()) ||
5137 "cancellation_construct_type" >> construct<OmpClause>(construct<OmpClause::CancellationConstructType>(parenthesized(Parser<OmpCancellationConstructTypeClause>{}))) ||
5138 "bind" >> construct<OmpClause>(construct<OmpClause::Bind>(parenthesized(Parser<OmpBindClause>{}))) ||
5139 "atomic_default_mem_order" >> construct<OmpClause>(construct<OmpClause::AtomicDefaultMemOrder>(parenthesized(Parser<OmpAtomicDefaultMemOrderClause>{}))) ||
5140 "at" >> construct<OmpClause>(construct<OmpClause::At>(parenthesized(Parser<OmpAtClause>{}))) ||
5141 "append_args" >> construct<OmpClause>(construct<OmpClause::AppendArgs>(parenthesized(Parser<OmpAppendArgsClause>{}))) ||
5142 "allocator" >> construct<OmpClause>(construct<OmpClause::Allocator>(parenthesized(scalarIntExpr))) ||
5143 "allocate" >> construct<OmpClause>(construct<OmpClause::Allocate>(parenthesized(Parser<OmpAllocateClause>{}))) ||
5144 "aligned" >> construct<OmpClause>(construct<OmpClause::Aligned>(parenthesized(Parser<OmpAlignedClause>{}))) ||
5145 "align" >> construct<OmpClause>(construct<OmpClause::Align>(parenthesized(Parser<OmpAlignClause>{}))) ||
5146 "affinity" >> construct<OmpClause>(construct<OmpClause::Affinity>(parenthesized(Parser<OmpAffinityClause>{}))) ||
5147 "adjust_args" >> construct<OmpClause>(construct<OmpClause::AdjustArgs>(parenthesized(Parser<OmpAdjustArgsClause>{}))) ||
5148 "acquire" >> construct<OmpClause>(construct<OmpClause::Acquire>()) ||
5149 "acq_rel" >> construct<OmpClause>(construct<OmpClause::AcqRel>()) ||
5150 "absent" >> construct<OmpClause>(construct<OmpClause::Absent>(parenthesized(Parser<OmpAbsentClause>{})))
5151)
5152
5153#endif // GEN_FLANG_CLAUSES_PARSER
5154
5155#ifdef GEN_CLANG_CLAUSE_CLASS
5156#undef GEN_CLANG_CLAUSE_CLASS
5157
5158#ifndef CLAUSE
5159#define CLAUSE(Enum, Str, Implicit)
5160#endif
5161#ifndef CLAUSE_CLASS
5162#define CLAUSE_CLASS(Enum, Str, Class)
5163#endif
5164#ifndef CLAUSE_NO_CLASS
5165#define CLAUSE_NO_CLASS(Enum, Str)
5166#endif
5167
5168#define __CLAUSE(Name, Class) \
5169 CLAUSE(OMPC_##Name, #Name, /* Implicit */ false) \
5170 CLAUSE_CLASS(OMPC_##Name, #Name, Class)
5171#define __CLAUSE_NO_CLASS(Name) \
5172 CLAUSE(OMPC_##Name, #Name, /* Implicit */ false) \
5173 CLAUSE_NO_CLASS(OMPC_##Name, #Name)
5174#define __IMPLICIT_CLAUSE_CLASS(Name, Str, Class) \
5175 CLAUSE(OMPC_##Name, Str, /* Implicit */ true) \
5176 CLAUSE_CLASS(OMPC_##Name, Str, Class)
5177#define __IMPLICIT_CLAUSE_NO_CLASS(Name, Str) \
5178 CLAUSE(OMPC_##Name, Str, /* Implicit */ true) \
5179 CLAUSE_NO_CLASS(OMPC_##Name, Str)
5180
5181__CLAUSE(absent, OMPAbsentClause)
5182__CLAUSE(acq_rel, OMPAcqRelClause)
5183__CLAUSE(acquire, OMPAcquireClause)
5184__CLAUSE_NO_CLASS(adjust_args)
5185__CLAUSE(affinity, OMPAffinityClause)
5186__CLAUSE(align, OMPAlignClause)
5187__CLAUSE(aligned, OMPAlignedClause)
5188__CLAUSE(allocate, OMPAllocateClause)
5189__CLAUSE(allocator, OMPAllocatorClause)
5190__CLAUSE_NO_CLASS(append_args)
5191__CLAUSE(at, OMPAtClause)
5192__CLAUSE(atomic_default_mem_order, OMPAtomicDefaultMemOrderClause)
5193__CLAUSE(bind, OMPBindClause)
5194__CLAUSE_NO_CLASS(cancellation_construct_type)
5195__CLAUSE(capture, OMPCaptureClause)
5196__CLAUSE(collapse, OMPCollapseClause)
5197__CLAUSE(compare, OMPCompareClause)
5198__CLAUSE(contains, OMPContainsClause)
5199__CLAUSE(copyprivate, OMPCopyprivateClause)
5200__CLAUSE(copyin, OMPCopyinClause)
5201__CLAUSE(default, OMPDefaultClause)
5202__CLAUSE(defaultmap, OMPDefaultmapClause)
5203__CLAUSE(depend, OMPDependClause)
5204__IMPLICIT_CLAUSE_CLASS(depobj, "depobj", OMPDepobjClause)
5205__CLAUSE(destroy, OMPDestroyClause)
5206__CLAUSE(detach, OMPDetachClause)
5207__CLAUSE(device, OMPDeviceClause)
5208__CLAUSE_NO_CLASS(device_type)
5209__CLAUSE(dist_schedule, OMPDistScheduleClause)
5210__CLAUSE(doacross, OMPDoacrossClause)
5211__CLAUSE(dynamic_allocators, OMPDynamicAllocatorsClause)
5212__CLAUSE_NO_CLASS(enter)
5213__CLAUSE(exclusive, OMPExclusiveClause)
5214__CLAUSE(fail, OMPFailClause)
5215__CLAUSE(filter, OMPFilterClause)
5216__CLAUSE(final, OMPFinalClause)
5217__CLAUSE(firstprivate, OMPFirstprivateClause)
5218__IMPLICIT_CLAUSE_CLASS(flush, "flush", OMPFlushClause)
5219__CLAUSE(from, OMPFromClause)
5220__CLAUSE(full, OMPFullClause)
5221__CLAUSE(grainsize, OMPGrainsizeClause)
5222__CLAUSE(has_device_addr, OMPHasDeviceAddrClause)
5223__CLAUSE(hint, OMPHintClause)
5224__CLAUSE(holds, OMPHoldsClause)
5225__CLAUSE(if, OMPIfClause)
5226__CLAUSE(in_reduction, OMPInReductionClause)
5227__CLAUSE_NO_CLASS(inbranch)
5228__CLAUSE(inclusive, OMPInclusiveClause)
5229__CLAUSE_NO_CLASS(indirect)
5230__CLAUSE(init, OMPInitClause)
5231__CLAUSE_NO_CLASS(initializer)
5232__CLAUSE(is_device_ptr, OMPIsDevicePtrClause)
5233__CLAUSE(lastprivate, OMPLastprivateClause)
5234__CLAUSE(linear, OMPLinearClause)
5235__CLAUSE_NO_CLASS(link)
5236__CLAUSE(map, OMPMapClause)
5237__CLAUSE_NO_CLASS(match)
5238__CLAUSE_NO_CLASS(memory_order)
5239__CLAUSE(mergeable, OMPMergeableClause)
5240__CLAUSE(message, OMPMessageClause)
5241__CLAUSE(nogroup, OMPNogroupClause)
5242__CLAUSE(no_openmp, OMPNoOpenMPClause)
5243__CLAUSE(no_openmp_constructs, OMPNoOpenMPConstructsClause)
5244__CLAUSE(no_openmp_routines, OMPNoOpenMPRoutinesClause)
5245__CLAUSE(no_parallelism, OMPNoParallelismClause)
5246__CLAUSE(nowait, OMPNowaitClause)
5247__CLAUSE(nocontext, OMPNocontextClause)
5248__CLAUSE(nontemporal, OMPNontemporalClause)
5249__CLAUSE_NO_CLASS(notinbranch)
5250__CLAUSE(novariants, OMPNovariantsClause)
5251__CLAUSE(num_tasks, OMPNumTasksClause)
5252__CLAUSE(num_teams, OMPNumTeamsClause)
5253__CLAUSE(num_threads, OMPNumThreadsClause)
5254__CLAUSE(ompx_attribute, OMPXAttributeClause)
5255__CLAUSE(ompx_bare, OMPXBareClause)
5256__CLAUSE(ompx_dyn_cgroup_mem, OMPXDynCGroupMemClause)
5257__CLAUSE(order, OMPOrderClause)
5258__CLAUSE(ordered, OMPOrderedClause)
5259__CLAUSE_NO_CLASS(otherwise)
5260__CLAUSE(partial, OMPPartialClause)
5261__CLAUSE(permutation, OMPPermutationClause)
5262__CLAUSE(priority, OMPPriorityClause)
5263__CLAUSE(private, OMPPrivateClause)
5264__CLAUSE(proc_bind, OMPProcBindClause)
5265__CLAUSE(read, OMPReadClause)
5266__CLAUSE(reduction, OMPReductionClause)
5267__CLAUSE(relaxed, OMPRelaxedClause)
5268__CLAUSE(release, OMPReleaseClause)
5269__CLAUSE(reverse_offload, OMPReverseOffloadClause)
5270__CLAUSE(safelen, OMPSafelenClause)
5271__CLAUSE(schedule, OMPScheduleClause)
5272__CLAUSE(self_maps, OMPSelfMapsClause)
5273__CLAUSE(seq_cst, OMPSeqCstClause)
5274__CLAUSE(severity, OMPSeverityClause)
5275__CLAUSE(shared, OMPSharedClause)
5276__CLAUSE(simd, OMPSIMDClause)
5277__CLAUSE(simdlen, OMPSimdlenClause)
5278__CLAUSE(sizes, OMPSizesClause)
5279__CLAUSE(task_reduction, OMPTaskReductionClause)
5280__CLAUSE(thread_limit, OMPThreadLimitClause)
5281__IMPLICIT_CLAUSE_NO_CLASS(threadprivate, "threadprivate")
5282__CLAUSE(threads, OMPThreadsClause)
5283__CLAUSE(to, OMPToClause)
5284__CLAUSE(unified_address, OMPUnifiedAddressClause)
5285__CLAUSE(unified_shared_memory, OMPUnifiedSharedMemoryClause)
5286__CLAUSE_NO_CLASS(uniform)
5287__IMPLICIT_CLAUSE_NO_CLASS(unknown, "unknown")
5288__CLAUSE(untied, OMPUntiedClause)
5289__CLAUSE(update, OMPUpdateClause)
5290__CLAUSE(use, OMPUseClause)
5291__CLAUSE(use_device_addr, OMPUseDeviceAddrClause)
5292__CLAUSE(use_device_ptr, OMPUseDevicePtrClause)
5293__CLAUSE(uses_allocators, OMPUsesAllocatorsClause)
5294__CLAUSE(weak, OMPWeakClause)
5295__CLAUSE_NO_CLASS(when)
5296__CLAUSE(write, OMPWriteClause)
5297
5298#undef __IMPLICIT_CLAUSE_NO_CLASS
5299#undef __IMPLICIT_CLAUSE_CLASS
5300#undef __CLAUSE_NO_CLASS
5301#undef __CLAUSE
5302#undef CLAUSE_NO_CLASS
5303#undef CLAUSE_CLASS
5304#undef CLAUSE
5305
5306#endif // GEN_CLANG_CLAUSE_CLASS
5307
5308#ifdef GEN_DIRECTIVES_IMPL
5309#undef GEN_DIRECTIVES_IMPL
5310
5311#include "llvm/Frontend/Directive/Spelling.h"
5312#include "llvm/Support/ErrorHandling.h"
5313#include <utility>
5314
5315std::pair<llvm::omp::Directive, llvm::directive::VersionRange> llvm::omp::getOpenMPDirectiveKindAndVersions(llvm::StringRef Str) {
5316 directive::VersionRange All; // Default-initialized to "all versions"
5317 return StringSwitch<std::pair<Directive, directive::VersionRange>>(Str)
5318 .Case("allocate", {OMPD_allocate, All})
5319 .Case("allocators", {OMPD_allocators, All})
5320 .Case("assume", {OMPD_assume, All})
5321 .Case("assumes", {OMPD_assumes, All})
5322 .Case("atomic", {OMPD_atomic, All})
5323 .Case("barrier", {OMPD_barrier, All})
5324 .Case("begin assumes", {OMPD_begin_assumes, All})
5325 .Case("begin declare target", {OMPD_begin_declare_target, {1, 52}})
5326 .Case("begin declare_target", {OMPD_begin_declare_target, {60, 2147483647}})
5327 .Case("begin declare variant", {OMPD_begin_declare_variant, {1, 52}})
5328 .Case("begin declare_variant", {OMPD_begin_declare_variant, {60, 2147483647}})
5329 .Case("cancel", {OMPD_cancel, All})
5330 .Case("cancellation point", {OMPD_cancellation_point, {1, 52}})
5331 .Case("cancellation_point", {OMPD_cancellation_point, {60, 2147483647}})
5332 .Case("critical", {OMPD_critical, All})
5333 .Case("declare mapper", {OMPD_declare_mapper, {1, 52}})
5334 .Case("declare_mapper", {OMPD_declare_mapper, {60, 2147483647}})
5335 .Case("declare reduction", {OMPD_declare_reduction, {1, 52}})
5336 .Case("declare_reduction", {OMPD_declare_reduction, {60, 2147483647}})
5337 .Case("declare simd", {OMPD_declare_simd, {1, 52}})
5338 .Case("declare_simd", {OMPD_declare_simd, {60, 2147483647}})
5339 .Case("declare target", {OMPD_declare_target, {1, 52}})
5340 .Case("declare_target", {OMPD_declare_target, {60, 2147483647}})
5341 .Case("declare variant", {OMPD_declare_variant, {1, 52}})
5342 .Case("declare_variant", {OMPD_declare_variant, {60, 2147483647}})
5343 .Case("depobj", {OMPD_depobj, All})
5344 .Case("distribute", {OMPD_distribute, All})
5345 .Case("distribute parallel do", {OMPD_distribute_parallel_do, All})
5346 .Case("distribute parallel do simd", {OMPD_distribute_parallel_do_simd, All})
5347 .Case("distribute parallel for", {OMPD_distribute_parallel_for, All})
5348 .Case("distribute parallel for simd", {OMPD_distribute_parallel_for_simd, All})
5349 .Case("distribute simd", {OMPD_distribute_simd, All})
5350 .Case("do", {OMPD_do, All})
5351 .Case("do simd", {OMPD_do_simd, All})
5352 .Case("end assumes", {OMPD_end_assumes, All})
5353 .Case("end declare target", {OMPD_end_declare_target, {1, 52}})
5354 .Case("end declare_target", {OMPD_end_declare_target, {60, 2147483647}})
5355 .Case("end declare variant", {OMPD_end_declare_variant, {1, 52}})
5356 .Case("end declare_variant", {OMPD_end_declare_variant, {60, 2147483647}})
5357 .Case("end do", {OMPD_end_do, All})
5358 .Case("end do simd", {OMPD_end_do_simd, All})
5359 .Case("end scope", {OMPD_end_scope, All})
5360 .Case("end sections", {OMPD_end_sections, All})
5361 .Case("end single", {OMPD_end_single, All})
5362 .Case("end workshare", {OMPD_end_workshare, All})
5363 .Case("error", {OMPD_error, All})
5364 .Case("flush", {OMPD_flush, All})
5365 .Case("for", {OMPD_for, All})
5366 .Case("for simd", {OMPD_for_simd, All})
5367 .Case("interchange", {OMPD_interchange, All})
5368 .Case("masked taskloop", {OMPD_masked_taskloop, All})
5369 .Case("masked taskloop simd", {OMPD_masked_taskloop_simd, All})
5370 .Case("master", {OMPD_master, All})
5371 .Case("master taskloop", {OMPD_master_taskloop, All})
5372 .Case("master taskloop simd", {OMPD_master_taskloop_simd, All})
5373 .Case("metadirective", {OMPD_metadirective, All})
5374 .Case("nothing", {OMPD_nothing, All})
5375 .Case("ordered", {OMPD_ordered, All})
5376 .Case("parallel", {OMPD_parallel, All})
5377 .Case("parallel do", {OMPD_parallel_do, All})
5378 .Case("parallel do simd", {OMPD_parallel_do_simd, All})
5379 .Case("parallel for", {OMPD_parallel_for, All})
5380 .Case("parallel for simd", {OMPD_parallel_for_simd, All})
5381 .Case("parallel masked", {OMPD_parallel_masked, All})
5382 .Case("parallel masked taskloop", {OMPD_parallel_masked_taskloop, All})
5383 .Case("parallel masked taskloop simd", {OMPD_parallel_masked_taskloop_simd, All})
5384 .Case("parallel master", {OMPD_parallel_master, All})
5385 .Case("parallel master taskloop", {OMPD_parallel_master_taskloop, All})
5386 .Case("parallel master taskloop simd", {OMPD_parallel_master_taskloop_simd, All})
5387 .Case("parallel sections", {OMPD_parallel_sections, All})
5388 .Case("parallel workshare", {OMPD_parallel_workshare, All})
5389 .Case("requires", {OMPD_requires, All})
5390 .Case("reverse", {OMPD_reverse, All})
5391 .Case("scan", {OMPD_scan, All})
5392 .Case("scope", {OMPD_scope, All})
5393 .Case("section", {OMPD_section, All})
5394 .Case("sections", {OMPD_sections, All})
5395 .Case("simd", {OMPD_simd, All})
5396 .Case("single", {OMPD_single, All})
5397 .Case("stripe", {OMPD_stripe, All})
5398 .Case("target", {OMPD_target, All})
5399 .Case("target data", {OMPD_target_data, {1, 52}})
5400 .Case("target_data", {OMPD_target_data, {60, 2147483647}})
5401 .Case("target enter data", {OMPD_target_enter_data, {1, 52}})
5402 .Case("target_enter_data", {OMPD_target_enter_data, {60, 2147483647}})
5403 .Case("target exit data", {OMPD_target_exit_data, {1, 52}})
5404 .Case("target_exit_data", {OMPD_target_exit_data, {60, 2147483647}})
5405 .Case("target parallel", {OMPD_target_parallel, All})
5406 .Case("target parallel do", {OMPD_target_parallel_do, All})
5407 .Case("target parallel do simd", {OMPD_target_parallel_do_simd, All})
5408 .Case("target parallel for", {OMPD_target_parallel_for, All})
5409 .Case("target parallel for simd", {OMPD_target_parallel_for_simd, All})
5410 .Case("target simd", {OMPD_target_simd, All})
5411 .Case("target teams", {OMPD_target_teams, All})
5412 .Case("target teams distribute", {OMPD_target_teams_distribute, All})
5413 .Case("target teams distribute parallel do", {OMPD_target_teams_distribute_parallel_do, All})
5414 .Case("target teams distribute parallel do simd", {OMPD_target_teams_distribute_parallel_do_simd, All})
5415 .Case("target teams distribute parallel for", {OMPD_target_teams_distribute_parallel_for, All})
5416 .Case("target teams distribute parallel for simd", {OMPD_target_teams_distribute_parallel_for_simd, All})
5417 .Case("target teams distribute simd", {OMPD_target_teams_distribute_simd, All})
5418 .Case("target update", {OMPD_target_update, {1, 52}})
5419 .Case("target_update", {OMPD_target_update, {60, 2147483647}})
5420 .Case("task", {OMPD_task, All})
5421 .Case("taskgroup", {OMPD_taskgroup, All})
5422 .Case("taskloop", {OMPD_taskloop, All})
5423 .Case("taskloop simd", {OMPD_taskloop_simd, All})
5424 .Case("taskwait", {OMPD_taskwait, All})
5425 .Case("taskyield", {OMPD_taskyield, All})
5426 .Case("teams", {OMPD_teams, All})
5427 .Case("teams distribute", {OMPD_teams_distribute, All})
5428 .Case("teams distribute parallel do", {OMPD_teams_distribute_parallel_do, All})
5429 .Case("teams distribute parallel do simd", {OMPD_teams_distribute_parallel_do_simd, All})
5430 .Case("teams distribute parallel for", {OMPD_teams_distribute_parallel_for, All})
5431 .Case("teams distribute parallel for simd", {OMPD_teams_distribute_parallel_for_simd, All})
5432 .Case("teams distribute simd", {OMPD_teams_distribute_simd, All})
5433 .Case("threadprivate", {OMPD_threadprivate, All})
5434 .Case("tile", {OMPD_tile, All})
5435 .Case("unknown", {OMPD_unknown, All})
5436 .Case("unroll", {OMPD_unroll, All})
5437 .Case("workshare", {OMPD_workshare, All})
5438 .Case("dispatch", {OMPD_dispatch, All})
5439 .Case("interop", {OMPD_interop, All})
5440 .Case("loop", {OMPD_loop, All})
5441 .Case("masked", {OMPD_masked, All})
5442 .Case("parallel loop", {OMPD_parallel_loop, All})
5443 .Case("target loop", {OMPD_target_loop, All})
5444 .Case("target parallel loop", {OMPD_target_parallel_loop, All})
5445 .Case("target teams loop", {OMPD_target_teams_loop, All})
5446 .Case("teams loop", {OMPD_teams_loop, All})
5447 .Default({OMPD_unknown, All});
5448}
5449
5450llvm::StringRef llvm::omp::getOpenMPDirectiveName(llvm::omp::Directive Kind, unsigned Version) {
5451 switch (Kind) {
5452 case OMPD_allocate:
5453 return "allocate";
5454 case OMPD_allocators:
5455 return "allocators";
5456 case OMPD_assume:
5457 return "assume";
5458 case OMPD_assumes:
5459 return "assumes";
5460 case OMPD_atomic:
5461 return "atomic";
5462 case OMPD_barrier:
5463 return "barrier";
5464 case OMPD_begin_assumes:
5465 return "begin assumes";
5466 case OMPD_begin_declare_target: {
5467 static constexpr llvm::directive::Spelling OMPD_begin_declare_target_spellings[] = {
5468 {"begin declare target", {1, 52}},
5469 {"begin declare_target", {60, 2147483647}},
5470 };
5471 return llvm::directive::FindName(OMPD_begin_declare_target_spellings, Version);
5472 }
5473 case OMPD_begin_declare_variant: {
5474 static constexpr llvm::directive::Spelling OMPD_begin_declare_variant_spellings[] = {
5475 {"begin declare variant", {1, 52}},
5476 {"begin declare_variant", {60, 2147483647}},
5477 };
5478 return llvm::directive::FindName(OMPD_begin_declare_variant_spellings, Version);
5479 }
5480 case OMPD_cancel:
5481 return "cancel";
5482 case OMPD_cancellation_point: {
5483 static constexpr llvm::directive::Spelling OMPD_cancellation_point_spellings[] = {
5484 {"cancellation point", {1, 52}},
5485 {"cancellation_point", {60, 2147483647}},
5486 };
5487 return llvm::directive::FindName(OMPD_cancellation_point_spellings, Version);
5488 }
5489 case OMPD_critical:
5490 return "critical";
5491 case OMPD_declare_mapper: {
5492 static constexpr llvm::directive::Spelling OMPD_declare_mapper_spellings[] = {
5493 {"declare mapper", {1, 52}},
5494 {"declare_mapper", {60, 2147483647}},
5495 };
5496 return llvm::directive::FindName(OMPD_declare_mapper_spellings, Version);
5497 }
5498 case OMPD_declare_reduction: {
5499 static constexpr llvm::directive::Spelling OMPD_declare_reduction_spellings[] = {
5500 {"declare reduction", {1, 52}},
5501 {"declare_reduction", {60, 2147483647}},
5502 };
5503 return llvm::directive::FindName(OMPD_declare_reduction_spellings, Version);
5504 }
5505 case OMPD_declare_simd: {
5506 static constexpr llvm::directive::Spelling OMPD_declare_simd_spellings[] = {
5507 {"declare simd", {1, 52}},
5508 {"declare_simd", {60, 2147483647}},
5509 };
5510 return llvm::directive::FindName(OMPD_declare_simd_spellings, Version);
5511 }
5512 case OMPD_declare_target: {
5513 static constexpr llvm::directive::Spelling OMPD_declare_target_spellings[] = {
5514 {"declare target", {1, 52}},
5515 {"declare_target", {60, 2147483647}},
5516 };
5517 return llvm::directive::FindName(OMPD_declare_target_spellings, Version);
5518 }
5519 case OMPD_declare_variant: {
5520 static constexpr llvm::directive::Spelling OMPD_declare_variant_spellings[] = {
5521 {"declare variant", {1, 52}},
5522 {"declare_variant", {60, 2147483647}},
5523 };
5524 return llvm::directive::FindName(OMPD_declare_variant_spellings, Version);
5525 }
5526 case OMPD_depobj:
5527 return "depobj";
5528 case OMPD_distribute:
5529 return "distribute";
5530 case OMPD_distribute_parallel_do:
5531 return "distribute parallel do";
5532 case OMPD_distribute_parallel_do_simd:
5533 return "distribute parallel do simd";
5534 case OMPD_distribute_parallel_for:
5535 return "distribute parallel for";
5536 case OMPD_distribute_parallel_for_simd:
5537 return "distribute parallel for simd";
5538 case OMPD_distribute_simd:
5539 return "distribute simd";
5540 case OMPD_do:
5541 return "do";
5542 case OMPD_do_simd:
5543 return "do simd";
5544 case OMPD_end_assumes:
5545 return "end assumes";
5546 case OMPD_end_declare_target: {
5547 static constexpr llvm::directive::Spelling OMPD_end_declare_target_spellings[] = {
5548 {"end declare target", {1, 52}},
5549 {"end declare_target", {60, 2147483647}},
5550 };
5551 return llvm::directive::FindName(OMPD_end_declare_target_spellings, Version);
5552 }
5553 case OMPD_end_declare_variant: {
5554 static constexpr llvm::directive::Spelling OMPD_end_declare_variant_spellings[] = {
5555 {"end declare variant", {1, 52}},
5556 {"end declare_variant", {60, 2147483647}},
5557 };
5558 return llvm::directive::FindName(OMPD_end_declare_variant_spellings, Version);
5559 }
5560 case OMPD_end_do:
5561 return "end do";
5562 case OMPD_end_do_simd:
5563 return "end do simd";
5564 case OMPD_end_scope:
5565 return "end scope";
5566 case OMPD_end_sections:
5567 return "end sections";
5568 case OMPD_end_single:
5569 return "end single";
5570 case OMPD_end_workshare:
5571 return "end workshare";
5572 case OMPD_error:
5573 return "error";
5574 case OMPD_flush:
5575 return "flush";
5576 case OMPD_for:
5577 return "for";
5578 case OMPD_for_simd:
5579 return "for simd";
5580 case OMPD_interchange:
5581 return "interchange";
5582 case OMPD_masked_taskloop:
5583 return "masked taskloop";
5584 case OMPD_masked_taskloop_simd:
5585 return "masked taskloop simd";
5586 case OMPD_master:
5587 return "master";
5588 case OMPD_master_taskloop:
5589 return "master taskloop";
5590 case OMPD_master_taskloop_simd:
5591 return "master taskloop simd";
5592 case OMPD_metadirective:
5593 return "metadirective";
5594 case OMPD_nothing:
5595 return "nothing";
5596 case OMPD_ordered:
5597 return "ordered";
5598 case OMPD_parallel:
5599 return "parallel";
5600 case OMPD_parallel_do:
5601 return "parallel do";
5602 case OMPD_parallel_do_simd:
5603 return "parallel do simd";
5604 case OMPD_parallel_for:
5605 return "parallel for";
5606 case OMPD_parallel_for_simd:
5607 return "parallel for simd";
5608 case OMPD_parallel_masked:
5609 return "parallel masked";
5610 case OMPD_parallel_masked_taskloop:
5611 return "parallel masked taskloop";
5612 case OMPD_parallel_masked_taskloop_simd:
5613 return "parallel masked taskloop simd";
5614 case OMPD_parallel_master:
5615 return "parallel master";
5616 case OMPD_parallel_master_taskloop:
5617 return "parallel master taskloop";
5618 case OMPD_parallel_master_taskloop_simd:
5619 return "parallel master taskloop simd";
5620 case OMPD_parallel_sections:
5621 return "parallel sections";
5622 case OMPD_parallel_workshare:
5623 return "parallel workshare";
5624 case OMPD_requires:
5625 return "requires";
5626 case OMPD_reverse:
5627 return "reverse";
5628 case OMPD_scan:
5629 return "scan";
5630 case OMPD_scope:
5631 return "scope";
5632 case OMPD_section:
5633 return "section";
5634 case OMPD_sections:
5635 return "sections";
5636 case OMPD_simd:
5637 return "simd";
5638 case OMPD_single:
5639 return "single";
5640 case OMPD_stripe:
5641 return "stripe";
5642 case OMPD_target:
5643 return "target";
5644 case OMPD_target_data: {
5645 static constexpr llvm::directive::Spelling OMPD_target_data_spellings[] = {
5646 {"target data", {1, 52}},
5647 {"target_data", {60, 2147483647}},
5648 };
5649 return llvm::directive::FindName(OMPD_target_data_spellings, Version);
5650 }
5651 case OMPD_target_enter_data: {
5652 static constexpr llvm::directive::Spelling OMPD_target_enter_data_spellings[] = {
5653 {"target enter data", {1, 52}},
5654 {"target_enter_data", {60, 2147483647}},
5655 };
5656 return llvm::directive::FindName(OMPD_target_enter_data_spellings, Version);
5657 }
5658 case OMPD_target_exit_data: {
5659 static constexpr llvm::directive::Spelling OMPD_target_exit_data_spellings[] = {
5660 {"target exit data", {1, 52}},
5661 {"target_exit_data", {60, 2147483647}},
5662 };
5663 return llvm::directive::FindName(OMPD_target_exit_data_spellings, Version);
5664 }
5665 case OMPD_target_parallel:
5666 return "target parallel";
5667 case OMPD_target_parallel_do:
5668 return "target parallel do";
5669 case OMPD_target_parallel_do_simd:
5670 return "target parallel do simd";
5671 case OMPD_target_parallel_for:
5672 return "target parallel for";
5673 case OMPD_target_parallel_for_simd:
5674 return "target parallel for simd";
5675 case OMPD_target_simd:
5676 return "target simd";
5677 case OMPD_target_teams:
5678 return "target teams";
5679 case OMPD_target_teams_distribute:
5680 return "target teams distribute";
5681 case OMPD_target_teams_distribute_parallel_do:
5682 return "target teams distribute parallel do";
5683 case OMPD_target_teams_distribute_parallel_do_simd:
5684 return "target teams distribute parallel do simd";
5685 case OMPD_target_teams_distribute_parallel_for:
5686 return "target teams distribute parallel for";
5687 case OMPD_target_teams_distribute_parallel_for_simd:
5688 return "target teams distribute parallel for simd";
5689 case OMPD_target_teams_distribute_simd:
5690 return "target teams distribute simd";
5691 case OMPD_target_update: {
5692 static constexpr llvm::directive::Spelling OMPD_target_update_spellings[] = {
5693 {"target update", {1, 52}},
5694 {"target_update", {60, 2147483647}},
5695 };
5696 return llvm::directive::FindName(OMPD_target_update_spellings, Version);
5697 }
5698 case OMPD_task:
5699 return "task";
5700 case OMPD_taskgroup:
5701 return "taskgroup";
5702 case OMPD_taskloop:
5703 return "taskloop";
5704 case OMPD_taskloop_simd:
5705 return "taskloop simd";
5706 case OMPD_taskwait:
5707 return "taskwait";
5708 case OMPD_taskyield:
5709 return "taskyield";
5710 case OMPD_teams:
5711 return "teams";
5712 case OMPD_teams_distribute:
5713 return "teams distribute";
5714 case OMPD_teams_distribute_parallel_do:
5715 return "teams distribute parallel do";
5716 case OMPD_teams_distribute_parallel_do_simd:
5717 return "teams distribute parallel do simd";
5718 case OMPD_teams_distribute_parallel_for:
5719 return "teams distribute parallel for";
5720 case OMPD_teams_distribute_parallel_for_simd:
5721 return "teams distribute parallel for simd";
5722 case OMPD_teams_distribute_simd:
5723 return "teams distribute simd";
5724 case OMPD_threadprivate:
5725 return "threadprivate";
5726 case OMPD_tile:
5727 return "tile";
5728 case OMPD_unknown:
5729 return "unknown";
5730 case OMPD_unroll:
5731 return "unroll";
5732 case OMPD_workshare:
5733 return "workshare";
5734 case OMPD_dispatch:
5735 return "dispatch";
5736 case OMPD_interop:
5737 return "interop";
5738 case OMPD_loop:
5739 return "loop";
5740 case OMPD_masked:
5741 return "masked";
5742 case OMPD_parallel_loop:
5743 return "parallel loop";
5744 case OMPD_target_loop:
5745 return "target loop";
5746 case OMPD_target_parallel_loop:
5747 return "target parallel loop";
5748 case OMPD_target_teams_loop:
5749 return "target teams loop";
5750 case OMPD_teams_loop:
5751 return "teams loop";
5752 }
5753 llvm_unreachable("Invalid OpenMP Directive kind");
5754}
5755
5756std::pair<llvm::omp::Clause, llvm::directive::VersionRange> llvm::omp::getOpenMPClauseKindAndVersions(llvm::StringRef Str) {
5757 directive::VersionRange All; // Default-initialized to "all versions"
5758 return StringSwitch<std::pair<Clause, directive::VersionRange>>(Str)
5759 .Case("absent", {OMPC_absent, All})
5760 .Case("acq_rel", {OMPC_acq_rel, All})
5761 .Case("acquire", {OMPC_acquire, All})
5762 .Case("adjust_args", {OMPC_adjust_args, All})
5763 .Case("affinity", {OMPC_affinity, All})
5764 .Case("align", {OMPC_align, All})
5765 .Case("aligned", {OMPC_aligned, All})
5766 .Case("allocate", {OMPC_allocate, All})
5767 .Case("allocator", {OMPC_allocator, All})
5768 .Case("append_args", {OMPC_append_args, All})
5769 .Case("at", {OMPC_at, All})
5770 .Case("atomic_default_mem_order", {OMPC_atomic_default_mem_order, All})
5771 .Case("bind", {OMPC_bind, All})
5772 .Case("cancellation_construct_type", {OMPC_cancellation_construct_type, All})
5773 .Case("capture", {OMPC_capture, All})
5774 .Case("collapse", {OMPC_collapse, All})
5775 .Case("compare", {OMPC_compare, All})
5776 .Case("contains", {OMPC_contains, All})
5777 .Case("copyprivate", {OMPC_copyprivate, All})
5778 .Case("copyin", {OMPC_copyin, All})
5779 .Case("default", {OMPC_default, All})
5780 .Case("defaultmap", {OMPC_defaultmap, All})
5781 .Case("depend", {OMPC_depend, All})
5782 .Case("depobj", {OMPC_unknown, All})
5783 .Case("destroy", {OMPC_destroy, All})
5784 .Case("detach", {OMPC_detach, All})
5785 .Case("device", {OMPC_device, All})
5786 .Case("device_type", {OMPC_device_type, All})
5787 .Case("dist_schedule", {OMPC_dist_schedule, All})
5788 .Case("doacross", {OMPC_doacross, All})
5789 .Case("dynamic_allocators", {OMPC_dynamic_allocators, All})
5790 .Case("enter", {OMPC_enter, All})
5791 .Case("exclusive", {OMPC_exclusive, All})
5792 .Case("fail", {OMPC_fail, All})
5793 .Case("filter", {OMPC_filter, All})
5794 .Case("final", {OMPC_final, All})
5795 .Case("firstprivate", {OMPC_firstprivate, All})
5796 .Case("flush", {OMPC_unknown, All})
5797 .Case("from", {OMPC_from, All})
5798 .Case("full", {OMPC_full, All})
5799 .Case("grainsize", {OMPC_grainsize, All})
5800 .Case("has_device_addr", {OMPC_has_device_addr, All})
5801 .Case("hint", {OMPC_hint, All})
5802 .Case("holds", {OMPC_holds, All})
5803 .Case("if", {OMPC_if, All})
5804 .Case("in_reduction", {OMPC_in_reduction, All})
5805 .Case("inbranch", {OMPC_inbranch, All})
5806 .Case("inclusive", {OMPC_inclusive, All})
5807 .Case("indirect", {OMPC_indirect, All})
5808 .Case("init", {OMPC_init, All})
5809 .Case("initializer", {OMPC_initializer, All})
5810 .Case("is_device_ptr", {OMPC_is_device_ptr, All})
5811 .Case("lastprivate", {OMPC_lastprivate, All})
5812 .Case("linear", {OMPC_linear, All})
5813 .Case("link", {OMPC_link, All})
5814 .Case("map", {OMPC_map, All})
5815 .Case("match", {OMPC_match, All})
5816 .Case("memory_order", {OMPC_memory_order, All})
5817 .Case("mergeable", {OMPC_mergeable, All})
5818 .Case("message", {OMPC_message, All})
5819 .Case("nogroup", {OMPC_nogroup, All})
5820 .Case("no_openmp", {OMPC_no_openmp, All})
5821 .Case("no_openmp_constructs", {OMPC_no_openmp_constructs, All})
5822 .Case("no_openmp_routines", {OMPC_no_openmp_routines, All})
5823 .Case("no_parallelism", {OMPC_no_parallelism, All})
5824 .Case("nowait", {OMPC_nowait, All})
5825 .Case("nocontext", {OMPC_nocontext, All})
5826 .Case("nontemporal", {OMPC_nontemporal, All})
5827 .Case("notinbranch", {OMPC_notinbranch, All})
5828 .Case("novariants", {OMPC_novariants, All})
5829 .Case("num_tasks", {OMPC_num_tasks, All})
5830 .Case("num_teams", {OMPC_num_teams, All})
5831 .Case("num_threads", {OMPC_num_threads, All})
5832 .Case("ompx_attribute", {OMPC_ompx_attribute, All})
5833 .Case("ompx_bare", {OMPC_ompx_bare, All})
5834 .Case("ompx_dyn_cgroup_mem", {OMPC_ompx_dyn_cgroup_mem, All})
5835 .Case("order", {OMPC_order, All})
5836 .Case("ordered", {OMPC_ordered, All})
5837 .Case("otherwise", {OMPC_otherwise, All})
5838 .Case("partial", {OMPC_partial, All})
5839 .Case("permutation", {OMPC_permutation, All})
5840 .Case("priority", {OMPC_priority, All})
5841 .Case("private", {OMPC_private, All})
5842 .Case("proc_bind", {OMPC_proc_bind, All})
5843 .Case("read", {OMPC_read, All})
5844 .Case("reduction", {OMPC_reduction, All})
5845 .Case("relaxed", {OMPC_relaxed, All})
5846 .Case("release", {OMPC_release, All})
5847 .Case("reverse_offload", {OMPC_reverse_offload, All})
5848 .Case("safelen", {OMPC_safelen, All})
5849 .Case("schedule", {OMPC_schedule, All})
5850 .Case("self_maps", {OMPC_self_maps, All})
5851 .Case("seq_cst", {OMPC_seq_cst, All})
5852 .Case("severity", {OMPC_severity, All})
5853 .Case("shared", {OMPC_shared, All})
5854 .Case("simd", {OMPC_simd, All})
5855 .Case("simdlen", {OMPC_simdlen, All})
5856 .Case("sizes", {OMPC_sizes, All})
5857 .Case("task_reduction", {OMPC_task_reduction, All})
5858 .Case("thread_limit", {OMPC_thread_limit, All})
5859 .Case("threadprivate", {OMPC_unknown, All})
5860 .Case("threads", {OMPC_threads, All})
5861 .Case("to", {OMPC_to, All})
5862 .Case("unified_address", {OMPC_unified_address, All})
5863 .Case("unified_shared_memory", {OMPC_unified_shared_memory, All})
5864 .Case("uniform", {OMPC_uniform, All})
5865 .Case("unknown", {OMPC_unknown, All})
5866 .Case("untied", {OMPC_untied, All})
5867 .Case("update", {OMPC_update, All})
5868 .Case("use", {OMPC_use, All})
5869 .Case("use_device_addr", {OMPC_use_device_addr, All})
5870 .Case("use_device_ptr", {OMPC_use_device_ptr, All})
5871 .Case("uses_allocators", {OMPC_uses_allocators, All})
5872 .Case("weak", {OMPC_weak, All})
5873 .Case("when", {OMPC_when, All})
5874 .Case("write", {OMPC_write, All})
5875 .Default({OMPC_unknown, All});
5876}
5877
5878llvm::StringRef llvm::omp::getOpenMPClauseName(llvm::omp::Clause Kind, unsigned Version) {
5879 switch (Kind) {
5880 case OMPC_absent:
5881 return "absent";
5882 case OMPC_acq_rel:
5883 return "acq_rel";
5884 case OMPC_acquire:
5885 return "acquire";
5886 case OMPC_adjust_args:
5887 return "adjust_args";
5888 case OMPC_affinity:
5889 return "affinity";
5890 case OMPC_align:
5891 return "align";
5892 case OMPC_aligned:
5893 return "aligned";
5894 case OMPC_allocate:
5895 return "allocate";
5896 case OMPC_allocator:
5897 return "allocator";
5898 case OMPC_append_args:
5899 return "append_args";
5900 case OMPC_at:
5901 return "at";
5902 case OMPC_atomic_default_mem_order:
5903 return "atomic_default_mem_order";
5904 case OMPC_bind:
5905 return "bind";
5906 case OMPC_cancellation_construct_type:
5907 return "cancellation_construct_type";
5908 case OMPC_capture:
5909 return "capture";
5910 case OMPC_collapse:
5911 return "collapse";
5912 case OMPC_compare:
5913 return "compare";
5914 case OMPC_contains:
5915 return "contains";
5916 case OMPC_copyprivate:
5917 return "copyprivate";
5918 case OMPC_copyin:
5919 return "copyin";
5920 case OMPC_default:
5921 return "default";
5922 case OMPC_defaultmap:
5923 return "defaultmap";
5924 case OMPC_depend:
5925 return "depend";
5926 case OMPC_depobj:
5927 return "depobj";
5928 case OMPC_destroy:
5929 return "destroy";
5930 case OMPC_detach:
5931 return "detach";
5932 case OMPC_device:
5933 return "device";
5934 case OMPC_device_type:
5935 return "device_type";
5936 case OMPC_dist_schedule:
5937 return "dist_schedule";
5938 case OMPC_doacross:
5939 return "doacross";
5940 case OMPC_dynamic_allocators:
5941 return "dynamic_allocators";
5942 case OMPC_enter:
5943 return "enter";
5944 case OMPC_exclusive:
5945 return "exclusive";
5946 case OMPC_fail:
5947 return "fail";
5948 case OMPC_filter:
5949 return "filter";
5950 case OMPC_final:
5951 return "final";
5952 case OMPC_firstprivate:
5953 return "firstprivate";
5954 case OMPC_flush:
5955 return "flush";
5956 case OMPC_from:
5957 return "from";
5958 case OMPC_full:
5959 return "full";
5960 case OMPC_grainsize:
5961 return "grainsize";
5962 case OMPC_has_device_addr:
5963 return "has_device_addr";
5964 case OMPC_hint:
5965 return "hint";
5966 case OMPC_holds:
5967 return "holds";
5968 case OMPC_if:
5969 return "if";
5970 case OMPC_in_reduction:
5971 return "in_reduction";
5972 case OMPC_inbranch:
5973 return "inbranch";
5974 case OMPC_inclusive:
5975 return "inclusive";
5976 case OMPC_indirect:
5977 return "indirect";
5978 case OMPC_init:
5979 return "init";
5980 case OMPC_initializer:
5981 return "initializer";
5982 case OMPC_is_device_ptr:
5983 return "is_device_ptr";
5984 case OMPC_lastprivate:
5985 return "lastprivate";
5986 case OMPC_linear:
5987 return "linear";
5988 case OMPC_link:
5989 return "link";
5990 case OMPC_map:
5991 return "map";
5992 case OMPC_match:
5993 return "match";
5994 case OMPC_memory_order:
5995 return "memory_order";
5996 case OMPC_mergeable:
5997 return "mergeable";
5998 case OMPC_message:
5999 return "message";
6000 case OMPC_nogroup:
6001 return "nogroup";
6002 case OMPC_no_openmp:
6003 return "no_openmp";
6004 case OMPC_no_openmp_constructs:
6005 return "no_openmp_constructs";
6006 case OMPC_no_openmp_routines:
6007 return "no_openmp_routines";
6008 case OMPC_no_parallelism:
6009 return "no_parallelism";
6010 case OMPC_nowait:
6011 return "nowait";
6012 case OMPC_nocontext:
6013 return "nocontext";
6014 case OMPC_nontemporal:
6015 return "nontemporal";
6016 case OMPC_notinbranch:
6017 return "notinbranch";
6018 case OMPC_novariants:
6019 return "novariants";
6020 case OMPC_num_tasks:
6021 return "num_tasks";
6022 case OMPC_num_teams:
6023 return "num_teams";
6024 case OMPC_num_threads:
6025 return "num_threads";
6026 case OMPC_ompx_attribute:
6027 return "ompx_attribute";
6028 case OMPC_ompx_bare:
6029 return "ompx_bare";
6030 case OMPC_ompx_dyn_cgroup_mem:
6031 return "ompx_dyn_cgroup_mem";
6032 case OMPC_order:
6033 return "order";
6034 case OMPC_ordered:
6035 return "ordered";
6036 case OMPC_otherwise:
6037 return "otherwise";
6038 case OMPC_partial:
6039 return "partial";
6040 case OMPC_permutation:
6041 return "permutation";
6042 case OMPC_priority:
6043 return "priority";
6044 case OMPC_private:
6045 return "private";
6046 case OMPC_proc_bind:
6047 return "proc_bind";
6048 case OMPC_read:
6049 return "read";
6050 case OMPC_reduction:
6051 return "reduction";
6052 case OMPC_relaxed:
6053 return "relaxed";
6054 case OMPC_release:
6055 return "release";
6056 case OMPC_reverse_offload:
6057 return "reverse_offload";
6058 case OMPC_safelen:
6059 return "safelen";
6060 case OMPC_schedule:
6061 return "schedule";
6062 case OMPC_self_maps:
6063 return "self_maps";
6064 case OMPC_seq_cst:
6065 return "seq_cst";
6066 case OMPC_severity:
6067 return "severity";
6068 case OMPC_shared:
6069 return "shared";
6070 case OMPC_simd:
6071 return "simd";
6072 case OMPC_simdlen:
6073 return "simdlen";
6074 case OMPC_sizes:
6075 return "sizes";
6076 case OMPC_task_reduction:
6077 return "task_reduction";
6078 case OMPC_thread_limit:
6079 return "thread_limit";
6080 case OMPC_threadprivate:
6081 return "threadprivate";
6082 case OMPC_threads:
6083 return "threads";
6084 case OMPC_to:
6085 return "to";
6086 case OMPC_unified_address:
6087 return "unified_address";
6088 case OMPC_unified_shared_memory:
6089 return "unified_shared_memory";
6090 case OMPC_uniform:
6091 return "uniform";
6092 case OMPC_unknown:
6093 return "unknown";
6094 case OMPC_untied:
6095 return "untied";
6096 case OMPC_update:
6097 return "update";
6098 case OMPC_use:
6099 return "use";
6100 case OMPC_use_device_addr:
6101 return "use_device_addr";
6102 case OMPC_use_device_ptr:
6103 return "use_device_ptr";
6104 case OMPC_uses_allocators:
6105 return "uses_allocators";
6106 case OMPC_weak:
6107 return "weak";
6108 case OMPC_when:
6109 return "when";
6110 case OMPC_write:
6111 return "write";
6112 }
6113 llvm_unreachable("Invalid OpenMP Clause kind");
6114}
6115
6116llvm::omp::BindKind llvm::omp::getBindKind(llvm::StringRef Str) {
6117 return StringSwitch<BindKind>(Str)
6118 .Case("parallel",OMP_BIND_parallel)
6119 .Case("teams",OMP_BIND_teams)
6120 .Case("thread",OMP_BIND_thread)
6121 .Default(OMP_BIND_thread);
6122}
6123
6124llvm::StringRef llvm::omp::getOpenMPBindKindName(llvm::omp::BindKind x) {
6125 switch (x) {
6126 case OMP_BIND_parallel:
6127 return "parallel";
6128 case OMP_BIND_teams:
6129 return "teams";
6130 case OMP_BIND_thread:
6131 return "thread";
6132 }
6133 llvm_unreachable("Invalid OpenMP BindKind kind");
6134}
6135
6136llvm::omp::CancellationConstructType llvm::omp::getCancellationConstructType(llvm::StringRef Str) {
6137 return StringSwitch<CancellationConstructType>(Str)
6138 .Case("parallel",OMP_CANCELLATION_CONSTRUCT_Parallel)
6139 .Case("loop",OMP_CANCELLATION_CONSTRUCT_Loop)
6140 .Case("sections",OMP_CANCELLATION_CONSTRUCT_Sections)
6141 .Case("taskgroup",OMP_CANCELLATION_CONSTRUCT_Taskgroup)
6142 .Case("none",OMP_CANCELLATION_CONSTRUCT_None)
6143 .Default(OMP_CANCELLATION_CONSTRUCT_None);
6144}
6145
6146llvm::StringRef llvm::omp::getOpenMPCancellationConstructTypeName(llvm::omp::CancellationConstructType x) {
6147 switch (x) {
6148 case OMP_CANCELLATION_CONSTRUCT_Parallel:
6149 return "parallel";
6150 case OMP_CANCELLATION_CONSTRUCT_Loop:
6151 return "loop";
6152 case OMP_CANCELLATION_CONSTRUCT_Sections:
6153 return "sections";
6154 case OMP_CANCELLATION_CONSTRUCT_Taskgroup:
6155 return "taskgroup";
6156 case OMP_CANCELLATION_CONSTRUCT_None:
6157 return "none";
6158 }
6159 llvm_unreachable("Invalid OpenMP CancellationConstructType kind");
6160}
6161
6162llvm::omp::GrainsizeType llvm::omp::getGrainsizeType(llvm::StringRef Str) {
6163 return StringSwitch<GrainsizeType>(Str)
6164 .Case("strict",OMP_GRAINSIZE_Strict)
6165 .Case("unknown",OMP_GRAINSIZE_Unknown)
6166 .Default(OMP_GRAINSIZE_Unknown);
6167}
6168
6169llvm::StringRef llvm::omp::getOpenMPGrainsizeTypeName(llvm::omp::GrainsizeType x) {
6170 switch (x) {
6171 case OMP_GRAINSIZE_Strict:
6172 return "strict";
6173 case OMP_GRAINSIZE_Unknown:
6174 return "unknown";
6175 }
6176 llvm_unreachable("Invalid OpenMP GrainsizeType kind");
6177}
6178
6179llvm::omp::MemoryOrderKind llvm::omp::getMemoryOrderKind(llvm::StringRef Str) {
6180 return StringSwitch<MemoryOrderKind>(Str)
6181 .Case("seq_cst",OMP_MEMORY_ORDER_SeqCst)
6182 .Case("acq_rel",OMP_MEMORY_ORDER_AcqRel)
6183 .Case("acquire",OMP_MEMORY_ORDER_Acquire)
6184 .Case("release",OMP_MEMORY_ORDER_Release)
6185 .Case("relaxed",OMP_MEMORY_ORDER_Relaxed)
6186 .Case("default",OMP_MEMORY_ORDER_Default)
6187 .Default(OMP_MEMORY_ORDER_Default);
6188}
6189
6190llvm::StringRef llvm::omp::getOpenMPMemoryOrderKindName(llvm::omp::MemoryOrderKind x) {
6191 switch (x) {
6192 case OMP_MEMORY_ORDER_SeqCst:
6193 return "seq_cst";
6194 case OMP_MEMORY_ORDER_AcqRel:
6195 return "acq_rel";
6196 case OMP_MEMORY_ORDER_Acquire:
6197 return "acquire";
6198 case OMP_MEMORY_ORDER_Release:
6199 return "release";
6200 case OMP_MEMORY_ORDER_Relaxed:
6201 return "relaxed";
6202 case OMP_MEMORY_ORDER_Default:
6203 return "default";
6204 }
6205 llvm_unreachable("Invalid OpenMP MemoryOrderKind kind");
6206}
6207
6208llvm::omp::NumTasksType llvm::omp::getNumTasksType(llvm::StringRef Str) {
6209 return StringSwitch<NumTasksType>(Str)
6210 .Case("strict",OMP_NUMTASKS_Strict)
6211 .Case("unknown",OMP_NUMTASKS_Unknown)
6212 .Default(OMP_NUMTASKS_Unknown);
6213}
6214
6215llvm::StringRef llvm::omp::getOpenMPNumTasksTypeName(llvm::omp::NumTasksType x) {
6216 switch (x) {
6217 case OMP_NUMTASKS_Strict:
6218 return "strict";
6219 case OMP_NUMTASKS_Unknown:
6220 return "unknown";
6221 }
6222 llvm_unreachable("Invalid OpenMP NumTasksType kind");
6223}
6224
6225llvm::omp::NumThreadsType llvm::omp::getNumThreadsType(llvm::StringRef Str) {
6226 return StringSwitch<NumThreadsType>(Str)
6227 .Case("strict",OMP_NUMTHREADS_Strict)
6228 .Case("unknown",OMP_NUMTHREADS_Unknown)
6229 .Default(OMP_NUMTHREADS_Unknown);
6230}
6231
6232llvm::StringRef llvm::omp::getOpenMPNumThreadsTypeName(llvm::omp::NumThreadsType x) {
6233 switch (x) {
6234 case OMP_NUMTHREADS_Strict:
6235 return "strict";
6236 case OMP_NUMTHREADS_Unknown:
6237 return "unknown";
6238 }
6239 llvm_unreachable("Invalid OpenMP NumThreadsType kind");
6240}
6241
6242llvm::omp::OrderKind llvm::omp::getOrderKind(llvm::StringRef Str) {
6243 return StringSwitch<OrderKind>(Str)
6244 .Case("unknown",OMP_ORDER_unknown)
6245 .Case("concurrent",OMP_ORDER_concurrent)
6246 .Default(OMP_ORDER_unknown);
6247}
6248
6249llvm::StringRef llvm::omp::getOpenMPOrderKindName(llvm::omp::OrderKind x) {
6250 switch (x) {
6251 case OMP_ORDER_unknown:
6252 return "unknown";
6253 case OMP_ORDER_concurrent:
6254 return "concurrent";
6255 }
6256 llvm_unreachable("Invalid OpenMP OrderKind kind");
6257}
6258
6259llvm::omp::ProcBindKind llvm::omp::getProcBindKind(llvm::StringRef Str) {
6260 return StringSwitch<ProcBindKind>(Str)
6261 .Case("primary",OMP_PROC_BIND_primary)
6262 .Case("master",OMP_PROC_BIND_master)
6263 .Case("close",OMP_PROC_BIND_close)
6264 .Case("spread",OMP_PROC_BIND_spread)
6265 .Case("default",OMP_PROC_BIND_default)
6266 .Case("unknown",OMP_PROC_BIND_unknown)
6267 .Default(OMP_PROC_BIND_unknown);
6268}
6269
6270llvm::StringRef llvm::omp::getOpenMPProcBindKindName(llvm::omp::ProcBindKind x) {
6271 switch (x) {
6272 case OMP_PROC_BIND_primary:
6273 return "primary";
6274 case OMP_PROC_BIND_master:
6275 return "master";
6276 case OMP_PROC_BIND_close:
6277 return "close";
6278 case OMP_PROC_BIND_spread:
6279 return "spread";
6280 case OMP_PROC_BIND_default:
6281 return "default";
6282 case OMP_PROC_BIND_unknown:
6283 return "unknown";
6284 }
6285 llvm_unreachable("Invalid OpenMP ProcBindKind kind");
6286}
6287
6288llvm::omp::ScheduleKind llvm::omp::getScheduleKind(llvm::StringRef Str) {
6289 return StringSwitch<ScheduleKind>(Str)
6290 .Case("static",OMP_SCHEDULE_Static)
6291 .Case("dynamic",OMP_SCHEDULE_Dynamic)
6292 .Case("guided",OMP_SCHEDULE_Guided)
6293 .Case("auto",OMP_SCHEDULE_Auto)
6294 .Case("runtime",OMP_SCHEDULE_Runtime)
6295 .Case("default",OMP_SCHEDULE_Default)
6296 .Default(OMP_SCHEDULE_Default);
6297}
6298
6299llvm::StringRef llvm::omp::getOpenMPScheduleKindName(llvm::omp::ScheduleKind x) {
6300 switch (x) {
6301 case OMP_SCHEDULE_Static:
6302 return "static";
6303 case OMP_SCHEDULE_Dynamic:
6304 return "dynamic";
6305 case OMP_SCHEDULE_Guided:
6306 return "guided";
6307 case OMP_SCHEDULE_Auto:
6308 return "auto";
6309 case OMP_SCHEDULE_Runtime:
6310 return "runtime";
6311 case OMP_SCHEDULE_Default:
6312 return "default";
6313 }
6314 llvm_unreachable("Invalid OpenMP ScheduleKind kind");
6315}
6316
6317bool llvm::omp::isAllowedClauseForDirective(llvm::omp::Directive D, llvm::omp::Clause C, unsigned Version) {
6318 assert(unsigned(D) <= Directive_enumSize);
6319 assert(unsigned(C) <= Clause_enumSize);
6320 switch (D) {
6321 case OMPD_allocate:
6322 switch (C) {
6323 case OMPC_align:
6324 return 51 <= Version && 2147483647 >= Version;
6325 case OMPC_allocator:
6326 return 1 <= Version && 2147483647 >= Version;
6327 default:
6328 return false;
6329 }
6330 break;
6331 case OMPD_allocators:
6332 switch (C) {
6333 case OMPC_allocate:
6334 return 1 <= Version && 2147483647 >= Version;
6335 default:
6336 return false;
6337 }
6338 break;
6339 case OMPD_assume:
6340 switch (C) {
6341 case OMPC_absent:
6342 return 51 <= Version && 2147483647 >= Version;
6343 case OMPC_contains:
6344 return 51 <= Version && 2147483647 >= Version;
6345 case OMPC_holds:
6346 return 51 <= Version && 2147483647 >= Version;
6347 case OMPC_no_openmp:
6348 return 51 <= Version && 2147483647 >= Version;
6349 case OMPC_no_openmp_routines:
6350 return 51 <= Version && 2147483647 >= Version;
6351 case OMPC_no_parallelism:
6352 return 51 <= Version && 2147483647 >= Version;
6353 case OMPC_no_openmp_constructs:
6354 return 60 <= Version && 2147483647 >= Version;
6355 default:
6356 return false;
6357 }
6358 break;
6359 case OMPD_assumes:
6360 switch (C) {
6361 case OMPC_absent:
6362 return 51 <= Version && 2147483647 >= Version;
6363 case OMPC_contains:
6364 return 51 <= Version && 2147483647 >= Version;
6365 case OMPC_holds:
6366 return 51 <= Version && 2147483647 >= Version;
6367 case OMPC_no_openmp:
6368 return 51 <= Version && 2147483647 >= Version;
6369 case OMPC_no_openmp_routines:
6370 return 51 <= Version && 2147483647 >= Version;
6371 case OMPC_no_parallelism:
6372 return 51 <= Version && 2147483647 >= Version;
6373 default:
6374 return false;
6375 }
6376 break;
6377 case OMPD_atomic:
6378 switch (C) {
6379 case OMPC_acq_rel:
6380 return 50 <= Version && 2147483647 >= Version;
6381 case OMPC_acquire:
6382 return 50 <= Version && 2147483647 >= Version;
6383 case OMPC_capture:
6384 return 1 <= Version && 2147483647 >= Version;
6385 case OMPC_compare:
6386 return 51 <= Version && 2147483647 >= Version;
6387 case OMPC_fail:
6388 return 51 <= Version && 2147483647 >= Version;
6389 case OMPC_hint:
6390 return 50 <= Version && 2147483647 >= Version;
6391 case OMPC_read:
6392 return 1 <= Version && 2147483647 >= Version;
6393 case OMPC_relaxed:
6394 return 50 <= Version && 2147483647 >= Version;
6395 case OMPC_release:
6396 return 50 <= Version && 2147483647 >= Version;
6397 case OMPC_seq_cst:
6398 return 1 <= Version && 2147483647 >= Version;
6399 case OMPC_update:
6400 return 1 <= Version && 2147483647 >= Version;
6401 case OMPC_weak:
6402 return 51 <= Version && 2147483647 >= Version;
6403 case OMPC_write:
6404 return 1 <= Version && 2147483647 >= Version;
6405 default:
6406 return false;
6407 }
6408 break;
6409 case OMPD_barrier:
6410 return false;
6411 break;
6412 case OMPD_begin_assumes:
6413 switch (C) {
6414 case OMPC_absent:
6415 return 51 <= Version && 2147483647 >= Version;
6416 case OMPC_contains:
6417 return 51 <= Version && 2147483647 >= Version;
6418 case OMPC_holds:
6419 return 51 <= Version && 2147483647 >= Version;
6420 case OMPC_no_openmp:
6421 return 51 <= Version && 2147483647 >= Version;
6422 case OMPC_no_openmp_routines:
6423 return 51 <= Version && 2147483647 >= Version;
6424 case OMPC_no_parallelism:
6425 return 51 <= Version && 2147483647 >= Version;
6426 default:
6427 return false;
6428 }
6429 break;
6430 case OMPD_begin_declare_target:
6431 switch (C) {
6432 case OMPC_device_type:
6433 return 1 <= Version && 2147483647 >= Version;
6434 case OMPC_indirect:
6435 return 51 <= Version && 2147483647 >= Version;
6436 case OMPC_link:
6437 return 1 <= Version && 2147483647 >= Version;
6438 case OMPC_to:
6439 return 1 <= Version && 2147483647 >= Version;
6440 default:
6441 return false;
6442 }
6443 break;
6444 case OMPD_begin_declare_variant:
6445 return false;
6446 break;
6447 case OMPD_cancel:
6448 switch (C) {
6449 case OMPC_cancellation_construct_type:
6450 return 1 <= Version && 2147483647 >= Version;
6451 case OMPC_if:
6452 return 1 <= Version && 2147483647 >= Version;
6453 default:
6454 return false;
6455 }
6456 break;
6457 case OMPD_cancellation_point:
6458 switch (C) {
6459 case OMPC_cancellation_construct_type:
6460 return 1 <= Version && 2147483647 >= Version;
6461 default:
6462 return false;
6463 }
6464 break;
6465 case OMPD_critical:
6466 switch (C) {
6467 case OMPC_hint:
6468 return 1 <= Version && 2147483647 >= Version;
6469 default:
6470 return false;
6471 }
6472 break;
6473 case OMPD_declare_mapper:
6474 switch (C) {
6475 case OMPC_map:
6476 return 45 <= Version && 2147483647 >= Version;
6477 default:
6478 return false;
6479 }
6480 break;
6481 case OMPD_declare_reduction:
6482 switch (C) {
6483 case OMPC_initializer:
6484 return 1 <= Version && 2147483647 >= Version;
6485 default:
6486 return false;
6487 }
6488 break;
6489 case OMPD_declare_simd:
6490 switch (C) {
6491 case OMPC_aligned:
6492 return 1 <= Version && 2147483647 >= Version;
6493 case OMPC_linear:
6494 return 1 <= Version && 2147483647 >= Version;
6495 case OMPC_uniform:
6496 return 1 <= Version && 2147483647 >= Version;
6497 case OMPC_simdlen:
6498 return 1 <= Version && 2147483647 >= Version;
6499 case OMPC_inbranch:
6500 return 1 <= Version && 2147483647 >= Version;
6501 case OMPC_notinbranch:
6502 return 1 <= Version && 2147483647 >= Version;
6503 default:
6504 return false;
6505 }
6506 break;
6507 case OMPD_declare_target:
6508 switch (C) {
6509 case OMPC_enter:
6510 return 52 <= Version && 2147483647 >= Version;
6511 case OMPC_indirect:
6512 return 51 <= Version && 2147483647 >= Version;
6513 case OMPC_link:
6514 return 1 <= Version && 2147483647 >= Version;
6515 case OMPC_to:
6516 return 1 <= Version && 2147483647 >= Version;
6517 case OMPC_device_type:
6518 return 50 <= Version && 2147483647 >= Version;
6519 default:
6520 return false;
6521 }
6522 break;
6523 case OMPD_declare_variant:
6524 switch (C) {
6525 case OMPC_adjust_args:
6526 return 51 <= Version && 2147483647 >= Version;
6527 case OMPC_match:
6528 return 1 <= Version && 2147483647 >= Version;
6529 case OMPC_append_args:
6530 return 51 <= Version && 2147483647 >= Version;
6531 default:
6532 return false;
6533 }
6534 break;
6535 case OMPD_depobj:
6536 switch (C) {
6537 case OMPC_depend:
6538 return 50 <= Version && 2147483647 >= Version;
6539 case OMPC_depobj:
6540 return 50 <= Version && 2147483647 >= Version;
6541 case OMPC_destroy:
6542 return 50 <= Version && 2147483647 >= Version;
6543 case OMPC_update:
6544 return 50 <= Version && 2147483647 >= Version;
6545 default:
6546 return false;
6547 }
6548 break;
6549 case OMPD_distribute:
6550 switch (C) {
6551 case OMPC_allocate:
6552 return 1 <= Version && 2147483647 >= Version;
6553 case OMPC_firstprivate:
6554 return 1 <= Version && 2147483647 >= Version;
6555 case OMPC_lastprivate:
6556 return 1 <= Version && 2147483647 >= Version;
6557 case OMPC_private:
6558 return 1 <= Version && 2147483647 >= Version;
6559 case OMPC_collapse:
6560 return 1 <= Version && 2147483647 >= Version;
6561 case OMPC_dist_schedule:
6562 return 1 <= Version && 2147483647 >= Version;
6563 case OMPC_order:
6564 return 50 <= Version && 2147483647 >= Version;
6565 default:
6566 return false;
6567 }
6568 break;
6569 case OMPD_distribute_parallel_do:
6570 switch (C) {
6571 case OMPC_allocate:
6572 return 1 <= Version && 2147483647 >= Version;
6573 case OMPC_copyin:
6574 return 1 <= Version && 2147483647 >= Version;
6575 case OMPC_default:
6576 return 1 <= Version && 2147483647 >= Version;
6577 case OMPC_firstprivate:
6578 return 1 <= Version && 2147483647 >= Version;
6579 case OMPC_lastprivate:
6580 return 1 <= Version && 2147483647 >= Version;
6581 case OMPC_linear:
6582 return 1 <= Version && 2147483647 >= Version;
6583 case OMPC_private:
6584 return 1 <= Version && 2147483647 >= Version;
6585 case OMPC_reduction:
6586 return 1 <= Version && 2147483647 >= Version;
6587 case OMPC_shared:
6588 return 1 <= Version && 2147483647 >= Version;
6589 case OMPC_collapse:
6590 return 1 <= Version && 2147483647 >= Version;
6591 case OMPC_dist_schedule:
6592 return 1 <= Version && 2147483647 >= Version;
6593 case OMPC_if:
6594 return 1 <= Version && 2147483647 >= Version;
6595 case OMPC_num_threads:
6596 return 1 <= Version && 2147483647 >= Version;
6597 case OMPC_order:
6598 return 50 <= Version && 2147483647 >= Version;
6599 case OMPC_proc_bind:
6600 return 1 <= Version && 2147483647 >= Version;
6601 case OMPC_schedule:
6602 return 1 <= Version && 2147483647 >= Version;
6603 default:
6604 return false;
6605 }
6606 break;
6607 case OMPD_distribute_parallel_do_simd:
6608 switch (C) {
6609 case OMPC_aligned:
6610 return 1 <= Version && 2147483647 >= Version;
6611 case OMPC_allocate:
6612 return 1 <= Version && 2147483647 >= Version;
6613 case OMPC_collapse:
6614 return 1 <= Version && 2147483647 >= Version;
6615 case OMPC_copyin:
6616 return 1 <= Version && 2147483647 >= Version;
6617 case OMPC_default:
6618 return 1 <= Version && 2147483647 >= Version;
6619 case OMPC_dist_schedule:
6620 return 1 <= Version && 2147483647 >= Version;
6621 case OMPC_firstprivate:
6622 return 1 <= Version && 2147483647 >= Version;
6623 case OMPC_if:
6624 return 1 <= Version && 2147483647 >= Version;
6625 case OMPC_lastprivate:
6626 return 1 <= Version && 2147483647 >= Version;
6627 case OMPC_linear:
6628 return 1 <= Version && 2147483647 >= Version;
6629 case OMPC_nontemporal:
6630 return 1 <= Version && 2147483647 >= Version;
6631 case OMPC_num_threads:
6632 return 1 <= Version && 2147483647 >= Version;
6633 case OMPC_order:
6634 return 50 <= Version && 2147483647 >= Version;
6635 case OMPC_private:
6636 return 1 <= Version && 2147483647 >= Version;
6637 case OMPC_proc_bind:
6638 return 1 <= Version && 2147483647 >= Version;
6639 case OMPC_reduction:
6640 return 1 <= Version && 2147483647 >= Version;
6641 case OMPC_safelen:
6642 return 1 <= Version && 2147483647 >= Version;
6643 case OMPC_schedule:
6644 return 1 <= Version && 2147483647 >= Version;
6645 case OMPC_shared:
6646 return 1 <= Version && 2147483647 >= Version;
6647 case OMPC_simdlen:
6648 return 1 <= Version && 2147483647 >= Version;
6649 default:
6650 return false;
6651 }
6652 break;
6653 case OMPD_distribute_parallel_for:
6654 switch (C) {
6655 case OMPC_allocate:
6656 return 1 <= Version && 2147483647 >= Version;
6657 case OMPC_collapse:
6658 return 1 <= Version && 2147483647 >= Version;
6659 case OMPC_copyin:
6660 return 1 <= Version && 2147483647 >= Version;
6661 case OMPC_default:
6662 return 1 <= Version && 2147483647 >= Version;
6663 case OMPC_dist_schedule:
6664 return 1 <= Version && 2147483647 >= Version;
6665 case OMPC_firstprivate:
6666 return 1 <= Version && 2147483647 >= Version;
6667 case OMPC_if:
6668 return 1 <= Version && 2147483647 >= Version;
6669 case OMPC_lastprivate:
6670 return 1 <= Version && 2147483647 >= Version;
6671 case OMPC_num_threads:
6672 return 1 <= Version && 2147483647 >= Version;
6673 case OMPC_ompx_attribute:
6674 return 1 <= Version && 2147483647 >= Version;
6675 case OMPC_order:
6676 return 50 <= Version && 2147483647 >= Version;
6677 case OMPC_private:
6678 return 1 <= Version && 2147483647 >= Version;
6679 case OMPC_proc_bind:
6680 return 1 <= Version && 2147483647 >= Version;
6681 case OMPC_reduction:
6682 return 1 <= Version && 2147483647 >= Version;
6683 case OMPC_schedule:
6684 return 1 <= Version && 2147483647 >= Version;
6685 case OMPC_shared:
6686 return 1 <= Version && 2147483647 >= Version;
6687 default:
6688 return false;
6689 }
6690 break;
6691 case OMPD_distribute_parallel_for_simd:
6692 switch (C) {
6693 case OMPC_aligned:
6694 return 1 <= Version && 2147483647 >= Version;
6695 case OMPC_allocate:
6696 return 1 <= Version && 2147483647 >= Version;
6697 case OMPC_collapse:
6698 return 1 <= Version && 2147483647 >= Version;
6699 case OMPC_copyin:
6700 return 1 <= Version && 2147483647 >= Version;
6701 case OMPC_default:
6702 return 1 <= Version && 2147483647 >= Version;
6703 case OMPC_dist_schedule:
6704 return 1 <= Version && 2147483647 >= Version;
6705 case OMPC_firstprivate:
6706 return 1 <= Version && 2147483647 >= Version;
6707 case OMPC_if:
6708 return 1 <= Version && 2147483647 >= Version;
6709 case OMPC_lastprivate:
6710 return 1 <= Version && 2147483647 >= Version;
6711 case OMPC_linear:
6712 return 1 <= Version && 2147483647 >= Version;
6713 case OMPC_nontemporal:
6714 return 50 <= Version && 2147483647 >= Version;
6715 case OMPC_num_threads:
6716 return 1 <= Version && 2147483647 >= Version;
6717 case OMPC_ompx_attribute:
6718 return 1 <= Version && 2147483647 >= Version;
6719 case OMPC_order:
6720 return 50 <= Version && 2147483647 >= Version;
6721 case OMPC_private:
6722 return 1 <= Version && 2147483647 >= Version;
6723 case OMPC_proc_bind:
6724 return 1 <= Version && 2147483647 >= Version;
6725 case OMPC_reduction:
6726 return 1 <= Version && 2147483647 >= Version;
6727 case OMPC_safelen:
6728 return 1 <= Version && 2147483647 >= Version;
6729 case OMPC_schedule:
6730 return 1 <= Version && 2147483647 >= Version;
6731 case OMPC_shared:
6732 return 1 <= Version && 2147483647 >= Version;
6733 case OMPC_simdlen:
6734 return 1 <= Version && 2147483647 >= Version;
6735 default:
6736 return false;
6737 }
6738 break;
6739 case OMPD_distribute_simd:
6740 switch (C) {
6741 case OMPC_aligned:
6742 return 1 <= Version && 2147483647 >= Version;
6743 case OMPC_allocate:
6744 return 1 <= Version && 2147483647 >= Version;
6745 case OMPC_copyin:
6746 return 1 <= Version && 2147483647 >= Version;
6747 case OMPC_default:
6748 return 1 <= Version && 2147483647 >= Version;
6749 case OMPC_firstprivate:
6750 return 1 <= Version && 2147483647 >= Version;
6751 case OMPC_lastprivate:
6752 return 1 <= Version && 2147483647 >= Version;
6753 case OMPC_linear:
6754 return 1 <= Version && 2147483647 >= Version;
6755 case OMPC_nontemporal:
6756 return 50 <= Version && 2147483647 >= Version;
6757 case OMPC_private:
6758 return 1 <= Version && 2147483647 >= Version;
6759 case OMPC_reduction:
6760 return 1 <= Version && 2147483647 >= Version;
6761 case OMPC_collapse:
6762 return 1 <= Version && 2147483647 >= Version;
6763 case OMPC_dist_schedule:
6764 return 1 <= Version && 2147483647 >= Version;
6765 case OMPC_if:
6766 return 50 <= Version && 2147483647 >= Version;
6767 case OMPC_num_threads:
6768 return 1 <= Version && 2147483647 >= Version;
6769 case OMPC_order:
6770 return 50 <= Version && 2147483647 >= Version;
6771 case OMPC_proc_bind:
6772 return 1 <= Version && 2147483647 >= Version;
6773 case OMPC_safelen:
6774 return 1 <= Version && 2147483647 >= Version;
6775 case OMPC_schedule:
6776 return 1 <= Version && 2147483647 >= Version;
6777 case OMPC_simdlen:
6778 return 1 <= Version && 2147483647 >= Version;
6779 default:
6780 return false;
6781 }
6782 break;
6783 case OMPD_do:
6784 switch (C) {
6785 case OMPC_firstprivate:
6786 return 1 <= Version && 2147483647 >= Version;
6787 case OMPC_lastprivate:
6788 return 1 <= Version && 2147483647 >= Version;
6789 case OMPC_linear:
6790 return 1 <= Version && 2147483647 >= Version;
6791 case OMPC_private:
6792 return 1 <= Version && 2147483647 >= Version;
6793 case OMPC_reduction:
6794 return 1 <= Version && 2147483647 >= Version;
6795 case OMPC_collapse:
6796 return 1 <= Version && 2147483647 >= Version;
6797 case OMPC_nowait:
6798 return 1 <= Version && 2147483647 >= Version;
6799 case OMPC_order:
6800 return 50 <= Version && 2147483647 >= Version;
6801 case OMPC_ordered:
6802 return 1 <= Version && 2147483647 >= Version;
6803 case OMPC_schedule:
6804 return 1 <= Version && 2147483647 >= Version;
6805 default:
6806 return false;
6807 }
6808 break;
6809 case OMPD_do_simd:
6810 switch (C) {
6811 case OMPC_aligned:
6812 return 1 <= Version && 2147483647 >= Version;
6813 case OMPC_firstprivate:
6814 return 1 <= Version && 2147483647 >= Version;
6815 case OMPC_lastprivate:
6816 return 1 <= Version && 2147483647 >= Version;
6817 case OMPC_linear:
6818 return 1 <= Version && 2147483647 >= Version;
6819 case OMPC_private:
6820 return 1 <= Version && 2147483647 >= Version;
6821 case OMPC_reduction:
6822 return 1 <= Version && 2147483647 >= Version;
6823 case OMPC_collapse:
6824 return 1 <= Version && 2147483647 >= Version;
6825 case OMPC_if:
6826 return 1 <= Version && 2147483647 >= Version;
6827 case OMPC_nowait:
6828 return 1 <= Version && 2147483647 >= Version;
6829 case OMPC_order:
6830 return 50 <= Version && 2147483647 >= Version;
6831 case OMPC_ordered:
6832 return 1 <= Version && 2147483647 >= Version;
6833 case OMPC_safelen:
6834 return 1 <= Version && 2147483647 >= Version;
6835 case OMPC_schedule:
6836 return 1 <= Version && 2147483647 >= Version;
6837 case OMPC_simdlen:
6838 return 1 <= Version && 2147483647 >= Version;
6839 default:
6840 return false;
6841 }
6842 break;
6843 case OMPD_end_assumes:
6844 return false;
6845 break;
6846 case OMPD_end_declare_target:
6847 return false;
6848 break;
6849 case OMPD_end_declare_variant:
6850 return false;
6851 break;
6852 case OMPD_end_do:
6853 switch (C) {
6854 case OMPC_nowait:
6855 return 1 <= Version && 2147483647 >= Version;
6856 default:
6857 return false;
6858 }
6859 break;
6860 case OMPD_end_do_simd:
6861 switch (C) {
6862 case OMPC_nowait:
6863 return 1 <= Version && 2147483647 >= Version;
6864 default:
6865 return false;
6866 }
6867 break;
6868 case OMPD_end_scope:
6869 switch (C) {
6870 case OMPC_nowait:
6871 return 1 <= Version && 2147483647 >= Version;
6872 default:
6873 return false;
6874 }
6875 break;
6876 case OMPD_end_sections:
6877 switch (C) {
6878 case OMPC_nowait:
6879 return 1 <= Version && 2147483647 >= Version;
6880 default:
6881 return false;
6882 }
6883 break;
6884 case OMPD_end_single:
6885 switch (C) {
6886 case OMPC_copyprivate:
6887 return 1 <= Version && 2147483647 >= Version;
6888 case OMPC_nowait:
6889 return 1 <= Version && 2147483647 >= Version;
6890 default:
6891 return false;
6892 }
6893 break;
6894 case OMPD_end_workshare:
6895 switch (C) {
6896 case OMPC_nowait:
6897 return 1 <= Version && 2147483647 >= Version;
6898 default:
6899 return false;
6900 }
6901 break;
6902 case OMPD_error:
6903 switch (C) {
6904 case OMPC_at:
6905 return 51 <= Version && 2147483647 >= Version;
6906 case OMPC_message:
6907 return 51 <= Version && 2147483647 >= Version;
6908 case OMPC_severity:
6909 return 51 <= Version && 2147483647 >= Version;
6910 default:
6911 return false;
6912 }
6913 break;
6914 case OMPD_flush:
6915 switch (C) {
6916 case OMPC_acq_rel:
6917 return 50 <= Version && 2147483647 >= Version;
6918 case OMPC_acquire:
6919 return 50 <= Version && 2147483647 >= Version;
6920 case OMPC_flush:
6921 return 1 <= Version && 2147483647 >= Version;
6922 case OMPC_release:
6923 return 50 <= Version && 2147483647 >= Version;
6924 case OMPC_seq_cst:
6925 return 51 <= Version && 2147483647 >= Version;
6926 default:
6927 return false;
6928 }
6929 break;
6930 case OMPD_for:
6931 switch (C) {
6932 case OMPC_allocate:
6933 return 1 <= Version && 2147483647 >= Version;
6934 case OMPC_collapse:
6935 return 1 <= Version && 2147483647 >= Version;
6936 case OMPC_firstprivate:
6937 return 1 <= Version && 2147483647 >= Version;
6938 case OMPC_lastprivate:
6939 return 1 <= Version && 2147483647 >= Version;
6940 case OMPC_linear:
6941 return 1 <= Version && 2147483647 >= Version;
6942 case OMPC_nowait:
6943 return 1 <= Version && 2147483647 >= Version;
6944 case OMPC_order:
6945 return 50 <= Version && 2147483647 >= Version;
6946 case OMPC_ordered:
6947 return 1 <= Version && 2147483647 >= Version;
6948 case OMPC_private:
6949 return 1 <= Version && 2147483647 >= Version;
6950 case OMPC_reduction:
6951 return 1 <= Version && 2147483647 >= Version;
6952 case OMPC_schedule:
6953 return 1 <= Version && 2147483647 >= Version;
6954 default:
6955 return false;
6956 }
6957 break;
6958 case OMPD_for_simd:
6959 switch (C) {
6960 case OMPC_aligned:
6961 return 1 <= Version && 2147483647 >= Version;
6962 case OMPC_allocate:
6963 return 1 <= Version && 2147483647 >= Version;
6964 case OMPC_collapse:
6965 return 1 <= Version && 2147483647 >= Version;
6966 case OMPC_firstprivate:
6967 return 1 <= Version && 2147483647 >= Version;
6968 case OMPC_if:
6969 return 50 <= Version && 2147483647 >= Version;
6970 case OMPC_lastprivate:
6971 return 1 <= Version && 2147483647 >= Version;
6972 case OMPC_linear:
6973 return 1 <= Version && 2147483647 >= Version;
6974 case OMPC_nontemporal:
6975 return 50 <= Version && 2147483647 >= Version;
6976 case OMPC_nowait:
6977 return 1 <= Version && 2147483647 >= Version;
6978 case OMPC_order:
6979 return 50 <= Version && 2147483647 >= Version;
6980 case OMPC_ordered:
6981 return 1 <= Version && 2147483647 >= Version;
6982 case OMPC_private:
6983 return 1 <= Version && 2147483647 >= Version;
6984 case OMPC_reduction:
6985 return 1 <= Version && 2147483647 >= Version;
6986 case OMPC_safelen:
6987 return 1 <= Version && 2147483647 >= Version;
6988 case OMPC_schedule:
6989 return 1 <= Version && 2147483647 >= Version;
6990 case OMPC_simdlen:
6991 return 1 <= Version && 2147483647 >= Version;
6992 default:
6993 return false;
6994 }
6995 break;
6996 case OMPD_interchange:
6997 switch (C) {
6998 case OMPC_permutation:
6999 return 1 <= Version && 2147483647 >= Version;
7000 default:
7001 return false;
7002 }
7003 break;
7004 case OMPD_masked_taskloop:
7005 switch (C) {
7006 case OMPC_allocate:
7007 return 1 <= Version && 2147483647 >= Version;
7008 case OMPC_collapse:
7009 return 1 <= Version && 2147483647 >= Version;
7010 case OMPC_default:
7011 return 1 <= Version && 2147483647 >= Version;
7012 case OMPC_filter:
7013 return 1 <= Version && 2147483647 >= Version;
7014 case OMPC_final:
7015 return 1 <= Version && 2147483647 >= Version;
7016 case OMPC_firstprivate:
7017 return 1 <= Version && 2147483647 >= Version;
7018 case OMPC_grainsize:
7019 return 1 <= Version && 2147483647 >= Version;
7020 case OMPC_if:
7021 return 1 <= Version && 2147483647 >= Version;
7022 case OMPC_in_reduction:
7023 return 1 <= Version && 2147483647 >= Version;
7024 case OMPC_lastprivate:
7025 return 1 <= Version && 2147483647 >= Version;
7026 case OMPC_mergeable:
7027 return 1 <= Version && 2147483647 >= Version;
7028 case OMPC_nogroup:
7029 return 1 <= Version && 2147483647 >= Version;
7030 case OMPC_num_tasks:
7031 return 1 <= Version && 2147483647 >= Version;
7032 case OMPC_priority:
7033 return 1 <= Version && 2147483647 >= Version;
7034 case OMPC_private:
7035 return 1 <= Version && 2147483647 >= Version;
7036 case OMPC_reduction:
7037 return 1 <= Version && 2147483647 >= Version;
7038 case OMPC_shared:
7039 return 1 <= Version && 2147483647 >= Version;
7040 case OMPC_untied:
7041 return 1 <= Version && 2147483647 >= Version;
7042 default:
7043 return false;
7044 }
7045 break;
7046 case OMPD_masked_taskloop_simd:
7047 switch (C) {
7048 case OMPC_aligned:
7049 return 1 <= Version && 2147483647 >= Version;
7050 case OMPC_allocate:
7051 return 1 <= Version && 2147483647 >= Version;
7052 case OMPC_collapse:
7053 return 1 <= Version && 2147483647 >= Version;
7054 case OMPC_default:
7055 return 1 <= Version && 2147483647 >= Version;
7056 case OMPC_filter:
7057 return 1 <= Version && 2147483647 >= Version;
7058 case OMPC_final:
7059 return 1 <= Version && 2147483647 >= Version;
7060 case OMPC_firstprivate:
7061 return 1 <= Version && 2147483647 >= Version;
7062 case OMPC_grainsize:
7063 return 1 <= Version && 2147483647 >= Version;
7064 case OMPC_if:
7065 return 1 <= Version && 2147483647 >= Version;
7066 case OMPC_in_reduction:
7067 return 1 <= Version && 2147483647 >= Version;
7068 case OMPC_lastprivate:
7069 return 1 <= Version && 2147483647 >= Version;
7070 case OMPC_linear:
7071 return 1 <= Version && 2147483647 >= Version;
7072 case OMPC_mergeable:
7073 return 1 <= Version && 2147483647 >= Version;
7074 case OMPC_nogroup:
7075 return 1 <= Version && 2147483647 >= Version;
7076 case OMPC_nontemporal:
7077 return 50 <= Version && 2147483647 >= Version;
7078 case OMPC_num_tasks:
7079 return 1 <= Version && 2147483647 >= Version;
7080 case OMPC_order:
7081 return 50 <= Version && 2147483647 >= Version;
7082 case OMPC_priority:
7083 return 1 <= Version && 2147483647 >= Version;
7084 case OMPC_private:
7085 return 1 <= Version && 2147483647 >= Version;
7086 case OMPC_reduction:
7087 return 1 <= Version && 2147483647 >= Version;
7088 case OMPC_safelen:
7089 return 1 <= Version && 2147483647 >= Version;
7090 case OMPC_shared:
7091 return 1 <= Version && 2147483647 >= Version;
7092 case OMPC_simdlen:
7093 return 1 <= Version && 2147483647 >= Version;
7094 case OMPC_untied:
7095 return 1 <= Version && 2147483647 >= Version;
7096 default:
7097 return false;
7098 }
7099 break;
7100 case OMPD_master:
7101 return false;
7102 break;
7103 case OMPD_master_taskloop:
7104 switch (C) {
7105 case OMPC_allocate:
7106 return 1 <= Version && 2147483647 >= Version;
7107 case OMPC_collapse:
7108 return 1 <= Version && 2147483647 >= Version;
7109 case OMPC_default:
7110 return 1 <= Version && 2147483647 >= Version;
7111 case OMPC_final:
7112 return 1 <= Version && 2147483647 >= Version;
7113 case OMPC_firstprivate:
7114 return 1 <= Version && 2147483647 >= Version;
7115 case OMPC_grainsize:
7116 return 1 <= Version && 2147483647 >= Version;
7117 case OMPC_if:
7118 return 1 <= Version && 2147483647 >= Version;
7119 case OMPC_in_reduction:
7120 return 1 <= Version && 2147483647 >= Version;
7121 case OMPC_lastprivate:
7122 return 1 <= Version && 2147483647 >= Version;
7123 case OMPC_mergeable:
7124 return 1 <= Version && 2147483647 >= Version;
7125 case OMPC_nogroup:
7126 return 1 <= Version && 2147483647 >= Version;
7127 case OMPC_num_tasks:
7128 return 1 <= Version && 2147483647 >= Version;
7129 case OMPC_priority:
7130 return 1 <= Version && 2147483647 >= Version;
7131 case OMPC_private:
7132 return 1 <= Version && 2147483647 >= Version;
7133 case OMPC_reduction:
7134 return 1 <= Version && 2147483647 >= Version;
7135 case OMPC_shared:
7136 return 1 <= Version && 2147483647 >= Version;
7137 case OMPC_untied:
7138 return 1 <= Version && 2147483647 >= Version;
7139 default:
7140 return false;
7141 }
7142 break;
7143 case OMPD_master_taskloop_simd:
7144 switch (C) {
7145 case OMPC_aligned:
7146 return 1 <= Version && 2147483647 >= Version;
7147 case OMPC_allocate:
7148 return 1 <= Version && 2147483647 >= Version;
7149 case OMPC_collapse:
7150 return 1 <= Version && 2147483647 >= Version;
7151 case OMPC_default:
7152 return 1 <= Version && 2147483647 >= Version;
7153 case OMPC_final:
7154 return 1 <= Version && 2147483647 >= Version;
7155 case OMPC_firstprivate:
7156 return 1 <= Version && 2147483647 >= Version;
7157 case OMPC_grainsize:
7158 return 1 <= Version && 2147483647 >= Version;
7159 case OMPC_if:
7160 return 1 <= Version && 2147483647 >= Version;
7161 case OMPC_in_reduction:
7162 return 1 <= Version && 2147483647 >= Version;
7163 case OMPC_lastprivate:
7164 return 1 <= Version && 2147483647 >= Version;
7165 case OMPC_linear:
7166 return 1 <= Version && 2147483647 >= Version;
7167 case OMPC_mergeable:
7168 return 1 <= Version && 2147483647 >= Version;
7169 case OMPC_nogroup:
7170 return 1 <= Version && 2147483647 >= Version;
7171 case OMPC_nontemporal:
7172 return 50 <= Version && 2147483647 >= Version;
7173 case OMPC_num_tasks:
7174 return 1 <= Version && 2147483647 >= Version;
7175 case OMPC_order:
7176 return 50 <= Version && 2147483647 >= Version;
7177 case OMPC_priority:
7178 return 1 <= Version && 2147483647 >= Version;
7179 case OMPC_private:
7180 return 1 <= Version && 2147483647 >= Version;
7181 case OMPC_reduction:
7182 return 1 <= Version && 2147483647 >= Version;
7183 case OMPC_safelen:
7184 return 1 <= Version && 2147483647 >= Version;
7185 case OMPC_shared:
7186 return 1 <= Version && 2147483647 >= Version;
7187 case OMPC_simdlen:
7188 return 1 <= Version && 2147483647 >= Version;
7189 case OMPC_untied:
7190 return 1 <= Version && 2147483647 >= Version;
7191 default:
7192 return false;
7193 }
7194 break;
7195 case OMPD_metadirective:
7196 switch (C) {
7197 case OMPC_when:
7198 return 1 <= Version && 2147483647 >= Version;
7199 case OMPC_otherwise:
7200 return 52 <= Version && 2147483647 >= Version;
7201 case OMPC_default:
7202 return 50 <= Version && 51 >= Version;
7203 default:
7204 return false;
7205 }
7206 break;
7207 case OMPD_nothing:
7208 return false;
7209 break;
7210 case OMPD_ordered:
7211 switch (C) {
7212 case OMPC_depend:
7213 return 1 <= Version && 2147483647 >= Version;
7214 case OMPC_doacross:
7215 return 52 <= Version && 2147483647 >= Version;
7216 case OMPC_simd:
7217 return 1 <= Version && 2147483647 >= Version;
7218 case OMPC_threads:
7219 return 1 <= Version && 2147483647 >= Version;
7220 default:
7221 return false;
7222 }
7223 break;
7224 case OMPD_parallel:
7225 switch (C) {
7226 case OMPC_allocate:
7227 return 1 <= Version && 2147483647 >= Version;
7228 case OMPC_copyin:
7229 return 1 <= Version && 2147483647 >= Version;
7230 case OMPC_firstprivate:
7231 return 1 <= Version && 2147483647 >= Version;
7232 case OMPC_ompx_attribute:
7233 return 1 <= Version && 2147483647 >= Version;
7234 case OMPC_private:
7235 return 1 <= Version && 2147483647 >= Version;
7236 case OMPC_reduction:
7237 return 1 <= Version && 2147483647 >= Version;
7238 case OMPC_shared:
7239 return 1 <= Version && 2147483647 >= Version;
7240 case OMPC_default:
7241 return 1 <= Version && 2147483647 >= Version;
7242 case OMPC_if:
7243 return 1 <= Version && 2147483647 >= Version;
7244 case OMPC_num_threads:
7245 return 1 <= Version && 2147483647 >= Version;
7246 case OMPC_proc_bind:
7247 return 1 <= Version && 2147483647 >= Version;
7248 default:
7249 return false;
7250 }
7251 break;
7252 case OMPD_parallel_do:
7253 switch (C) {
7254 case OMPC_copyin:
7255 return 1 <= Version && 2147483647 >= Version;
7256 case OMPC_default:
7257 return 1 <= Version && 2147483647 >= Version;
7258 case OMPC_firstprivate:
7259 return 1 <= Version && 2147483647 >= Version;
7260 case OMPC_lastprivate:
7261 return 1 <= Version && 2147483647 >= Version;
7262 case OMPC_linear:
7263 return 1 <= Version && 2147483647 >= Version;
7264 case OMPC_private:
7265 return 1 <= Version && 2147483647 >= Version;
7266 case OMPC_reduction:
7267 return 1 <= Version && 2147483647 >= Version;
7268 case OMPC_shared:
7269 return 1 <= Version && 2147483647 >= Version;
7270 case OMPC_collapse:
7271 return 1 <= Version && 2147483647 >= Version;
7272 case OMPC_if:
7273 return 1 <= Version && 2147483647 >= Version;
7274 case OMPC_num_threads:
7275 return 1 <= Version && 2147483647 >= Version;
7276 case OMPC_order:
7277 return 50 <= Version && 2147483647 >= Version;
7278 case OMPC_ordered:
7279 return 1 <= Version && 2147483647 >= Version;
7280 case OMPC_proc_bind:
7281 return 1 <= Version && 2147483647 >= Version;
7282 case OMPC_schedule:
7283 return 1 <= Version && 2147483647 >= Version;
7284 default:
7285 return false;
7286 }
7287 break;
7288 case OMPD_parallel_do_simd:
7289 switch (C) {
7290 case OMPC_aligned:
7291 return 1 <= Version && 2147483647 >= Version;
7292 case OMPC_allocate:
7293 return 1 <= Version && 2147483647 >= Version;
7294 case OMPC_copyin:
7295 return 1 <= Version && 2147483647 >= Version;
7296 case OMPC_default:
7297 return 1 <= Version && 2147483647 >= Version;
7298 case OMPC_firstprivate:
7299 return 1 <= Version && 2147483647 >= Version;
7300 case OMPC_if:
7301 return 1 <= Version && 2147483647 >= Version;
7302 case OMPC_lastprivate:
7303 return 1 <= Version && 2147483647 >= Version;
7304 case OMPC_linear:
7305 return 1 <= Version && 2147483647 >= Version;
7306 case OMPC_nontemporal:
7307 return 1 <= Version && 2147483647 >= Version;
7308 case OMPC_private:
7309 return 1 <= Version && 2147483647 >= Version;
7310 case OMPC_reduction:
7311 return 1 <= Version && 2147483647 >= Version;
7312 case OMPC_shared:
7313 return 1 <= Version && 2147483647 >= Version;
7314 case OMPC_collapse:
7315 return 1 <= Version && 2147483647 >= Version;
7316 case OMPC_num_threads:
7317 return 1 <= Version && 2147483647 >= Version;
7318 case OMPC_order:
7319 return 50 <= Version && 2147483647 >= Version;
7320 case OMPC_ordered:
7321 return 1 <= Version && 2147483647 >= Version;
7322 case OMPC_proc_bind:
7323 return 1 <= Version && 2147483647 >= Version;
7324 case OMPC_safelen:
7325 return 1 <= Version && 2147483647 >= Version;
7326 case OMPC_schedule:
7327 return 1 <= Version && 2147483647 >= Version;
7328 case OMPC_simdlen:
7329 return 1 <= Version && 2147483647 >= Version;
7330 default:
7331 return false;
7332 }
7333 break;
7334 case OMPD_parallel_for:
7335 switch (C) {
7336 case OMPC_allocate:
7337 return 1 <= Version && 2147483647 >= Version;
7338 case OMPC_collapse:
7339 return 1 <= Version && 2147483647 >= Version;
7340 case OMPC_copyin:
7341 return 1 <= Version && 2147483647 >= Version;
7342 case OMPC_default:
7343 return 1 <= Version && 2147483647 >= Version;
7344 case OMPC_firstprivate:
7345 return 1 <= Version && 2147483647 >= Version;
7346 case OMPC_if:
7347 return 1 <= Version && 2147483647 >= Version;
7348 case OMPC_lastprivate:
7349 return 1 <= Version && 2147483647 >= Version;
7350 case OMPC_linear:
7351 return 1 <= Version && 2147483647 >= Version;
7352 case OMPC_num_threads:
7353 return 1 <= Version && 2147483647 >= Version;
7354 case OMPC_ompx_attribute:
7355 return 1 <= Version && 2147483647 >= Version;
7356 case OMPC_order:
7357 return 50 <= Version && 2147483647 >= Version;
7358 case OMPC_ordered:
7359 return 1 <= Version && 2147483647 >= Version;
7360 case OMPC_private:
7361 return 1 <= Version && 2147483647 >= Version;
7362 case OMPC_proc_bind:
7363 return 1 <= Version && 2147483647 >= Version;
7364 case OMPC_reduction:
7365 return 1 <= Version && 2147483647 >= Version;
7366 case OMPC_schedule:
7367 return 1 <= Version && 2147483647 >= Version;
7368 case OMPC_shared:
7369 return 1 <= Version && 2147483647 >= Version;
7370 default:
7371 return false;
7372 }
7373 break;
7374 case OMPD_parallel_for_simd:
7375 switch (C) {
7376 case OMPC_aligned:
7377 return 1 <= Version && 2147483647 >= Version;
7378 case OMPC_allocate:
7379 return 1 <= Version && 2147483647 >= Version;
7380 case OMPC_collapse:
7381 return 1 <= Version && 2147483647 >= Version;
7382 case OMPC_copyin:
7383 return 1 <= Version && 2147483647 >= Version;
7384 case OMPC_default:
7385 return 1 <= Version && 2147483647 >= Version;
7386 case OMPC_firstprivate:
7387 return 1 <= Version && 2147483647 >= Version;
7388 case OMPC_if:
7389 return 1 <= Version && 2147483647 >= Version;
7390 case OMPC_lastprivate:
7391 return 1 <= Version && 2147483647 >= Version;
7392 case OMPC_linear:
7393 return 1 <= Version && 2147483647 >= Version;
7394 case OMPC_nontemporal:
7395 return 50 <= Version && 2147483647 >= Version;
7396 case OMPC_num_threads:
7397 return 1 <= Version && 2147483647 >= Version;
7398 case OMPC_ompx_attribute:
7399 return 1 <= Version && 2147483647 >= Version;
7400 case OMPC_order:
7401 return 50 <= Version && 2147483647 >= Version;
7402 case OMPC_ordered:
7403 return 1 <= Version && 2147483647 >= Version;
7404 case OMPC_private:
7405 return 1 <= Version && 2147483647 >= Version;
7406 case OMPC_proc_bind:
7407 return 1 <= Version && 2147483647 >= Version;
7408 case OMPC_reduction:
7409 return 1 <= Version && 2147483647 >= Version;
7410 case OMPC_safelen:
7411 return 1 <= Version && 2147483647 >= Version;
7412 case OMPC_schedule:
7413 return 1 <= Version && 2147483647 >= Version;
7414 case OMPC_shared:
7415 return 1 <= Version && 2147483647 >= Version;
7416 case OMPC_simdlen:
7417 return 1 <= Version && 2147483647 >= Version;
7418 default:
7419 return false;
7420 }
7421 break;
7422 case OMPD_parallel_masked:
7423 switch (C) {
7424 case OMPC_allocate:
7425 return 1 <= Version && 2147483647 >= Version;
7426 case OMPC_copyin:
7427 return 1 <= Version && 2147483647 >= Version;
7428 case OMPC_default:
7429 return 1 <= Version && 2147483647 >= Version;
7430 case OMPC_filter:
7431 return 1 <= Version && 2147483647 >= Version;
7432 case OMPC_firstprivate:
7433 return 1 <= Version && 2147483647 >= Version;
7434 case OMPC_if:
7435 return 1 <= Version && 2147483647 >= Version;
7436 case OMPC_num_threads:
7437 return 1 <= Version && 2147483647 >= Version;
7438 case OMPC_ompx_attribute:
7439 return 1 <= Version && 2147483647 >= Version;
7440 case OMPC_private:
7441 return 1 <= Version && 2147483647 >= Version;
7442 case OMPC_proc_bind:
7443 return 1 <= Version && 2147483647 >= Version;
7444 case OMPC_reduction:
7445 return 1 <= Version && 2147483647 >= Version;
7446 case OMPC_shared:
7447 return 1 <= Version && 2147483647 >= Version;
7448 default:
7449 return false;
7450 }
7451 break;
7452 case OMPD_parallel_masked_taskloop:
7453 switch (C) {
7454 case OMPC_allocate:
7455 return 1 <= Version && 2147483647 >= Version;
7456 case OMPC_collapse:
7457 return 1 <= Version && 2147483647 >= Version;
7458 case OMPC_copyin:
7459 return 1 <= Version && 2147483647 >= Version;
7460 case OMPC_default:
7461 return 1 <= Version && 2147483647 >= Version;
7462 case OMPC_filter:
7463 return 1 <= Version && 2147483647 >= Version;
7464 case OMPC_final:
7465 return 1 <= Version && 2147483647 >= Version;
7466 case OMPC_firstprivate:
7467 return 1 <= Version && 2147483647 >= Version;
7468 case OMPC_grainsize:
7469 return 1 <= Version && 2147483647 >= Version;
7470 case OMPC_if:
7471 return 1 <= Version && 2147483647 >= Version;
7472 case OMPC_lastprivate:
7473 return 1 <= Version && 2147483647 >= Version;
7474 case OMPC_mergeable:
7475 return 1 <= Version && 2147483647 >= Version;
7476 case OMPC_nogroup:
7477 return 1 <= Version && 2147483647 >= Version;
7478 case OMPC_num_tasks:
7479 return 1 <= Version && 2147483647 >= Version;
7480 case OMPC_num_threads:
7481 return 1 <= Version && 2147483647 >= Version;
7482 case OMPC_ompx_attribute:
7483 return 1 <= Version && 2147483647 >= Version;
7484 case OMPC_priority:
7485 return 1 <= Version && 2147483647 >= Version;
7486 case OMPC_private:
7487 return 1 <= Version && 2147483647 >= Version;
7488 case OMPC_proc_bind:
7489 return 1 <= Version && 2147483647 >= Version;
7490 case OMPC_reduction:
7491 return 1 <= Version && 2147483647 >= Version;
7492 case OMPC_shared:
7493 return 1 <= Version && 2147483647 >= Version;
7494 case OMPC_untied:
7495 return 1 <= Version && 2147483647 >= Version;
7496 default:
7497 return false;
7498 }
7499 break;
7500 case OMPD_parallel_masked_taskloop_simd:
7501 switch (C) {
7502 case OMPC_aligned:
7503 return 1 <= Version && 2147483647 >= Version;
7504 case OMPC_allocate:
7505 return 1 <= Version && 2147483647 >= Version;
7506 case OMPC_collapse:
7507 return 1 <= Version && 2147483647 >= Version;
7508 case OMPC_copyin:
7509 return 1 <= Version && 2147483647 >= Version;
7510 case OMPC_default:
7511 return 1 <= Version && 2147483647 >= Version;
7512 case OMPC_filter:
7513 return 1 <= Version && 2147483647 >= Version;
7514 case OMPC_final:
7515 return 1 <= Version && 2147483647 >= Version;
7516 case OMPC_firstprivate:
7517 return 1 <= Version && 2147483647 >= Version;
7518 case OMPC_grainsize:
7519 return 1 <= Version && 2147483647 >= Version;
7520 case OMPC_if:
7521 return 1 <= Version && 2147483647 >= Version;
7522 case OMPC_lastprivate:
7523 return 1 <= Version && 2147483647 >= Version;
7524 case OMPC_linear:
7525 return 1 <= Version && 2147483647 >= Version;
7526 case OMPC_mergeable:
7527 return 1 <= Version && 2147483647 >= Version;
7528 case OMPC_nogroup:
7529 return 1 <= Version && 2147483647 >= Version;
7530 case OMPC_nontemporal:
7531 return 50 <= Version && 2147483647 >= Version;
7532 case OMPC_num_tasks:
7533 return 1 <= Version && 2147483647 >= Version;
7534 case OMPC_num_threads:
7535 return 1 <= Version && 2147483647 >= Version;
7536 case OMPC_ompx_attribute:
7537 return 1 <= Version && 2147483647 >= Version;
7538 case OMPC_order:
7539 return 50 <= Version && 2147483647 >= Version;
7540 case OMPC_priority:
7541 return 1 <= Version && 2147483647 >= Version;
7542 case OMPC_private:
7543 return 1 <= Version && 2147483647 >= Version;
7544 case OMPC_proc_bind:
7545 return 1 <= Version && 2147483647 >= Version;
7546 case OMPC_reduction:
7547 return 1 <= Version && 2147483647 >= Version;
7548 case OMPC_safelen:
7549 return 1 <= Version && 2147483647 >= Version;
7550 case OMPC_shared:
7551 return 1 <= Version && 2147483647 >= Version;
7552 case OMPC_simdlen:
7553 return 1 <= Version && 2147483647 >= Version;
7554 case OMPC_untied:
7555 return 1 <= Version && 2147483647 >= Version;
7556 default:
7557 return false;
7558 }
7559 break;
7560 case OMPD_parallel_master:
7561 switch (C) {
7562 case OMPC_allocate:
7563 return 1 <= Version && 2147483647 >= Version;
7564 case OMPC_copyin:
7565 return 1 <= Version && 2147483647 >= Version;
7566 case OMPC_default:
7567 return 1 <= Version && 2147483647 >= Version;
7568 case OMPC_firstprivate:
7569 return 1 <= Version && 2147483647 >= Version;
7570 case OMPC_if:
7571 return 1 <= Version && 2147483647 >= Version;
7572 case OMPC_num_threads:
7573 return 1 <= Version && 2147483647 >= Version;
7574 case OMPC_ompx_attribute:
7575 return 1 <= Version && 2147483647 >= Version;
7576 case OMPC_private:
7577 return 1 <= Version && 2147483647 >= Version;
7578 case OMPC_proc_bind:
7579 return 1 <= Version && 2147483647 >= Version;
7580 case OMPC_reduction:
7581 return 1 <= Version && 2147483647 >= Version;
7582 case OMPC_shared:
7583 return 1 <= Version && 2147483647 >= Version;
7584 default:
7585 return false;
7586 }
7587 break;
7588 case OMPD_parallel_master_taskloop:
7589 switch (C) {
7590 case OMPC_allocate:
7591 return 1 <= Version && 2147483647 >= Version;
7592 case OMPC_collapse:
7593 return 1 <= Version && 2147483647 >= Version;
7594 case OMPC_copyin:
7595 return 1 <= Version && 2147483647 >= Version;
7596 case OMPC_default:
7597 return 1 <= Version && 2147483647 >= Version;
7598 case OMPC_final:
7599 return 1 <= Version && 2147483647 >= Version;
7600 case OMPC_firstprivate:
7601 return 1 <= Version && 2147483647 >= Version;
7602 case OMPC_grainsize:
7603 return 1 <= Version && 2147483647 >= Version;
7604 case OMPC_if:
7605 return 1 <= Version && 2147483647 >= Version;
7606 case OMPC_lastprivate:
7607 return 1 <= Version && 2147483647 >= Version;
7608 case OMPC_mergeable:
7609 return 1 <= Version && 2147483647 >= Version;
7610 case OMPC_nogroup:
7611 return 1 <= Version && 2147483647 >= Version;
7612 case OMPC_num_tasks:
7613 return 1 <= Version && 2147483647 >= Version;
7614 case OMPC_num_threads:
7615 return 1 <= Version && 2147483647 >= Version;
7616 case OMPC_ompx_attribute:
7617 return 1 <= Version && 2147483647 >= Version;
7618 case OMPC_priority:
7619 return 1 <= Version && 2147483647 >= Version;
7620 case OMPC_private:
7621 return 1 <= Version && 2147483647 >= Version;
7622 case OMPC_proc_bind:
7623 return 1 <= Version && 2147483647 >= Version;
7624 case OMPC_reduction:
7625 return 1 <= Version && 2147483647 >= Version;
7626 case OMPC_shared:
7627 return 1 <= Version && 2147483647 >= Version;
7628 case OMPC_untied:
7629 return 1 <= Version && 2147483647 >= Version;
7630 default:
7631 return false;
7632 }
7633 break;
7634 case OMPD_parallel_master_taskloop_simd:
7635 switch (C) {
7636 case OMPC_aligned:
7637 return 1 <= Version && 2147483647 >= Version;
7638 case OMPC_allocate:
7639 return 1 <= Version && 2147483647 >= Version;
7640 case OMPC_collapse:
7641 return 1 <= Version && 2147483647 >= Version;
7642 case OMPC_copyin:
7643 return 1 <= Version && 2147483647 >= Version;
7644 case OMPC_default:
7645 return 1 <= Version && 2147483647 >= Version;
7646 case OMPC_final:
7647 return 1 <= Version && 2147483647 >= Version;
7648 case OMPC_firstprivate:
7649 return 1 <= Version && 2147483647 >= Version;
7650 case OMPC_grainsize:
7651 return 1 <= Version && 2147483647 >= Version;
7652 case OMPC_if:
7653 return 1 <= Version && 2147483647 >= Version;
7654 case OMPC_lastprivate:
7655 return 1 <= Version && 2147483647 >= Version;
7656 case OMPC_linear:
7657 return 1 <= Version && 2147483647 >= Version;
7658 case OMPC_mergeable:
7659 return 1 <= Version && 2147483647 >= Version;
7660 case OMPC_nogroup:
7661 return 1 <= Version && 2147483647 >= Version;
7662 case OMPC_nontemporal:
7663 return 50 <= Version && 2147483647 >= Version;
7664 case OMPC_num_tasks:
7665 return 1 <= Version && 2147483647 >= Version;
7666 case OMPC_num_threads:
7667 return 1 <= Version && 2147483647 >= Version;
7668 case OMPC_ompx_attribute:
7669 return 1 <= Version && 2147483647 >= Version;
7670 case OMPC_order:
7671 return 50 <= Version && 2147483647 >= Version;
7672 case OMPC_priority:
7673 return 1 <= Version && 2147483647 >= Version;
7674 case OMPC_private:
7675 return 1 <= Version && 2147483647 >= Version;
7676 case OMPC_proc_bind:
7677 return 1 <= Version && 2147483647 >= Version;
7678 case OMPC_reduction:
7679 return 1 <= Version && 2147483647 >= Version;
7680 case OMPC_safelen:
7681 return 1 <= Version && 2147483647 >= Version;
7682 case OMPC_shared:
7683 return 1 <= Version && 2147483647 >= Version;
7684 case OMPC_simdlen:
7685 return 1 <= Version && 2147483647 >= Version;
7686 case OMPC_untied:
7687 return 1 <= Version && 2147483647 >= Version;
7688 default:
7689 return false;
7690 }
7691 break;
7692 case OMPD_parallel_sections:
7693 switch (C) {
7694 case OMPC_allocate:
7695 return 1 <= Version && 2147483647 >= Version;
7696 case OMPC_copyin:
7697 return 1 <= Version && 2147483647 >= Version;
7698 case OMPC_default:
7699 return 1 <= Version && 2147483647 >= Version;
7700 case OMPC_firstprivate:
7701 return 1 <= Version && 2147483647 >= Version;
7702 case OMPC_lastprivate:
7703 return 1 <= Version && 2147483647 >= Version;
7704 case OMPC_ompx_attribute:
7705 return 1 <= Version && 2147483647 >= Version;
7706 case OMPC_private:
7707 return 1 <= Version && 2147483647 >= Version;
7708 case OMPC_proc_bind:
7709 return 1 <= Version && 2147483647 >= Version;
7710 case OMPC_reduction:
7711 return 1 <= Version && 2147483647 >= Version;
7712 case OMPC_shared:
7713 return 1 <= Version && 2147483647 >= Version;
7714 case OMPC_if:
7715 return 1 <= Version && 2147483647 >= Version;
7716 case OMPC_num_threads:
7717 return 1 <= Version && 2147483647 >= Version;
7718 default:
7719 return false;
7720 }
7721 break;
7722 case OMPD_parallel_workshare:
7723 switch (C) {
7724 case OMPC_allocate:
7725 return 1 <= Version && 2147483647 >= Version;
7726 case OMPC_copyin:
7727 return 1 <= Version && 2147483647 >= Version;
7728 case OMPC_default:
7729 return 1 <= Version && 2147483647 >= Version;
7730 case OMPC_firstprivate:
7731 return 1 <= Version && 2147483647 >= Version;
7732 case OMPC_private:
7733 return 1 <= Version && 2147483647 >= Version;
7734 case OMPC_reduction:
7735 return 1 <= Version && 2147483647 >= Version;
7736 case OMPC_shared:
7737 return 1 <= Version && 2147483647 >= Version;
7738 case OMPC_if:
7739 return 1 <= Version && 2147483647 >= Version;
7740 case OMPC_num_threads:
7741 return 1 <= Version && 2147483647 >= Version;
7742 case OMPC_proc_bind:
7743 return 1 <= Version && 2147483647 >= Version;
7744 default:
7745 return false;
7746 }
7747 break;
7748 case OMPD_requires:
7749 switch (C) {
7750 case OMPC_unified_address:
7751 return 1 <= Version && 2147483647 >= Version;
7752 case OMPC_unified_shared_memory:
7753 return 1 <= Version && 2147483647 >= Version;
7754 case OMPC_atomic_default_mem_order:
7755 return 1 <= Version && 2147483647 >= Version;
7756 case OMPC_dynamic_allocators:
7757 return 1 <= Version && 2147483647 >= Version;
7758 case OMPC_self_maps:
7759 return 1 <= Version && 2147483647 >= Version;
7760 case OMPC_reverse_offload:
7761 return 99 <= Version && 2147483647 >= Version;
7762 default:
7763 return false;
7764 }
7765 break;
7766 case OMPD_reverse:
7767 return false;
7768 break;
7769 case OMPD_scan:
7770 switch (C) {
7771 case OMPC_exclusive:
7772 return 1 <= Version && 2147483647 >= Version;
7773 case OMPC_inclusive:
7774 return 1 <= Version && 2147483647 >= Version;
7775 default:
7776 return false;
7777 }
7778 break;
7779 case OMPD_scope:
7780 switch (C) {
7781 case OMPC_private:
7782 return 51 <= Version && 2147483647 >= Version;
7783 case OMPC_reduction:
7784 return 51 <= Version && 2147483647 >= Version;
7785 case OMPC_firstprivate:
7786 return 52 <= Version && 2147483647 >= Version;
7787 case OMPC_allocate:
7788 return 52 <= Version && 2147483647 >= Version;
7789 case OMPC_nowait:
7790 return 51 <= Version && 2147483647 >= Version;
7791 default:
7792 return false;
7793 }
7794 break;
7795 case OMPD_section:
7796 return false;
7797 break;
7798 case OMPD_sections:
7799 switch (C) {
7800 case OMPC_allocate:
7801 return 1 <= Version && 2147483647 >= Version;
7802 case OMPC_firstprivate:
7803 return 1 <= Version && 2147483647 >= Version;
7804 case OMPC_lastprivate:
7805 return 1 <= Version && 2147483647 >= Version;
7806 case OMPC_nowait:
7807 return 1 <= Version && 2147483647 >= Version;
7808 case OMPC_private:
7809 return 1 <= Version && 2147483647 >= Version;
7810 case OMPC_reduction:
7811 return 1 <= Version && 2147483647 >= Version;
7812 default:
7813 return false;
7814 }
7815 break;
7816 case OMPD_simd:
7817 switch (C) {
7818 case OMPC_aligned:
7819 return 1 <= Version && 2147483647 >= Version;
7820 case OMPC_allocate:
7821 return 1 <= Version && 2147483647 >= Version;
7822 case OMPC_lastprivate:
7823 return 1 <= Version && 2147483647 >= Version;
7824 case OMPC_linear:
7825 return 1 <= Version && 2147483647 >= Version;
7826 case OMPC_nontemporal:
7827 return 50 <= Version && 2147483647 >= Version;
7828 case OMPC_private:
7829 return 1 <= Version && 2147483647 >= Version;
7830 case OMPC_reduction:
7831 return 1 <= Version && 2147483647 >= Version;
7832 case OMPC_collapse:
7833 return 1 <= Version && 2147483647 >= Version;
7834 case OMPC_if:
7835 return 50 <= Version && 2147483647 >= Version;
7836 case OMPC_order:
7837 return 50 <= Version && 2147483647 >= Version;
7838 case OMPC_safelen:
7839 return 1 <= Version && 2147483647 >= Version;
7840 case OMPC_simdlen:
7841 return 1 <= Version && 2147483647 >= Version;
7842 default:
7843 return false;
7844 }
7845 break;
7846 case OMPD_single:
7847 switch (C) {
7848 case OMPC_allocate:
7849 return 1 <= Version && 2147483647 >= Version;
7850 case OMPC_copyprivate:
7851 return 1 <= Version && 2147483647 >= Version;
7852 case OMPC_firstprivate:
7853 return 1 <= Version && 2147483647 >= Version;
7854 case OMPC_private:
7855 return 1 <= Version && 2147483647 >= Version;
7856 case OMPC_nowait:
7857 return 1 <= Version && 2147483647 >= Version;
7858 default:
7859 return false;
7860 }
7861 break;
7862 case OMPD_stripe:
7863 switch (C) {
7864 case OMPC_sizes:
7865 return 60 <= Version && 2147483647 >= Version;
7866 default:
7867 return false;
7868 }
7869 break;
7870 case OMPD_target:
7871 switch (C) {
7872 case OMPC_allocate:
7873 return 1 <= Version && 2147483647 >= Version;
7874 case OMPC_depend:
7875 return 1 <= Version && 2147483647 >= Version;
7876 case OMPC_firstprivate:
7877 return 1 <= Version && 2147483647 >= Version;
7878 case OMPC_has_device_addr:
7879 return 51 <= Version && 2147483647 >= Version;
7880 case OMPC_in_reduction:
7881 return 50 <= Version && 2147483647 >= Version;
7882 case OMPC_is_device_ptr:
7883 return 1 <= Version && 2147483647 >= Version;
7884 case OMPC_map:
7885 return 1 <= Version && 2147483647 >= Version;
7886 case OMPC_ompx_attribute:
7887 return 1 <= Version && 2147483647 >= Version;
7888 case OMPC_private:
7889 return 1 <= Version && 2147483647 >= Version;
7890 case OMPC_uses_allocators:
7891 return 50 <= Version && 2147483647 >= Version;
7892 case OMPC_defaultmap:
7893 return 1 <= Version && 2147483647 >= Version;
7894 case OMPC_device:
7895 return 1 <= Version && 2147483647 >= Version;
7896 case OMPC_if:
7897 return 1 <= Version && 2147483647 >= Version;
7898 case OMPC_nowait:
7899 return 1 <= Version && 2147483647 >= Version;
7900 case OMPC_ompx_bare:
7901 return 1 <= Version && 2147483647 >= Version;
7902 case OMPC_ompx_dyn_cgroup_mem:
7903 return 1 <= Version && 2147483647 >= Version;
7904 case OMPC_thread_limit:
7905 return 51 <= Version && 2147483647 >= Version;
7906 default:
7907 return false;
7908 }
7909 break;
7910 case OMPD_target_data:
7911 switch (C) {
7912 case OMPC_device:
7913 return 1 <= Version && 2147483647 >= Version;
7914 case OMPC_if:
7915 return 1 <= Version && 2147483647 >= Version;
7916 case OMPC_map:
7917 return 1 <= Version && 2147483647 >= Version;
7918 case OMPC_use_device_addr:
7919 return 50 <= Version && 2147483647 >= Version;
7920 case OMPC_use_device_ptr:
7921 return 1 <= Version && 2147483647 >= Version;
7922 default:
7923 return false;
7924 }
7925 break;
7926 case OMPD_target_enter_data:
7927 switch (C) {
7928 case OMPC_depend:
7929 return 1 <= Version && 2147483647 >= Version;
7930 case OMPC_device:
7931 return 1 <= Version && 2147483647 >= Version;
7932 case OMPC_if:
7933 return 1 <= Version && 2147483647 >= Version;
7934 case OMPC_nowait:
7935 return 1 <= Version && 2147483647 >= Version;
7936 case OMPC_map:
7937 return 1 <= Version && 2147483647 >= Version;
7938 default:
7939 return false;
7940 }
7941 break;
7942 case OMPD_target_exit_data:
7943 switch (C) {
7944 case OMPC_depend:
7945 return 1 <= Version && 2147483647 >= Version;
7946 case OMPC_device:
7947 return 1 <= Version && 2147483647 >= Version;
7948 case OMPC_if:
7949 return 1 <= Version && 2147483647 >= Version;
7950 case OMPC_nowait:
7951 return 1 <= Version && 2147483647 >= Version;
7952 case OMPC_map:
7953 return 1 <= Version && 2147483647 >= Version;
7954 default:
7955 return false;
7956 }
7957 break;
7958 case OMPD_target_parallel:
7959 switch (C) {
7960 case OMPC_allocate:
7961 return 1 <= Version && 2147483647 >= Version;
7962 case OMPC_default:
7963 return 1 <= Version && 2147483647 >= Version;
7964 case OMPC_depend:
7965 return 1 <= Version && 2147483647 >= Version;
7966 case OMPC_firstprivate:
7967 return 1 <= Version && 2147483647 >= Version;
7968 case OMPC_has_device_addr:
7969 return 51 <= Version && 2147483647 >= Version;
7970 case OMPC_if:
7971 return 1 <= Version && 2147483647 >= Version;
7972 case OMPC_is_device_ptr:
7973 return 1 <= Version && 2147483647 >= Version;
7974 case OMPC_map:
7975 return 1 <= Version && 2147483647 >= Version;
7976 case OMPC_nowait:
7977 return 1 <= Version && 2147483647 >= Version;
7978 case OMPC_ompx_attribute:
7979 return 1 <= Version && 2147483647 >= Version;
7980 case OMPC_private:
7981 return 1 <= Version && 2147483647 >= Version;
7982 case OMPC_reduction:
7983 return 1 <= Version && 2147483647 >= Version;
7984 case OMPC_shared:
7985 return 1 <= Version && 2147483647 >= Version;
7986 case OMPC_uses_allocators:
7987 return 50 <= Version && 2147483647 >= Version;
7988 case OMPC_defaultmap:
7989 return 1 <= Version && 2147483647 >= Version;
7990 case OMPC_device:
7991 return 1 <= Version && 2147483647 >= Version;
7992 case OMPC_num_threads:
7993 return 1 <= Version && 2147483647 >= Version;
7994 case OMPC_ompx_dyn_cgroup_mem:
7995 return 1 <= Version && 2147483647 >= Version;
7996 case OMPC_proc_bind:
7997 return 1 <= Version && 2147483647 >= Version;
7998 case OMPC_thread_limit:
7999 return 51 <= Version && 2147483647 >= Version;
8000 default:
8001 return false;
8002 }
8003 break;
8004 case OMPD_target_parallel_do:
8005 switch (C) {
8006 case OMPC_allocator:
8007 return 1 <= Version && 2147483647 >= Version;
8008 case OMPC_default:
8009 return 1 <= Version && 2147483647 >= Version;
8010 case OMPC_depend:
8011 return 1 <= Version && 2147483647 >= Version;
8012 case OMPC_firstprivate:
8013 return 1 <= Version && 2147483647 >= Version;
8014 case OMPC_has_device_addr:
8015 return 51 <= Version && 2147483647 >= Version;
8016 case OMPC_if:
8017 return 1 <= Version && 2147483647 >= Version;
8018 case OMPC_is_device_ptr:
8019 return 1 <= Version && 2147483647 >= Version;
8020 case OMPC_lastprivate:
8021 return 1 <= Version && 2147483647 >= Version;
8022 case OMPC_linear:
8023 return 1 <= Version && 2147483647 >= Version;
8024 case OMPC_map:
8025 return 1 <= Version && 2147483647 >= Version;
8026 case OMPC_private:
8027 return 1 <= Version && 2147483647 >= Version;
8028 case OMPC_reduction:
8029 return 1 <= Version && 2147483647 >= Version;
8030 case OMPC_shared:
8031 return 1 <= Version && 2147483647 >= Version;
8032 case OMPC_uses_allocators:
8033 return 1 <= Version && 2147483647 >= Version;
8034 case OMPC_collapse:
8035 return 1 <= Version && 2147483647 >= Version;
8036 case OMPC_defaultmap:
8037 return 1 <= Version && 2147483647 >= Version;
8038 case OMPC_device:
8039 return 1 <= Version && 2147483647 >= Version;
8040 case OMPC_nowait:
8041 return 1 <= Version && 2147483647 >= Version;
8042 case OMPC_num_threads:
8043 return 1 <= Version && 2147483647 >= Version;
8044 case OMPC_order:
8045 return 50 <= Version && 2147483647 >= Version;
8046 case OMPC_ordered:
8047 return 1 <= Version && 2147483647 >= Version;
8048 case OMPC_proc_bind:
8049 return 1 <= Version && 2147483647 >= Version;
8050 case OMPC_schedule:
8051 return 1 <= Version && 2147483647 >= Version;
8052 default:
8053 return false;
8054 }
8055 break;
8056 case OMPD_target_parallel_do_simd:
8057 switch (C) {
8058 case OMPC_aligned:
8059 return 1 <= Version && 2147483647 >= Version;
8060 case OMPC_allocate:
8061 return 1 <= Version && 2147483647 >= Version;
8062 case OMPC_collapse:
8063 return 1 <= Version && 2147483647 >= Version;
8064 case OMPC_default:
8065 return 1 <= Version && 2147483647 >= Version;
8066 case OMPC_defaultmap:
8067 return 1 <= Version && 2147483647 >= Version;
8068 case OMPC_depend:
8069 return 1 <= Version && 2147483647 >= Version;
8070 case OMPC_device:
8071 return 1 <= Version && 2147483647 >= Version;
8072 case OMPC_firstprivate:
8073 return 1 <= Version && 2147483647 >= Version;
8074 case OMPC_has_device_addr:
8075 return 51 <= Version && 2147483647 >= Version;
8076 case OMPC_if:
8077 return 1 <= Version && 2147483647 >= Version;
8078 case OMPC_is_device_ptr:
8079 return 1 <= Version && 2147483647 >= Version;
8080 case OMPC_lastprivate:
8081 return 1 <= Version && 2147483647 >= Version;
8082 case OMPC_linear:
8083 return 1 <= Version && 2147483647 >= Version;
8084 case OMPC_map:
8085 return 1 <= Version && 2147483647 >= Version;
8086 case OMPC_nontemporal:
8087 return 1 <= Version && 2147483647 >= Version;
8088 case OMPC_nowait:
8089 return 1 <= Version && 2147483647 >= Version;
8090 case OMPC_num_threads:
8091 return 1 <= Version && 2147483647 >= Version;
8092 case OMPC_order:
8093 return 50 <= Version && 2147483647 >= Version;
8094 case OMPC_ordered:
8095 return 1 <= Version && 2147483647 >= Version;
8096 case OMPC_private:
8097 return 1 <= Version && 2147483647 >= Version;
8098 case OMPC_proc_bind:
8099 return 1 <= Version && 2147483647 >= Version;
8100 case OMPC_reduction:
8101 return 1 <= Version && 2147483647 >= Version;
8102 case OMPC_safelen:
8103 return 1 <= Version && 2147483647 >= Version;
8104 case OMPC_schedule:
8105 return 1 <= Version && 2147483647 >= Version;
8106 case OMPC_shared:
8107 return 1 <= Version && 2147483647 >= Version;
8108 case OMPC_simdlen:
8109 return 1 <= Version && 2147483647 >= Version;
8110 case OMPC_uses_allocators:
8111 return 1 <= Version && 2147483647 >= Version;
8112 default:
8113 return false;
8114 }
8115 break;
8116 case OMPD_target_parallel_for:
8117 switch (C) {
8118 case OMPC_allocate:
8119 return 1 <= Version && 2147483647 >= Version;
8120 case OMPC_collapse:
8121 return 1 <= Version && 2147483647 >= Version;
8122 case OMPC_default:
8123 return 1 <= Version && 2147483647 >= Version;
8124 case OMPC_defaultmap:
8125 return 1 <= Version && 2147483647 >= Version;
8126 case OMPC_depend:
8127 return 1 <= Version && 2147483647 >= Version;
8128 case OMPC_device:
8129 return 1 <= Version && 2147483647 >= Version;
8130 case OMPC_firstprivate:
8131 return 1 <= Version && 2147483647 >= Version;
8132 case OMPC_has_device_addr:
8133 return 51 <= Version && 2147483647 >= Version;
8134 case OMPC_if:
8135 return 1 <= Version && 2147483647 >= Version;
8136 case OMPC_is_device_ptr:
8137 return 1 <= Version && 2147483647 >= Version;
8138 case OMPC_lastprivate:
8139 return 1 <= Version && 2147483647 >= Version;
8140 case OMPC_linear:
8141 return 1 <= Version && 2147483647 >= Version;
8142 case OMPC_map:
8143 return 1 <= Version && 2147483647 >= Version;
8144 case OMPC_nowait:
8145 return 1 <= Version && 2147483647 >= Version;
8146 case OMPC_num_threads:
8147 return 1 <= Version && 2147483647 >= Version;
8148 case OMPC_ompx_attribute:
8149 return 1 <= Version && 2147483647 >= Version;
8150 case OMPC_order:
8151 return 50 <= Version && 2147483647 >= Version;
8152 case OMPC_ordered:
8153 return 1 <= Version && 2147483647 >= Version;
8154 case OMPC_private:
8155 return 1 <= Version && 2147483647 >= Version;
8156 case OMPC_proc_bind:
8157 return 1 <= Version && 2147483647 >= Version;
8158 case OMPC_reduction:
8159 return 1 <= Version && 2147483647 >= Version;
8160 case OMPC_schedule:
8161 return 1 <= Version && 2147483647 >= Version;
8162 case OMPC_shared:
8163 return 1 <= Version && 2147483647 >= Version;
8164 case OMPC_uses_allocators:
8165 return 50 <= Version && 2147483647 >= Version;
8166 case OMPC_ompx_dyn_cgroup_mem:
8167 return 1 <= Version && 2147483647 >= Version;
8168 case OMPC_thread_limit:
8169 return 51 <= Version && 2147483647 >= Version;
8170 default:
8171 return false;
8172 }
8173 break;
8174 case OMPD_target_parallel_for_simd:
8175 switch (C) {
8176 case OMPC_aligned:
8177 return 1 <= Version && 2147483647 >= Version;
8178 case OMPC_allocate:
8179 return 1 <= Version && 2147483647 >= Version;
8180 case OMPC_collapse:
8181 return 1 <= Version && 2147483647 >= Version;
8182 case OMPC_default:
8183 return 1 <= Version && 2147483647 >= Version;
8184 case OMPC_defaultmap:
8185 return 1 <= Version && 2147483647 >= Version;
8186 case OMPC_depend:
8187 return 1 <= Version && 2147483647 >= Version;
8188 case OMPC_device:
8189 return 1 <= Version && 2147483647 >= Version;
8190 case OMPC_firstprivate:
8191 return 1 <= Version && 2147483647 >= Version;
8192 case OMPC_has_device_addr:
8193 return 51 <= Version && 2147483647 >= Version;
8194 case OMPC_if:
8195 return 1 <= Version && 2147483647 >= Version;
8196 case OMPC_is_device_ptr:
8197 return 1 <= Version && 2147483647 >= Version;
8198 case OMPC_lastprivate:
8199 return 1 <= Version && 2147483647 >= Version;
8200 case OMPC_linear:
8201 return 1 <= Version && 2147483647 >= Version;
8202 case OMPC_map:
8203 return 1 <= Version && 2147483647 >= Version;
8204 case OMPC_nontemporal:
8205 return 50 <= Version && 2147483647 >= Version;
8206 case OMPC_nowait:
8207 return 1 <= Version && 2147483647 >= Version;
8208 case OMPC_num_threads:
8209 return 1 <= Version && 2147483647 >= Version;
8210 case OMPC_ompx_attribute:
8211 return 1 <= Version && 2147483647 >= Version;
8212 case OMPC_order:
8213 return 50 <= Version && 2147483647 >= Version;
8214 case OMPC_ordered:
8215 return 1 <= Version && 2147483647 >= Version;
8216 case OMPC_private:
8217 return 1 <= Version && 2147483647 >= Version;
8218 case OMPC_proc_bind:
8219 return 1 <= Version && 2147483647 >= Version;
8220 case OMPC_reduction:
8221 return 1 <= Version && 2147483647 >= Version;
8222 case OMPC_safelen:
8223 return 1 <= Version && 2147483647 >= Version;
8224 case OMPC_schedule:
8225 return 1 <= Version && 2147483647 >= Version;
8226 case OMPC_shared:
8227 return 1 <= Version && 2147483647 >= Version;
8228 case OMPC_simdlen:
8229 return 1 <= Version && 2147483647 >= Version;
8230 case OMPC_uses_allocators:
8231 return 50 <= Version && 2147483647 >= Version;
8232 case OMPC_ompx_dyn_cgroup_mem:
8233 return 1 <= Version && 2147483647 >= Version;
8234 case OMPC_thread_limit:
8235 return 51 <= Version && 2147483647 >= Version;
8236 default:
8237 return false;
8238 }
8239 break;
8240 case OMPD_target_simd:
8241 switch (C) {
8242 case OMPC_aligned:
8243 return 1 <= Version && 2147483647 >= Version;
8244 case OMPC_allocate:
8245 return 1 <= Version && 2147483647 >= Version;
8246 case OMPC_depend:
8247 return 1 <= Version && 2147483647 >= Version;
8248 case OMPC_firstprivate:
8249 return 1 <= Version && 2147483647 >= Version;
8250 case OMPC_has_device_addr:
8251 return 51 <= Version && 2147483647 >= Version;
8252 case OMPC_if:
8253 return 1 <= Version && 2147483647 >= Version;
8254 case OMPC_is_device_ptr:
8255 return 1 <= Version && 2147483647 >= Version;
8256 case OMPC_lastprivate:
8257 return 1 <= Version && 2147483647 >= Version;
8258 case OMPC_linear:
8259 return 1 <= Version && 2147483647 >= Version;
8260 case OMPC_map:
8261 return 1 <= Version && 2147483647 >= Version;
8262 case OMPC_nontemporal:
8263 return 50 <= Version && 2147483647 >= Version;
8264 case OMPC_nowait:
8265 return 1 <= Version && 2147483647 >= Version;
8266 case OMPC_ompx_attribute:
8267 return 1 <= Version && 2147483647 >= Version;
8268 case OMPC_private:
8269 return 1 <= Version && 2147483647 >= Version;
8270 case OMPC_reduction:
8271 return 1 <= Version && 2147483647 >= Version;
8272 case OMPC_shared:
8273 return 1 <= Version && 2147483647 >= Version;
8274 case OMPC_uses_allocators:
8275 return 50 <= Version && 2147483647 >= Version;
8276 case OMPC_collapse:
8277 return 1 <= Version && 2147483647 >= Version;
8278 case OMPC_defaultmap:
8279 return 1 <= Version && 2147483647 >= Version;
8280 case OMPC_device:
8281 return 1 <= Version && 2147483647 >= Version;
8282 case OMPC_num_threads:
8283 return 1 <= Version && 2147483647 >= Version;
8284 case OMPC_ompx_dyn_cgroup_mem:
8285 return 1 <= Version && 2147483647 >= Version;
8286 case OMPC_order:
8287 return 50 <= Version && 2147483647 >= Version;
8288 case OMPC_proc_bind:
8289 return 1 <= Version && 2147483647 >= Version;
8290 case OMPC_safelen:
8291 return 1 <= Version && 2147483647 >= Version;
8292 case OMPC_schedule:
8293 return 1 <= Version && 2147483647 >= Version;
8294 case OMPC_simdlen:
8295 return 1 <= Version && 2147483647 >= Version;
8296 case OMPC_thread_limit:
8297 return 51 <= Version && 2147483647 >= Version;
8298 default:
8299 return false;
8300 }
8301 break;
8302 case OMPD_target_teams:
8303 switch (C) {
8304 case OMPC_allocate:
8305 return 1 <= Version && 2147483647 >= Version;
8306 case OMPC_depend:
8307 return 1 <= Version && 2147483647 >= Version;
8308 case OMPC_firstprivate:
8309 return 1 <= Version && 2147483647 >= Version;
8310 case OMPC_has_device_addr:
8311 return 51 <= Version && 2147483647 >= Version;
8312 case OMPC_if:
8313 return 1 <= Version && 2147483647 >= Version;
8314 case OMPC_is_device_ptr:
8315 return 1 <= Version && 2147483647 >= Version;
8316 case OMPC_map:
8317 return 1 <= Version && 2147483647 >= Version;
8318 case OMPC_ompx_attribute:
8319 return 1 <= Version && 2147483647 >= Version;
8320 case OMPC_private:
8321 return 1 <= Version && 2147483647 >= Version;
8322 case OMPC_reduction:
8323 return 1 <= Version && 2147483647 >= Version;
8324 case OMPC_shared:
8325 return 1 <= Version && 2147483647 >= Version;
8326 case OMPC_uses_allocators:
8327 return 50 <= Version && 2147483647 >= Version;
8328 case OMPC_default:
8329 return 1 <= Version && 2147483647 >= Version;
8330 case OMPC_defaultmap:
8331 return 1 <= Version && 2147483647 >= Version;
8332 case OMPC_device:
8333 return 1 <= Version && 2147483647 >= Version;
8334 case OMPC_nowait:
8335 return 1 <= Version && 2147483647 >= Version;
8336 case OMPC_num_teams:
8337 return 1 <= Version && 2147483647 >= Version;
8338 case OMPC_ompx_dyn_cgroup_mem:
8339 return 1 <= Version && 2147483647 >= Version;
8340 case OMPC_ompx_bare:
8341 return 1 <= Version && 2147483647 >= Version;
8342 case OMPC_thread_limit:
8343 return 1 <= Version && 2147483647 >= Version;
8344 default:
8345 return false;
8346 }
8347 break;
8348 case OMPD_target_teams_distribute:
8349 switch (C) {
8350 case OMPC_allocate:
8351 return 1 <= Version && 2147483647 >= Version;
8352 case OMPC_depend:
8353 return 1 <= Version && 2147483647 >= Version;
8354 case OMPC_firstprivate:
8355 return 1 <= Version && 2147483647 >= Version;
8356 case OMPC_has_device_addr:
8357 return 51 <= Version && 2147483647 >= Version;
8358 case OMPC_if:
8359 return 1 <= Version && 2147483647 >= Version;
8360 case OMPC_is_device_ptr:
8361 return 1 <= Version && 2147483647 >= Version;
8362 case OMPC_lastprivate:
8363 return 1 <= Version && 2147483647 >= Version;
8364 case OMPC_map:
8365 return 1 <= Version && 2147483647 >= Version;
8366 case OMPC_ompx_attribute:
8367 return 1 <= Version && 2147483647 >= Version;
8368 case OMPC_private:
8369 return 1 <= Version && 2147483647 >= Version;
8370 case OMPC_reduction:
8371 return 1 <= Version && 2147483647 >= Version;
8372 case OMPC_shared:
8373 return 1 <= Version && 2147483647 >= Version;
8374 case OMPC_uses_allocators:
8375 return 50 <= Version && 2147483647 >= Version;
8376 case OMPC_collapse:
8377 return 1 <= Version && 2147483647 >= Version;
8378 case OMPC_default:
8379 return 1 <= Version && 2147483647 >= Version;
8380 case OMPC_defaultmap:
8381 return 1 <= Version && 2147483647 >= Version;
8382 case OMPC_device:
8383 return 1 <= Version && 2147483647 >= Version;
8384 case OMPC_dist_schedule:
8385 return 1 <= Version && 2147483647 >= Version;
8386 case OMPC_nowait:
8387 return 1 <= Version && 2147483647 >= Version;
8388 case OMPC_num_teams:
8389 return 1 <= Version && 2147483647 >= Version;
8390 case OMPC_ompx_dyn_cgroup_mem:
8391 return 1 <= Version && 2147483647 >= Version;
8392 case OMPC_order:
8393 return 50 <= Version && 2147483647 >= Version;
8394 case OMPC_thread_limit:
8395 return 1 <= Version && 2147483647 >= Version;
8396 default:
8397 return false;
8398 }
8399 break;
8400 case OMPD_target_teams_distribute_parallel_do:
8401 switch (C) {
8402 case OMPC_allocate:
8403 return 1 <= Version && 2147483647 >= Version;
8404 case OMPC_depend:
8405 return 1 <= Version && 2147483647 >= Version;
8406 case OMPC_firstprivate:
8407 return 1 <= Version && 2147483647 >= Version;
8408 case OMPC_has_device_addr:
8409 return 51 <= Version && 2147483647 >= Version;
8410 case OMPC_if:
8411 return 1 <= Version && 2147483647 >= Version;
8412 case OMPC_is_device_ptr:
8413 return 1 <= Version && 2147483647 >= Version;
8414 case OMPC_lastprivate:
8415 return 1 <= Version && 2147483647 >= Version;
8416 case OMPC_linear:
8417 return 1 <= Version && 2147483647 >= Version;
8418 case OMPC_map:
8419 return 1 <= Version && 2147483647 >= Version;
8420 case OMPC_private:
8421 return 1 <= Version && 2147483647 >= Version;
8422 case OMPC_reduction:
8423 return 1 <= Version && 2147483647 >= Version;
8424 case OMPC_shared:
8425 return 1 <= Version && 2147483647 >= Version;
8426 case OMPC_uses_allocators:
8427 return 1 <= Version && 2147483647 >= Version;
8428 case OMPC_collapse:
8429 return 1 <= Version && 2147483647 >= Version;
8430 case OMPC_default:
8431 return 1 <= Version && 2147483647 >= Version;
8432 case OMPC_defaultmap:
8433 return 1 <= Version && 2147483647 >= Version;
8434 case OMPC_device:
8435 return 1 <= Version && 2147483647 >= Version;
8436 case OMPC_dist_schedule:
8437 return 1 <= Version && 2147483647 >= Version;
8438 case OMPC_nowait:
8439 return 1 <= Version && 2147483647 >= Version;
8440 case OMPC_num_teams:
8441 return 1 <= Version && 2147483647 >= Version;
8442 case OMPC_num_threads:
8443 return 1 <= Version && 2147483647 >= Version;
8444 case OMPC_order:
8445 return 50 <= Version && 2147483647 >= Version;
8446 case OMPC_proc_bind:
8447 return 1 <= Version && 2147483647 >= Version;
8448 case OMPC_schedule:
8449 return 1 <= Version && 2147483647 >= Version;
8450 case OMPC_thread_limit:
8451 return 1 <= Version && 2147483647 >= Version;
8452 default:
8453 return false;
8454 }
8455 break;
8456 case OMPD_target_teams_distribute_parallel_do_simd:
8457 switch (C) {
8458 case OMPC_aligned:
8459 return 1 <= Version && 2147483647 >= Version;
8460 case OMPC_allocate:
8461 return 1 <= Version && 2147483647 >= Version;
8462 case OMPC_depend:
8463 return 1 <= Version && 2147483647 >= Version;
8464 case OMPC_firstprivate:
8465 return 1 <= Version && 2147483647 >= Version;
8466 case OMPC_has_device_addr:
8467 return 51 <= Version && 2147483647 >= Version;
8468 case OMPC_if:
8469 return 1 <= Version && 2147483647 >= Version;
8470 case OMPC_is_device_ptr:
8471 return 1 <= Version && 2147483647 >= Version;
8472 case OMPC_lastprivate:
8473 return 1 <= Version && 2147483647 >= Version;
8474 case OMPC_linear:
8475 return 1 <= Version && 2147483647 >= Version;
8476 case OMPC_map:
8477 return 1 <= Version && 2147483647 >= Version;
8478 case OMPC_nontemporal:
8479 return 1 <= Version && 2147483647 >= Version;
8480 case OMPC_private:
8481 return 1 <= Version && 2147483647 >= Version;
8482 case OMPC_reduction:
8483 return 1 <= Version && 2147483647 >= Version;
8484 case OMPC_shared:
8485 return 1 <= Version && 2147483647 >= Version;
8486 case OMPC_uses_allocators:
8487 return 1 <= Version && 2147483647 >= Version;
8488 case OMPC_collapse:
8489 return 1 <= Version && 2147483647 >= Version;
8490 case OMPC_default:
8491 return 1 <= Version && 2147483647 >= Version;
8492 case OMPC_defaultmap:
8493 return 1 <= Version && 2147483647 >= Version;
8494 case OMPC_device:
8495 return 1 <= Version && 2147483647 >= Version;
8496 case OMPC_dist_schedule:
8497 return 1 <= Version && 2147483647 >= Version;
8498 case OMPC_nowait:
8499 return 1 <= Version && 2147483647 >= Version;
8500 case OMPC_num_teams:
8501 return 1 <= Version && 2147483647 >= Version;
8502 case OMPC_num_threads:
8503 return 1 <= Version && 2147483647 >= Version;
8504 case OMPC_order:
8505 return 50 <= Version && 2147483647 >= Version;
8506 case OMPC_proc_bind:
8507 return 1 <= Version && 2147483647 >= Version;
8508 case OMPC_safelen:
8509 return 1 <= Version && 2147483647 >= Version;
8510 case OMPC_schedule:
8511 return 1 <= Version && 2147483647 >= Version;
8512 case OMPC_simdlen:
8513 return 1 <= Version && 2147483647 >= Version;
8514 case OMPC_thread_limit:
8515 return 1 <= Version && 2147483647 >= Version;
8516 default:
8517 return false;
8518 }
8519 break;
8520 case OMPD_target_teams_distribute_parallel_for:
8521 switch (C) {
8522 case OMPC_allocate:
8523 return 1 <= Version && 2147483647 >= Version;
8524 case OMPC_collapse:
8525 return 1 <= Version && 2147483647 >= Version;
8526 case OMPC_default:
8527 return 1 <= Version && 2147483647 >= Version;
8528 case OMPC_defaultmap:
8529 return 1 <= Version && 2147483647 >= Version;
8530 case OMPC_depend:
8531 return 1 <= Version && 2147483647 >= Version;
8532 case OMPC_device:
8533 return 1 <= Version && 2147483647 >= Version;
8534 case OMPC_dist_schedule:
8535 return 1 <= Version && 2147483647 >= Version;
8536 case OMPC_firstprivate:
8537 return 1 <= Version && 2147483647 >= Version;
8538 case OMPC_has_device_addr:
8539 return 51 <= Version && 2147483647 >= Version;
8540 case OMPC_if:
8541 return 1 <= Version && 2147483647 >= Version;
8542 case OMPC_is_device_ptr:
8543 return 1 <= Version && 2147483647 >= Version;
8544 case OMPC_lastprivate:
8545 return 1 <= Version && 2147483647 >= Version;
8546 case OMPC_map:
8547 return 1 <= Version && 2147483647 >= Version;
8548 case OMPC_nowait:
8549 return 1 <= Version && 2147483647 >= Version;
8550 case OMPC_num_teams:
8551 return 1 <= Version && 2147483647 >= Version;
8552 case OMPC_num_threads:
8553 return 1 <= Version && 2147483647 >= Version;
8554 case OMPC_ompx_attribute:
8555 return 1 <= Version && 2147483647 >= Version;
8556 case OMPC_order:
8557 return 50 <= Version && 2147483647 >= Version;
8558 case OMPC_private:
8559 return 1 <= Version && 2147483647 >= Version;
8560 case OMPC_proc_bind:
8561 return 1 <= Version && 2147483647 >= Version;
8562 case OMPC_reduction:
8563 return 1 <= Version && 2147483647 >= Version;
8564 case OMPC_schedule:
8565 return 1 <= Version && 2147483647 >= Version;
8566 case OMPC_shared:
8567 return 1 <= Version && 2147483647 >= Version;
8568 case OMPC_thread_limit:
8569 return 1 <= Version && 2147483647 >= Version;
8570 case OMPC_uses_allocators:
8571 return 50 <= Version && 2147483647 >= Version;
8572 case OMPC_ompx_dyn_cgroup_mem:
8573 return 1 <= Version && 2147483647 >= Version;
8574 default:
8575 return false;
8576 }
8577 break;
8578 case OMPD_target_teams_distribute_parallel_for_simd:
8579 switch (C) {
8580 case OMPC_aligned:
8581 return 1 <= Version && 2147483647 >= Version;
8582 case OMPC_allocate:
8583 return 1 <= Version && 2147483647 >= Version;
8584 case OMPC_collapse:
8585 return 1 <= Version && 2147483647 >= Version;
8586 case OMPC_default:
8587 return 1 <= Version && 2147483647 >= Version;
8588 case OMPC_defaultmap:
8589 return 1 <= Version && 2147483647 >= Version;
8590 case OMPC_depend:
8591 return 1 <= Version && 2147483647 >= Version;
8592 case OMPC_device:
8593 return 1 <= Version && 2147483647 >= Version;
8594 case OMPC_dist_schedule:
8595 return 1 <= Version && 2147483647 >= Version;
8596 case OMPC_firstprivate:
8597 return 1 <= Version && 2147483647 >= Version;
8598 case OMPC_has_device_addr:
8599 return 51 <= Version && 2147483647 >= Version;
8600 case OMPC_if:
8601 return 1 <= Version && 2147483647 >= Version;
8602 case OMPC_is_device_ptr:
8603 return 1 <= Version && 2147483647 >= Version;
8604 case OMPC_lastprivate:
8605 return 1 <= Version && 2147483647 >= Version;
8606 case OMPC_linear:
8607 return 1 <= Version && 2147483647 >= Version;
8608 case OMPC_map:
8609 return 1 <= Version && 2147483647 >= Version;
8610 case OMPC_nontemporal:
8611 return 50 <= Version && 2147483647 >= Version;
8612 case OMPC_nowait:
8613 return 1 <= Version && 2147483647 >= Version;
8614 case OMPC_num_teams:
8615 return 1 <= Version && 2147483647 >= Version;
8616 case OMPC_num_threads:
8617 return 1 <= Version && 2147483647 >= Version;
8618 case OMPC_ompx_attribute:
8619 return 1 <= Version && 2147483647 >= Version;
8620 case OMPC_order:
8621 return 50 <= Version && 2147483647 >= Version;
8622 case OMPC_private:
8623 return 1 <= Version && 2147483647 >= Version;
8624 case OMPC_proc_bind:
8625 return 1 <= Version && 2147483647 >= Version;
8626 case OMPC_reduction:
8627 return 1 <= Version && 2147483647 >= Version;
8628 case OMPC_safelen:
8629 return 1 <= Version && 2147483647 >= Version;
8630 case OMPC_schedule:
8631 return 1 <= Version && 2147483647 >= Version;
8632 case OMPC_shared:
8633 return 1 <= Version && 2147483647 >= Version;
8634 case OMPC_simdlen:
8635 return 1 <= Version && 2147483647 >= Version;
8636 case OMPC_thread_limit:
8637 return 1 <= Version && 2147483647 >= Version;
8638 case OMPC_uses_allocators:
8639 return 50 <= Version && 2147483647 >= Version;
8640 case OMPC_ompx_dyn_cgroup_mem:
8641 return 1 <= Version && 2147483647 >= Version;
8642 default:
8643 return false;
8644 }
8645 break;
8646 case OMPD_target_teams_distribute_simd:
8647 switch (C) {
8648 case OMPC_aligned:
8649 return 1 <= Version && 2147483647 >= Version;
8650 case OMPC_allocate:
8651 return 1 <= Version && 2147483647 >= Version;
8652 case OMPC_depend:
8653 return 1 <= Version && 2147483647 >= Version;
8654 case OMPC_firstprivate:
8655 return 1 <= Version && 2147483647 >= Version;
8656 case OMPC_has_device_addr:
8657 return 51 <= Version && 2147483647 >= Version;
8658 case OMPC_if:
8659 return 1 <= Version && 2147483647 >= Version;
8660 case OMPC_is_device_ptr:
8661 return 1 <= Version && 2147483647 >= Version;
8662 case OMPC_lastprivate:
8663 return 1 <= Version && 2147483647 >= Version;
8664 case OMPC_linear:
8665 return 1 <= Version && 2147483647 >= Version;
8666 case OMPC_map:
8667 return 1 <= Version && 2147483647 >= Version;
8668 case OMPC_nontemporal:
8669 return 50 <= Version && 2147483647 >= Version;
8670 case OMPC_ompx_attribute:
8671 return 1 <= Version && 2147483647 >= Version;
8672 case OMPC_private:
8673 return 1 <= Version && 2147483647 >= Version;
8674 case OMPC_reduction:
8675 return 1 <= Version && 2147483647 >= Version;
8676 case OMPC_shared:
8677 return 1 <= Version && 2147483647 >= Version;
8678 case OMPC_uses_allocators:
8679 return 50 <= Version && 2147483647 >= Version;
8680 case OMPC_collapse:
8681 return 1 <= Version && 2147483647 >= Version;
8682 case OMPC_defaultmap:
8683 return 1 <= Version && 2147483647 >= Version;
8684 case OMPC_device:
8685 return 1 <= Version && 2147483647 >= Version;
8686 case OMPC_dist_schedule:
8687 return 1 <= Version && 2147483647 >= Version;
8688 case OMPC_nowait:
8689 return 1 <= Version && 2147483647 >= Version;
8690 case OMPC_num_teams:
8691 return 1 <= Version && 2147483647 >= Version;
8692 case OMPC_ompx_dyn_cgroup_mem:
8693 return 1 <= Version && 2147483647 >= Version;
8694 case OMPC_order:
8695 return 50 <= Version && 2147483647 >= Version;
8696 case OMPC_safelen:
8697 return 1 <= Version && 2147483647 >= Version;
8698 case OMPC_simdlen:
8699 return 1 <= Version && 2147483647 >= Version;
8700 case OMPC_thread_limit:
8701 return 1 <= Version && 2147483647 >= Version;
8702 default:
8703 return false;
8704 }
8705 break;
8706 case OMPD_target_update:
8707 switch (C) {
8708 case OMPC_depend:
8709 return 1 <= Version && 2147483647 >= Version;
8710 case OMPC_from:
8711 return 1 <= Version && 2147483647 >= Version;
8712 case OMPC_to:
8713 return 1 <= Version && 2147483647 >= Version;
8714 case OMPC_device:
8715 return 1 <= Version && 2147483647 >= Version;
8716 case OMPC_if:
8717 return 1 <= Version && 2147483647 >= Version;
8718 case OMPC_nowait:
8719 return 1 <= Version && 2147483647 >= Version;
8720 default:
8721 return false;
8722 }
8723 break;
8724 case OMPD_task:
8725 switch (C) {
8726 case OMPC_affinity:
8727 return 50 <= Version && 2147483647 >= Version;
8728 case OMPC_allocate:
8729 return 1 <= Version && 2147483647 >= Version;
8730 case OMPC_depend:
8731 return 1 <= Version && 2147483647 >= Version;
8732 case OMPC_firstprivate:
8733 return 1 <= Version && 2147483647 >= Version;
8734 case OMPC_in_reduction:
8735 return 1 <= Version && 2147483647 >= Version;
8736 case OMPC_mergeable:
8737 return 1 <= Version && 2147483647 >= Version;
8738 case OMPC_private:
8739 return 1 <= Version && 2147483647 >= Version;
8740 case OMPC_shared:
8741 return 1 <= Version && 2147483647 >= Version;
8742 case OMPC_untied:
8743 return 1 <= Version && 2147483647 >= Version;
8744 case OMPC_default:
8745 return 1 <= Version && 2147483647 >= Version;
8746 case OMPC_detach:
8747 return 50 <= Version && 2147483647 >= Version;
8748 case OMPC_final:
8749 return 1 <= Version && 2147483647 >= Version;
8750 case OMPC_if:
8751 return 1 <= Version && 2147483647 >= Version;
8752 case OMPC_priority:
8753 return 1 <= Version && 2147483647 >= Version;
8754 default:
8755 return false;
8756 }
8757 break;
8758 case OMPD_taskgroup:
8759 switch (C) {
8760 case OMPC_allocate:
8761 return 50 <= Version && 2147483647 >= Version;
8762 case OMPC_task_reduction:
8763 return 50 <= Version && 2147483647 >= Version;
8764 default:
8765 return false;
8766 }
8767 break;
8768 case OMPD_taskloop:
8769 switch (C) {
8770 case OMPC_allocate:
8771 return 1 <= Version && 2147483647 >= Version;
8772 case OMPC_firstprivate:
8773 return 1 <= Version && 2147483647 >= Version;
8774 case OMPC_in_reduction:
8775 return 1 <= Version && 2147483647 >= Version;
8776 case OMPC_lastprivate:
8777 return 1 <= Version && 2147483647 >= Version;
8778 case OMPC_mergeable:
8779 return 1 <= Version && 2147483647 >= Version;
8780 case OMPC_nogroup:
8781 return 1 <= Version && 2147483647 >= Version;
8782 case OMPC_private:
8783 return 1 <= Version && 2147483647 >= Version;
8784 case OMPC_reduction:
8785 return 1 <= Version && 2147483647 >= Version;
8786 case OMPC_shared:
8787 return 1 <= Version && 2147483647 >= Version;
8788 case OMPC_untied:
8789 return 1 <= Version && 2147483647 >= Version;
8790 case OMPC_collapse:
8791 return 1 <= Version && 2147483647 >= Version;
8792 case OMPC_default:
8793 return 1 <= Version && 2147483647 >= Version;
8794 case OMPC_final:
8795 return 1 <= Version && 2147483647 >= Version;
8796 case OMPC_if:
8797 return 1 <= Version && 2147483647 >= Version;
8798 case OMPC_priority:
8799 return 1 <= Version && 2147483647 >= Version;
8800 case OMPC_grainsize:
8801 return 1 <= Version && 2147483647 >= Version;
8802 case OMPC_num_tasks:
8803 return 1 <= Version && 2147483647 >= Version;
8804 default:
8805 return false;
8806 }
8807 break;
8808 case OMPD_taskloop_simd:
8809 switch (C) {
8810 case OMPC_aligned:
8811 return 1 <= Version && 2147483647 >= Version;
8812 case OMPC_allocate:
8813 return 1 <= Version && 2147483647 >= Version;
8814 case OMPC_default:
8815 return 1 <= Version && 2147483647 >= Version;
8816 case OMPC_firstprivate:
8817 return 1 <= Version && 2147483647 >= Version;
8818 case OMPC_if:
8819 return 1 <= Version && 2147483647 >= Version;
8820 case OMPC_in_reduction:
8821 return 1 <= Version && 2147483647 >= Version;
8822 case OMPC_lastprivate:
8823 return 1 <= Version && 2147483647 >= Version;
8824 case OMPC_linear:
8825 return 1 <= Version && 2147483647 >= Version;
8826 case OMPC_mergeable:
8827 return 1 <= Version && 2147483647 >= Version;
8828 case OMPC_nogroup:
8829 return 1 <= Version && 2147483647 >= Version;
8830 case OMPC_nontemporal:
8831 return 50 <= Version && 2147483647 >= Version;
8832 case OMPC_private:
8833 return 1 <= Version && 2147483647 >= Version;
8834 case OMPC_reduction:
8835 return 1 <= Version && 2147483647 >= Version;
8836 case OMPC_shared:
8837 return 1 <= Version && 2147483647 >= Version;
8838 case OMPC_untied:
8839 return 1 <= Version && 2147483647 >= Version;
8840 case OMPC_collapse:
8841 return 1 <= Version && 2147483647 >= Version;
8842 case OMPC_final:
8843 return 1 <= Version && 2147483647 >= Version;
8844 case OMPC_order:
8845 return 50 <= Version && 2147483647 >= Version;
8846 case OMPC_priority:
8847 return 1 <= Version && 2147483647 >= Version;
8848 case OMPC_safelen:
8849 return 1 <= Version && 2147483647 >= Version;
8850 case OMPC_simdlen:
8851 return 1 <= Version && 2147483647 >= Version;
8852 case OMPC_grainsize:
8853 return 1 <= Version && 2147483647 >= Version;
8854 case OMPC_num_tasks:
8855 return 1 <= Version && 2147483647 >= Version;
8856 default:
8857 return false;
8858 }
8859 break;
8860 case OMPD_taskwait:
8861 switch (C) {
8862 case OMPC_depend:
8863 return 50 <= Version && 2147483647 >= Version;
8864 case OMPC_nowait:
8865 return 51 <= Version && 2147483647 >= Version;
8866 default:
8867 return false;
8868 }
8869 break;
8870 case OMPD_taskyield:
8871 return false;
8872 break;
8873 case OMPD_teams:
8874 switch (C) {
8875 case OMPC_allocate:
8876 return 1 <= Version && 2147483647 >= Version;
8877 case OMPC_firstprivate:
8878 return 1 <= Version && 2147483647 >= Version;
8879 case OMPC_ompx_attribute:
8880 return 1 <= Version && 2147483647 >= Version;
8881 case OMPC_private:
8882 return 1 <= Version && 2147483647 >= Version;
8883 case OMPC_reduction:
8884 return 1 <= Version && 2147483647 >= Version;
8885 case OMPC_shared:
8886 return 1 <= Version && 2147483647 >= Version;
8887 case OMPC_default:
8888 return 1 <= Version && 2147483647 >= Version;
8889 case OMPC_if:
8890 return 52 <= Version && 2147483647 >= Version;
8891 case OMPC_num_teams:
8892 return 1 <= Version && 2147483647 >= Version;
8893 case OMPC_thread_limit:
8894 return 1 <= Version && 2147483647 >= Version;
8895 default:
8896 return false;
8897 }
8898 break;
8899 case OMPD_teams_distribute:
8900 switch (C) {
8901 case OMPC_allocate:
8902 return 1 <= Version && 2147483647 >= Version;
8903 case OMPC_collapse:
8904 return 1 <= Version && 2147483647 >= Version;
8905 case OMPC_default:
8906 return 1 <= Version && 2147483647 >= Version;
8907 case OMPC_dist_schedule:
8908 return 1 <= Version && 2147483647 >= Version;
8909 case OMPC_firstprivate:
8910 return 1 <= Version && 2147483647 >= Version;
8911 case OMPC_lastprivate:
8912 return 1 <= Version && 2147483647 >= Version;
8913 case OMPC_num_teams:
8914 return 1 <= Version && 2147483647 >= Version;
8915 case OMPC_ompx_attribute:
8916 return 1 <= Version && 2147483647 >= Version;
8917 case OMPC_private:
8918 return 1 <= Version && 2147483647 >= Version;
8919 case OMPC_reduction:
8920 return 1 <= Version && 2147483647 >= Version;
8921 case OMPC_shared:
8922 return 1 <= Version && 2147483647 >= Version;
8923 case OMPC_thread_limit:
8924 return 1 <= Version && 2147483647 >= Version;
8925 case OMPC_if:
8926 return 1 <= Version && 2147483647 >= Version;
8927 case OMPC_order:
8928 return 50 <= Version && 2147483647 >= Version;
8929 default:
8930 return false;
8931 }
8932 break;
8933 case OMPD_teams_distribute_parallel_do:
8934 switch (C) {
8935 case OMPC_allocate:
8936 return 1 <= Version && 2147483647 >= Version;
8937 case OMPC_copyin:
8938 return 1 <= Version && 2147483647 >= Version;
8939 case OMPC_firstprivate:
8940 return 1 <= Version && 2147483647 >= Version;
8941 case OMPC_if:
8942 return 1 <= Version && 2147483647 >= Version;
8943 case OMPC_lastprivate:
8944 return 1 <= Version && 2147483647 >= Version;
8945 case OMPC_linear:
8946 return 1 <= Version && 2147483647 >= Version;
8947 case OMPC_private:
8948 return 1 <= Version && 2147483647 >= Version;
8949 case OMPC_reduction:
8950 return 1 <= Version && 2147483647 >= Version;
8951 case OMPC_shared:
8952 return 1 <= Version && 2147483647 >= Version;
8953 case OMPC_collapse:
8954 return 1 <= Version && 2147483647 >= Version;
8955 case OMPC_default:
8956 return 1 <= Version && 2147483647 >= Version;
8957 case OMPC_dist_schedule:
8958 return 1 <= Version && 2147483647 >= Version;
8959 case OMPC_num_teams:
8960 return 1 <= Version && 2147483647 >= Version;
8961 case OMPC_num_threads:
8962 return 1 <= Version && 2147483647 >= Version;
8963 case OMPC_order:
8964 return 50 <= Version && 2147483647 >= Version;
8965 case OMPC_proc_bind:
8966 return 1 <= Version && 2147483647 >= Version;
8967 case OMPC_schedule:
8968 return 1 <= Version && 2147483647 >= Version;
8969 case OMPC_thread_limit:
8970 return 1 <= Version && 2147483647 >= Version;
8971 default:
8972 return false;
8973 }
8974 break;
8975 case OMPD_teams_distribute_parallel_do_simd:
8976 switch (C) {
8977 case OMPC_aligned:
8978 return 1 <= Version && 2147483647 >= Version;
8979 case OMPC_allocate:
8980 return 1 <= Version && 2147483647 >= Version;
8981 case OMPC_firstprivate:
8982 return 1 <= Version && 2147483647 >= Version;
8983 case OMPC_if:
8984 return 1 <= Version && 2147483647 >= Version;
8985 case OMPC_lastprivate:
8986 return 1 <= Version && 2147483647 >= Version;
8987 case OMPC_linear:
8988 return 1 <= Version && 2147483647 >= Version;
8989 case OMPC_nontemporal:
8990 return 1 <= Version && 2147483647 >= Version;
8991 case OMPC_private:
8992 return 1 <= Version && 2147483647 >= Version;
8993 case OMPC_reduction:
8994 return 1 <= Version && 2147483647 >= Version;
8995 case OMPC_shared:
8996 return 1 <= Version && 2147483647 >= Version;
8997 case OMPC_collapse:
8998 return 1 <= Version && 2147483647 >= Version;
8999 case OMPC_default:
9000 return 1 <= Version && 2147483647 >= Version;
9001 case OMPC_dist_schedule:
9002 return 1 <= Version && 2147483647 >= Version;
9003 case OMPC_num_teams:
9004 return 1 <= Version && 2147483647 >= Version;
9005 case OMPC_num_threads:
9006 return 1 <= Version && 2147483647 >= Version;
9007 case OMPC_order:
9008 return 50 <= Version && 2147483647 >= Version;
9009 case OMPC_proc_bind:
9010 return 1 <= Version && 2147483647 >= Version;
9011 case OMPC_safelen:
9012 return 1 <= Version && 2147483647 >= Version;
9013 case OMPC_schedule:
9014 return 1 <= Version && 2147483647 >= Version;
9015 case OMPC_simdlen:
9016 return 1 <= Version && 2147483647 >= Version;
9017 case OMPC_thread_limit:
9018 return 1 <= Version && 2147483647 >= Version;
9019 default:
9020 return false;
9021 }
9022 break;
9023 case OMPD_teams_distribute_parallel_for:
9024 switch (C) {
9025 case OMPC_allocate:
9026 return 1 <= Version && 2147483647 >= Version;
9027 case OMPC_collapse:
9028 return 1 <= Version && 2147483647 >= Version;
9029 case OMPC_copyin:
9030 return 1 <= Version && 2147483647 >= Version;
9031 case OMPC_default:
9032 return 1 <= Version && 2147483647 >= Version;
9033 case OMPC_dist_schedule:
9034 return 1 <= Version && 2147483647 >= Version;
9035 case OMPC_firstprivate:
9036 return 1 <= Version && 2147483647 >= Version;
9037 case OMPC_if:
9038 return 1 <= Version && 2147483647 >= Version;
9039 case OMPC_lastprivate:
9040 return 1 <= Version && 2147483647 >= Version;
9041 case OMPC_num_teams:
9042 return 1 <= Version && 2147483647 >= Version;
9043 case OMPC_num_threads:
9044 return 1 <= Version && 2147483647 >= Version;
9045 case OMPC_ompx_attribute:
9046 return 1 <= Version && 2147483647 >= Version;
9047 case OMPC_order:
9048 return 50 <= Version && 2147483647 >= Version;
9049 case OMPC_private:
9050 return 1 <= Version && 2147483647 >= Version;
9051 case OMPC_proc_bind:
9052 return 1 <= Version && 2147483647 >= Version;
9053 case OMPC_reduction:
9054 return 1 <= Version && 2147483647 >= Version;
9055 case OMPC_schedule:
9056 return 1 <= Version && 2147483647 >= Version;
9057 case OMPC_shared:
9058 return 1 <= Version && 2147483647 >= Version;
9059 case OMPC_thread_limit:
9060 return 1 <= Version && 2147483647 >= Version;
9061 default:
9062 return false;
9063 }
9064 break;
9065 case OMPD_teams_distribute_parallel_for_simd:
9066 switch (C) {
9067 case OMPC_aligned:
9068 return 1 <= Version && 2147483647 >= Version;
9069 case OMPC_allocate:
9070 return 1 <= Version && 2147483647 >= Version;
9071 case OMPC_collapse:
9072 return 1 <= Version && 2147483647 >= Version;
9073 case OMPC_default:
9074 return 1 <= Version && 2147483647 >= Version;
9075 case OMPC_dist_schedule:
9076 return 1 <= Version && 2147483647 >= Version;
9077 case OMPC_firstprivate:
9078 return 1 <= Version && 2147483647 >= Version;
9079 case OMPC_if:
9080 return 1 <= Version && 2147483647 >= Version;
9081 case OMPC_lastprivate:
9082 return 1 <= Version && 2147483647 >= Version;
9083 case OMPC_linear:
9084 return 1 <= Version && 2147483647 >= Version;
9085 case OMPC_nontemporal:
9086 return 50 <= Version && 2147483647 >= Version;
9087 case OMPC_num_teams:
9088 return 1 <= Version && 2147483647 >= Version;
9089 case OMPC_num_threads:
9090 return 1 <= Version && 2147483647 >= Version;
9091 case OMPC_ompx_attribute:
9092 return 1 <= Version && 2147483647 >= Version;
9093 case OMPC_order:
9094 return 50 <= Version && 2147483647 >= Version;
9095 case OMPC_private:
9096 return 1 <= Version && 2147483647 >= Version;
9097 case OMPC_proc_bind:
9098 return 1 <= Version && 2147483647 >= Version;
9099 case OMPC_reduction:
9100 return 1 <= Version && 2147483647 >= Version;
9101 case OMPC_safelen:
9102 return 1 <= Version && 2147483647 >= Version;
9103 case OMPC_schedule:
9104 return 1 <= Version && 2147483647 >= Version;
9105 case OMPC_shared:
9106 return 1 <= Version && 2147483647 >= Version;
9107 case OMPC_simdlen:
9108 return 1 <= Version && 2147483647 >= Version;
9109 case OMPC_thread_limit:
9110 return 1 <= Version && 2147483647 >= Version;
9111 default:
9112 return false;
9113 }
9114 break;
9115 case OMPD_teams_distribute_simd:
9116 switch (C) {
9117 case OMPC_aligned:
9118 return 1 <= Version && 2147483647 >= Version;
9119 case OMPC_allocate:
9120 return 1 <= Version && 2147483647 >= Version;
9121 case OMPC_firstprivate:
9122 return 1 <= Version && 2147483647 >= Version;
9123 case OMPC_if:
9124 return 50 <= Version && 2147483647 >= Version;
9125 case OMPC_lastprivate:
9126 return 1 <= Version && 2147483647 >= Version;
9127 case OMPC_linear:
9128 return 1 <= Version && 2147483647 >= Version;
9129 case OMPC_nontemporal:
9130 return 50 <= Version && 2147483647 >= Version;
9131 case OMPC_ompx_attribute:
9132 return 1 <= Version && 2147483647 >= Version;
9133 case OMPC_private:
9134 return 1 <= Version && 2147483647 >= Version;
9135 case OMPC_reduction:
9136 return 1 <= Version && 2147483647 >= Version;
9137 case OMPC_shared:
9138 return 1 <= Version && 2147483647 >= Version;
9139 case OMPC_collapse:
9140 return 1 <= Version && 2147483647 >= Version;
9141 case OMPC_default:
9142 return 1 <= Version && 2147483647 >= Version;
9143 case OMPC_dist_schedule:
9144 return 1 <= Version && 2147483647 >= Version;
9145 case OMPC_num_teams:
9146 return 1 <= Version && 2147483647 >= Version;
9147 case OMPC_order:
9148 return 50 <= Version && 2147483647 >= Version;
9149 case OMPC_safelen:
9150 return 1 <= Version && 2147483647 >= Version;
9151 case OMPC_simdlen:
9152 return 1 <= Version && 2147483647 >= Version;
9153 case OMPC_thread_limit:
9154 return 1 <= Version && 2147483647 >= Version;
9155 default:
9156 return false;
9157 }
9158 break;
9159 case OMPD_threadprivate:
9160 return false;
9161 break;
9162 case OMPD_tile:
9163 switch (C) {
9164 case OMPC_sizes:
9165 return 51 <= Version && 2147483647 >= Version;
9166 default:
9167 return false;
9168 }
9169 break;
9170 case OMPD_unknown:
9171 return false;
9172 break;
9173 case OMPD_unroll:
9174 switch (C) {
9175 case OMPC_full:
9176 return 51 <= Version && 2147483647 >= Version;
9177 case OMPC_partial:
9178 return 51 <= Version && 2147483647 >= Version;
9179 default:
9180 return false;
9181 }
9182 break;
9183 case OMPD_workshare:
9184 switch (C) {
9185 case OMPC_nowait:
9186 return 1 <= Version && 2147483647 >= Version;
9187 default:
9188 return false;
9189 }
9190 break;
9191 case OMPD_dispatch:
9192 switch (C) {
9193 case OMPC_depend:
9194 return 1 <= Version && 2147483647 >= Version;
9195 case OMPC_device:
9196 return 1 <= Version && 2147483647 >= Version;
9197 case OMPC_has_device_addr:
9198 return 51 <= Version && 2147483647 >= Version;
9199 case OMPC_is_device_ptr:
9200 return 1 <= Version && 2147483647 >= Version;
9201 case OMPC_nocontext:
9202 return 1 <= Version && 2147483647 >= Version;
9203 case OMPC_novariants:
9204 return 1 <= Version && 2147483647 >= Version;
9205 case OMPC_nowait:
9206 return 1 <= Version && 2147483647 >= Version;
9207 default:
9208 return false;
9209 }
9210 break;
9211 case OMPD_interop:
9212 switch (C) {
9213 case OMPC_depend:
9214 return 1 <= Version && 2147483647 >= Version;
9215 case OMPC_destroy:
9216 return 1 <= Version && 2147483647 >= Version;
9217 case OMPC_device:
9218 return 1 <= Version && 2147483647 >= Version;
9219 case OMPC_init:
9220 return 1 <= Version && 2147483647 >= Version;
9221 case OMPC_nowait:
9222 return 1 <= Version && 2147483647 >= Version;
9223 case OMPC_use:
9224 return 1 <= Version && 2147483647 >= Version;
9225 default:
9226 return false;
9227 }
9228 break;
9229 case OMPD_loop:
9230 switch (C) {
9231 case OMPC_lastprivate:
9232 return 1 <= Version && 2147483647 >= Version;
9233 case OMPC_private:
9234 return 1 <= Version && 2147483647 >= Version;
9235 case OMPC_reduction:
9236 return 1 <= Version && 2147483647 >= Version;
9237 case OMPC_bind:
9238 return 50 <= Version && 2147483647 >= Version;
9239 case OMPC_collapse:
9240 return 1 <= Version && 2147483647 >= Version;
9241 case OMPC_order:
9242 return 50 <= Version && 2147483647 >= Version;
9243 default:
9244 return false;
9245 }
9246 break;
9247 case OMPD_masked:
9248 switch (C) {
9249 case OMPC_filter:
9250 return 1 <= Version && 2147483647 >= Version;
9251 default:
9252 return false;
9253 }
9254 break;
9255 case OMPD_parallel_loop:
9256 switch (C) {
9257 case OMPC_allocate:
9258 return 1 <= Version && 2147483647 >= Version;
9259 case OMPC_copyin:
9260 return 1 <= Version && 2147483647 >= Version;
9261 case OMPC_firstprivate:
9262 return 1 <= Version && 2147483647 >= Version;
9263 case OMPC_lastprivate:
9264 return 1 <= Version && 2147483647 >= Version;
9265 case OMPC_ompx_attribute:
9266 return 1 <= Version && 2147483647 >= Version;
9267 case OMPC_private:
9268 return 1 <= Version && 2147483647 >= Version;
9269 case OMPC_reduction:
9270 return 1 <= Version && 2147483647 >= Version;
9271 case OMPC_shared:
9272 return 1 <= Version && 2147483647 >= Version;
9273 case OMPC_bind:
9274 return 50 <= Version && 2147483647 >= Version;
9275 case OMPC_collapse:
9276 return 1 <= Version && 2147483647 >= Version;
9277 case OMPC_default:
9278 return 1 <= Version && 2147483647 >= Version;
9279 case OMPC_if:
9280 return 1 <= Version && 2147483647 >= Version;
9281 case OMPC_num_threads:
9282 return 1 <= Version && 2147483647 >= Version;
9283 case OMPC_order:
9284 return 1 <= Version && 2147483647 >= Version;
9285 case OMPC_proc_bind:
9286 return 1 <= Version && 2147483647 >= Version;
9287 default:
9288 return false;
9289 }
9290 break;
9291 case OMPD_target_loop:
9292 switch (C) {
9293 case OMPC_allocate:
9294 return 1 <= Version && 2147483647 >= Version;
9295 case OMPC_depend:
9296 return 1 <= Version && 2147483647 >= Version;
9297 case OMPC_firstprivate:
9298 return 1 <= Version && 2147483647 >= Version;
9299 case OMPC_is_device_ptr:
9300 return 1 <= Version && 2147483647 >= Version;
9301 case OMPC_has_device_addr:
9302 return 51 <= Version && 2147483647 >= Version;
9303 case OMPC_lastprivate:
9304 return 1 <= Version && 2147483647 >= Version;
9305 case OMPC_map:
9306 return 1 <= Version && 2147483647 >= Version;
9307 case OMPC_private:
9308 return 1 <= Version && 2147483647 >= Version;
9309 case OMPC_reduction:
9310 return 1 <= Version && 2147483647 >= Version;
9311 case OMPC_uses_allocators:
9312 return 50 <= Version && 2147483647 >= Version;
9313 case OMPC_ompx_attribute:
9314 return 1 <= Version && 2147483647 >= Version;
9315 case OMPC_in_reduction:
9316 return 50 <= Version && 2147483647 >= Version;
9317 case OMPC_bind:
9318 return 50 <= Version && 2147483647 >= Version;
9319 case OMPC_collapse:
9320 return 1 <= Version && 2147483647 >= Version;
9321 case OMPC_order:
9322 return 1 <= Version && 2147483647 >= Version;
9323 case OMPC_thread_limit:
9324 return 1 <= Version && 2147483647 >= Version;
9325 case OMPC_ompx_dyn_cgroup_mem:
9326 return 1 <= Version && 2147483647 >= Version;
9327 case OMPC_if:
9328 return 1 <= Version && 2147483647 >= Version;
9329 case OMPC_device:
9330 return 1 <= Version && 2147483647 >= Version;
9331 case OMPC_defaultmap:
9332 return 1 <= Version && 2147483647 >= Version;
9333 case OMPC_nowait:
9334 return 1 <= Version && 2147483647 >= Version;
9335 default:
9336 return false;
9337 }
9338 break;
9339 case OMPD_target_parallel_loop:
9340 switch (C) {
9341 case OMPC_allocate:
9342 return 1 <= Version && 2147483647 >= Version;
9343 case OMPC_depend:
9344 return 1 <= Version && 2147483647 >= Version;
9345 case OMPC_device:
9346 return 1 <= Version && 2147483647 >= Version;
9347 case OMPC_firstprivate:
9348 return 1 <= Version && 2147483647 >= Version;
9349 case OMPC_has_device_addr:
9350 return 51 <= Version && 2147483647 >= Version;
9351 case OMPC_if:
9352 return 1 <= Version && 2147483647 >= Version;
9353 case OMPC_is_device_ptr:
9354 return 1 <= Version && 2147483647 >= Version;
9355 case OMPC_lastprivate:
9356 return 1 <= Version && 2147483647 >= Version;
9357 case OMPC_map:
9358 return 1 <= Version && 2147483647 >= Version;
9359 case OMPC_ompx_attribute:
9360 return 1 <= Version && 2147483647 >= Version;
9361 case OMPC_private:
9362 return 1 <= Version && 2147483647 >= Version;
9363 case OMPC_reduction:
9364 return 1 <= Version && 2147483647 >= Version;
9365 case OMPC_shared:
9366 return 1 <= Version && 2147483647 >= Version;
9367 case OMPC_uses_allocators:
9368 return 50 <= Version && 2147483647 >= Version;
9369 case OMPC_bind:
9370 return 50 <= Version && 2147483647 >= Version;
9371 case OMPC_collapse:
9372 return 1 <= Version && 2147483647 >= Version;
9373 case OMPC_default:
9374 return 1 <= Version && 2147483647 >= Version;
9375 case OMPC_defaultmap:
9376 return 1 <= Version && 2147483647 >= Version;
9377 case OMPC_nowait:
9378 return 1 <= Version && 2147483647 >= Version;
9379 case OMPC_num_threads:
9380 return 1 <= Version && 2147483647 >= Version;
9381 case OMPC_ompx_dyn_cgroup_mem:
9382 return 1 <= Version && 2147483647 >= Version;
9383 case OMPC_order:
9384 return 1 <= Version && 2147483647 >= Version;
9385 case OMPC_proc_bind:
9386 return 1 <= Version && 2147483647 >= Version;
9387 case OMPC_thread_limit:
9388 return 51 <= Version && 2147483647 >= Version;
9389 default:
9390 return false;
9391 }
9392 break;
9393 case OMPD_target_teams_loop:
9394 switch (C) {
9395 case OMPC_allocate:
9396 return 1 <= Version && 2147483647 >= Version;
9397 case OMPC_defaultmap:
9398 return 1 <= Version && 2147483647 >= Version;
9399 case OMPC_depend:
9400 return 1 <= Version && 2147483647 >= Version;
9401 case OMPC_device:
9402 return 1 <= Version && 2147483647 >= Version;
9403 case OMPC_firstprivate:
9404 return 1 <= Version && 2147483647 >= Version;
9405 case OMPC_has_device_addr:
9406 return 51 <= Version && 2147483647 >= Version;
9407 case OMPC_if:
9408 return 1 <= Version && 2147483647 >= Version;
9409 case OMPC_is_device_ptr:
9410 return 1 <= Version && 2147483647 >= Version;
9411 case OMPC_lastprivate:
9412 return 1 <= Version && 2147483647 >= Version;
9413 case OMPC_map:
9414 return 1 <= Version && 2147483647 >= Version;
9415 case OMPC_ompx_attribute:
9416 return 1 <= Version && 2147483647 >= Version;
9417 case OMPC_private:
9418 return 1 <= Version && 2147483647 >= Version;
9419 case OMPC_reduction:
9420 return 1 <= Version && 2147483647 >= Version;
9421 case OMPC_shared:
9422 return 1 <= Version && 2147483647 >= Version;
9423 case OMPC_uses_allocators:
9424 return 50 <= Version && 2147483647 >= Version;
9425 case OMPC_bind:
9426 return 50 <= Version && 2147483647 >= Version;
9427 case OMPC_collapse:
9428 return 1 <= Version && 2147483647 >= Version;
9429 case OMPC_default:
9430 return 1 <= Version && 2147483647 >= Version;
9431 case OMPC_nowait:
9432 return 1 <= Version && 2147483647 >= Version;
9433 case OMPC_num_teams:
9434 return 1 <= Version && 2147483647 >= Version;
9435 case OMPC_ompx_dyn_cgroup_mem:
9436 return 1 <= Version && 2147483647 >= Version;
9437 case OMPC_order:
9438 return 1 <= Version && 2147483647 >= Version;
9439 case OMPC_thread_limit:
9440 return 1 <= Version && 2147483647 >= Version;
9441 default:
9442 return false;
9443 }
9444 break;
9445 case OMPD_teams_loop:
9446 switch (C) {
9447 case OMPC_allocate:
9448 return 1 <= Version && 2147483647 >= Version;
9449 case OMPC_firstprivate:
9450 return 1 <= Version && 2147483647 >= Version;
9451 case OMPC_lastprivate:
9452 return 1 <= Version && 2147483647 >= Version;
9453 case OMPC_ompx_attribute:
9454 return 1 <= Version && 2147483647 >= Version;
9455 case OMPC_private:
9456 return 1 <= Version && 2147483647 >= Version;
9457 case OMPC_reduction:
9458 return 1 <= Version && 2147483647 >= Version;
9459 case OMPC_shared:
9460 return 1 <= Version && 2147483647 >= Version;
9461 case OMPC_bind:
9462 return 50 <= Version && 2147483647 >= Version;
9463 case OMPC_collapse:
9464 return 1 <= Version && 2147483647 >= Version;
9465 case OMPC_default:
9466 return 1 <= Version && 2147483647 >= Version;
9467 case OMPC_num_teams:
9468 return 1 <= Version && 2147483647 >= Version;
9469 case OMPC_order:
9470 return 1 <= Version && 2147483647 >= Version;
9471 case OMPC_thread_limit:
9472 return 1 <= Version && 2147483647 >= Version;
9473 default:
9474 return false;
9475 }
9476 break;
9477 }
9478 llvm_unreachable("Invalid OpenMP Directive kind");
9479}
9480
9481llvm::omp::Association llvm::omp::getDirectiveAssociation(llvm::omp::Directive Dir) {
9482 switch (Dir) {
9483 case OMPD_allocate:
9484 return Association::None;
9485 case OMPD_allocators:
9486 return Association::Block;
9487 case OMPD_assume:
9488 return Association::Block;
9489 case OMPD_assumes:
9490 return Association::None;
9491 case OMPD_atomic:
9492 return Association::Block;
9493 case OMPD_barrier:
9494 return Association::None;
9495 case OMPD_begin_assumes:
9496 return Association::Delimited;
9497 case OMPD_begin_declare_target:
9498 return Association::Delimited;
9499 case OMPD_begin_declare_variant:
9500 return Association::Delimited;
9501 case OMPD_cancel:
9502 return Association::None;
9503 case OMPD_cancellation_point:
9504 return Association::None;
9505 case OMPD_critical:
9506 return Association::Block;
9507 case OMPD_declare_mapper:
9508 return Association::None;
9509 case OMPD_declare_reduction:
9510 return Association::None;
9511 case OMPD_declare_simd:
9512 return Association::Declaration;
9513 case OMPD_declare_target:
9514 return Association::None;
9515 case OMPD_declare_variant:
9516 return Association::Declaration;
9517 case OMPD_depobj:
9518 return Association::None;
9519 case OMPD_distribute:
9520 return Association::Loop;
9521 case OMPD_distribute_parallel_do:
9522 return Association::Loop;
9523 case OMPD_distribute_parallel_do_simd:
9524 return Association::Loop;
9525 case OMPD_distribute_parallel_for:
9526 return Association::Loop;
9527 case OMPD_distribute_parallel_for_simd:
9528 return Association::Loop;
9529 case OMPD_distribute_simd:
9530 return Association::Loop;
9531 case OMPD_do:
9532 return Association::Loop;
9533 case OMPD_do_simd:
9534 return Association::Loop;
9535 case OMPD_end_assumes:
9536 return Association::Delimited;
9537 case OMPD_end_declare_target:
9538 return Association::Delimited;
9539 case OMPD_end_declare_variant:
9540 return Association::Delimited;
9541 case OMPD_end_do:
9542 return Association::Loop;
9543 case OMPD_end_do_simd:
9544 return Association::Loop;
9545 case OMPD_end_scope:
9546 return Association::Block;
9547 case OMPD_end_sections:
9548 return Association::Block;
9549 case OMPD_end_single:
9550 return Association::Block;
9551 case OMPD_end_workshare:
9552 return Association::Block;
9553 case OMPD_error:
9554 return Association::None;
9555 case OMPD_flush:
9556 return Association::None;
9557 case OMPD_for:
9558 return Association::Loop;
9559 case OMPD_for_simd:
9560 return Association::Loop;
9561 case OMPD_interchange:
9562 return Association::Loop;
9563 case OMPD_masked_taskloop:
9564 return Association::Loop;
9565 case OMPD_masked_taskloop_simd:
9566 return Association::Loop;
9567 case OMPD_master:
9568 return Association::Block;
9569 case OMPD_master_taskloop:
9570 return Association::Loop;
9571 case OMPD_master_taskloop_simd:
9572 return Association::Loop;
9573 case OMPD_metadirective:
9574 return Association::None;
9575 case OMPD_nothing:
9576 return Association::None;
9577 case OMPD_ordered:
9578 return Association::None;
9579 case OMPD_parallel:
9580 return Association::Block;
9581 case OMPD_parallel_do:
9582 return Association::Loop;
9583 case OMPD_parallel_do_simd:
9584 return Association::Loop;
9585 case OMPD_parallel_for:
9586 return Association::Loop;
9587 case OMPD_parallel_for_simd:
9588 return Association::Loop;
9589 case OMPD_parallel_masked:
9590 return Association::Block;
9591 case OMPD_parallel_masked_taskloop:
9592 return Association::Loop;
9593 case OMPD_parallel_masked_taskloop_simd:
9594 return Association::Loop;
9595 case OMPD_parallel_master:
9596 return Association::Block;
9597 case OMPD_parallel_master_taskloop:
9598 return Association::Loop;
9599 case OMPD_parallel_master_taskloop_simd:
9600 return Association::Loop;
9601 case OMPD_parallel_sections:
9602 return Association::Block;
9603 case OMPD_parallel_workshare:
9604 return Association::Block;
9605 case OMPD_requires:
9606 return Association::None;
9607 case OMPD_reverse:
9608 return Association::Loop;
9609 case OMPD_scan:
9610 return Association::Separating;
9611 case OMPD_scope:
9612 return Association::Block;
9613 case OMPD_section:
9614 return Association::Separating;
9615 case OMPD_sections:
9616 return Association::Block;
9617 case OMPD_simd:
9618 return Association::Loop;
9619 case OMPD_single:
9620 return Association::Block;
9621 case OMPD_stripe:
9622 return Association::Loop;
9623 case OMPD_target:
9624 return Association::Block;
9625 case OMPD_target_data:
9626 return Association::Block;
9627 case OMPD_target_enter_data:
9628 return Association::None;
9629 case OMPD_target_exit_data:
9630 return Association::None;
9631 case OMPD_target_parallel:
9632 return Association::Block;
9633 case OMPD_target_parallel_do:
9634 return Association::Loop;
9635 case OMPD_target_parallel_do_simd:
9636 return Association::Loop;
9637 case OMPD_target_parallel_for:
9638 return Association::Loop;
9639 case OMPD_target_parallel_for_simd:
9640 return Association::Loop;
9641 case OMPD_target_simd:
9642 return Association::Loop;
9643 case OMPD_target_teams:
9644 return Association::Block;
9645 case OMPD_target_teams_distribute:
9646 return Association::Loop;
9647 case OMPD_target_teams_distribute_parallel_do:
9648 return Association::Loop;
9649 case OMPD_target_teams_distribute_parallel_do_simd:
9650 return Association::Loop;
9651 case OMPD_target_teams_distribute_parallel_for:
9652 return Association::Loop;
9653 case OMPD_target_teams_distribute_parallel_for_simd:
9654 return Association::Loop;
9655 case OMPD_target_teams_distribute_simd:
9656 return Association::Loop;
9657 case OMPD_target_update:
9658 return Association::None;
9659 case OMPD_task:
9660 return Association::Block;
9661 case OMPD_taskgroup:
9662 return Association::Block;
9663 case OMPD_taskloop:
9664 return Association::Loop;
9665 case OMPD_taskloop_simd:
9666 return Association::Loop;
9667 case OMPD_taskwait:
9668 return Association::None;
9669 case OMPD_taskyield:
9670 return Association::None;
9671 case OMPD_teams:
9672 return Association::Block;
9673 case OMPD_teams_distribute:
9674 return Association::Loop;
9675 case OMPD_teams_distribute_parallel_do:
9676 return Association::Loop;
9677 case OMPD_teams_distribute_parallel_do_simd:
9678 return Association::Loop;
9679 case OMPD_teams_distribute_parallel_for:
9680 return Association::Loop;
9681 case OMPD_teams_distribute_parallel_for_simd:
9682 return Association::Loop;
9683 case OMPD_teams_distribute_simd:
9684 return Association::Loop;
9685 case OMPD_threadprivate:
9686 return Association::None;
9687 case OMPD_tile:
9688 return Association::Loop;
9689 case OMPD_unknown:
9690 return Association::None;
9691 case OMPD_unroll:
9692 return Association::Loop;
9693 case OMPD_workshare:
9694 return Association::Block;
9695 case OMPD_dispatch:
9696 return Association::Block;
9697 case OMPD_interop:
9698 return Association::None;
9699 case OMPD_loop:
9700 return Association::Loop;
9701 case OMPD_masked:
9702 return Association::Block;
9703 case OMPD_parallel_loop:
9704 return Association::Loop;
9705 case OMPD_target_loop:
9706 return Association::Loop;
9707 case OMPD_target_parallel_loop:
9708 return Association::Loop;
9709 case OMPD_target_teams_loop:
9710 return Association::Loop;
9711 case OMPD_teams_loop:
9712 return Association::Loop;
9713 } // switch (Dir)
9714 llvm_unreachable("Unexpected directive");
9715}
9716
9717llvm::omp::Category llvm::omp::getDirectiveCategory(llvm::omp::Directive Dir) {
9718 switch (Dir) {
9719 case OMPD_allocate:
9720 return Category::Declarative;
9721 case OMPD_allocators:
9722 return Category::Executable;
9723 case OMPD_assume:
9724 return Category::Informational;
9725 case OMPD_assumes:
9726 return Category::Informational;
9727 case OMPD_atomic:
9728 return Category::Executable;
9729 case OMPD_barrier:
9730 return Category::Executable;
9731 case OMPD_begin_assumes:
9732 return Category::Informational;
9733 case OMPD_begin_declare_target:
9734 return Category::Declarative;
9735 case OMPD_begin_declare_variant:
9736 return Category::Declarative;
9737 case OMPD_cancel:
9738 return Category::Executable;
9739 case OMPD_cancellation_point:
9740 return Category::Executable;
9741 case OMPD_critical:
9742 return Category::Executable;
9743 case OMPD_declare_mapper:
9744 return Category::Declarative;
9745 case OMPD_declare_reduction:
9746 return Category::Declarative;
9747 case OMPD_declare_simd:
9748 return Category::Declarative;
9749 case OMPD_declare_target:
9750 return Category::Declarative;
9751 case OMPD_declare_variant:
9752 return Category::Declarative;
9753 case OMPD_depobj:
9754 return Category::Executable;
9755 case OMPD_distribute:
9756 return Category::Executable;
9757 case OMPD_distribute_parallel_do:
9758 return Category::Executable;
9759 case OMPD_distribute_parallel_do_simd:
9760 return Category::Executable;
9761 case OMPD_distribute_parallel_for:
9762 return Category::Executable;
9763 case OMPD_distribute_parallel_for_simd:
9764 return Category::Executable;
9765 case OMPD_distribute_simd:
9766 return Category::Executable;
9767 case OMPD_do:
9768 return Category::Executable;
9769 case OMPD_do_simd:
9770 return Category::Executable;
9771 case OMPD_end_assumes:
9772 return Category::Informational;
9773 case OMPD_end_declare_target:
9774 return Category::Declarative;
9775 case OMPD_end_declare_variant:
9776 return Category::Declarative;
9777 case OMPD_end_do:
9778 return Category::Executable;
9779 case OMPD_end_do_simd:
9780 return Category::Executable;
9781 case OMPD_end_scope:
9782 return Category::Executable;
9783 case OMPD_end_sections:
9784 return Category::Executable;
9785 case OMPD_end_single:
9786 return Category::Executable;
9787 case OMPD_end_workshare:
9788 return Category::Executable;
9789 case OMPD_error:
9790 return Category::Utility;
9791 case OMPD_flush:
9792 return Category::Executable;
9793 case OMPD_for:
9794 return Category::Executable;
9795 case OMPD_for_simd:
9796 return Category::Executable;
9797 case OMPD_interchange:
9798 return Category::Executable;
9799 case OMPD_masked_taskloop:
9800 return Category::Executable;
9801 case OMPD_masked_taskloop_simd:
9802 return Category::Executable;
9803 case OMPD_master:
9804 return Category::Executable;
9805 case OMPD_master_taskloop:
9806 return Category::Executable;
9807 case OMPD_master_taskloop_simd:
9808 return Category::Executable;
9809 case OMPD_metadirective:
9810 return Category::Meta;
9811 case OMPD_nothing:
9812 return Category::Utility;
9813 case OMPD_ordered:
9814 return Category::Executable;
9815 case OMPD_parallel:
9816 return Category::Executable;
9817 case OMPD_parallel_do:
9818 return Category::Executable;
9819 case OMPD_parallel_do_simd:
9820 return Category::Executable;
9821 case OMPD_parallel_for:
9822 return Category::Executable;
9823 case OMPD_parallel_for_simd:
9824 return Category::Executable;
9825 case OMPD_parallel_masked:
9826 return Category::Executable;
9827 case OMPD_parallel_masked_taskloop:
9828 return Category::Executable;
9829 case OMPD_parallel_masked_taskloop_simd:
9830 return Category::Executable;
9831 case OMPD_parallel_master:
9832 return Category::Executable;
9833 case OMPD_parallel_master_taskloop:
9834 return Category::Executable;
9835 case OMPD_parallel_master_taskloop_simd:
9836 return Category::Executable;
9837 case OMPD_parallel_sections:
9838 return Category::Executable;
9839 case OMPD_parallel_workshare:
9840 return Category::Executable;
9841 case OMPD_requires:
9842 return Category::Informational;
9843 case OMPD_reverse:
9844 return Category::Executable;
9845 case OMPD_scan:
9846 return Category::Subsidiary;
9847 case OMPD_scope:
9848 return Category::Executable;
9849 case OMPD_section:
9850 return Category::Subsidiary;
9851 case OMPD_sections:
9852 return Category::Executable;
9853 case OMPD_simd:
9854 return Category::Executable;
9855 case OMPD_single:
9856 return Category::Executable;
9857 case OMPD_stripe:
9858 return Category::Executable;
9859 case OMPD_target:
9860 return Category::Executable;
9861 case OMPD_target_data:
9862 return Category::Executable;
9863 case OMPD_target_enter_data:
9864 return Category::Executable;
9865 case OMPD_target_exit_data:
9866 return Category::Executable;
9867 case OMPD_target_parallel:
9868 return Category::Executable;
9869 case OMPD_target_parallel_do:
9870 return Category::Executable;
9871 case OMPD_target_parallel_do_simd:
9872 return Category::Executable;
9873 case OMPD_target_parallel_for:
9874 return Category::Executable;
9875 case OMPD_target_parallel_for_simd:
9876 return Category::Executable;
9877 case OMPD_target_simd:
9878 return Category::Executable;
9879 case OMPD_target_teams:
9880 return Category::Executable;
9881 case OMPD_target_teams_distribute:
9882 return Category::Executable;
9883 case OMPD_target_teams_distribute_parallel_do:
9884 return Category::Executable;
9885 case OMPD_target_teams_distribute_parallel_do_simd:
9886 return Category::Executable;
9887 case OMPD_target_teams_distribute_parallel_for:
9888 return Category::Executable;
9889 case OMPD_target_teams_distribute_parallel_for_simd:
9890 return Category::Executable;
9891 case OMPD_target_teams_distribute_simd:
9892 return Category::Executable;
9893 case OMPD_target_update:
9894 return Category::Executable;
9895 case OMPD_task:
9896 return Category::Executable;
9897 case OMPD_taskgroup:
9898 return Category::Executable;
9899 case OMPD_taskloop:
9900 return Category::Executable;
9901 case OMPD_taskloop_simd:
9902 return Category::Executable;
9903 case OMPD_taskwait:
9904 return Category::Executable;
9905 case OMPD_taskyield:
9906 return Category::Executable;
9907 case OMPD_teams:
9908 return Category::Executable;
9909 case OMPD_teams_distribute:
9910 return Category::Executable;
9911 case OMPD_teams_distribute_parallel_do:
9912 return Category::Executable;
9913 case OMPD_teams_distribute_parallel_do_simd:
9914 return Category::Executable;
9915 case OMPD_teams_distribute_parallel_for:
9916 return Category::Executable;
9917 case OMPD_teams_distribute_parallel_for_simd:
9918 return Category::Executable;
9919 case OMPD_teams_distribute_simd:
9920 return Category::Executable;
9921 case OMPD_threadprivate:
9922 return Category::Declarative;
9923 case OMPD_tile:
9924 return Category::Executable;
9925 case OMPD_unknown:
9926 return Category::Utility;
9927 case OMPD_unroll:
9928 return Category::Executable;
9929 case OMPD_workshare:
9930 return Category::Executable;
9931 case OMPD_dispatch:
9932 return Category::Executable;
9933 case OMPD_interop:
9934 return Category::Executable;
9935 case OMPD_loop:
9936 return Category::Executable;
9937 case OMPD_masked:
9938 return Category::Executable;
9939 case OMPD_parallel_loop:
9940 return Category::Executable;
9941 case OMPD_target_loop:
9942 return Category::Executable;
9943 case OMPD_target_parallel_loop:
9944 return Category::Executable;
9945 case OMPD_target_teams_loop:
9946 return Category::Executable;
9947 case OMPD_teams_loop:
9948 return Category::Executable;
9949 } // switch (Dir)
9950 llvm_unreachable("Unexpected directive");
9951}
9952
9953llvm::omp::SourceLanguage llvm::omp::getDirectiveLanguages(llvm::omp::Directive D) {
9954 switch (D) {
9955 case OMPD_allocate:
9956 return SourceLanguage::C | SourceLanguage::Fortran;
9957 case OMPD_allocators:
9958 return SourceLanguage::Fortran;
9959 case OMPD_assume:
9960 return SourceLanguage::C | SourceLanguage::Fortran;
9961 case OMPD_assumes:
9962 return SourceLanguage::C | SourceLanguage::Fortran;
9963 case OMPD_atomic:
9964 return SourceLanguage::C | SourceLanguage::Fortran;
9965 case OMPD_barrier:
9966 return SourceLanguage::C | SourceLanguage::Fortran;
9967 case OMPD_begin_assumes:
9968 return SourceLanguage::C;
9969 case OMPD_begin_declare_target:
9970 return SourceLanguage::C;
9971 case OMPD_begin_declare_variant:
9972 return SourceLanguage::C;
9973 case OMPD_cancel:
9974 return SourceLanguage::C | SourceLanguage::Fortran;
9975 case OMPD_cancellation_point:
9976 return SourceLanguage::C | SourceLanguage::Fortran;
9977 case OMPD_critical:
9978 return SourceLanguage::C | SourceLanguage::Fortran;
9979 case OMPD_declare_mapper:
9980 return SourceLanguage::C | SourceLanguage::Fortran;
9981 case OMPD_declare_reduction:
9982 return SourceLanguage::C | SourceLanguage::Fortran;
9983 case OMPD_declare_simd:
9984 return SourceLanguage::C | SourceLanguage::Fortran;
9985 case OMPD_declare_target:
9986 return SourceLanguage::C | SourceLanguage::Fortran;
9987 case OMPD_declare_variant:
9988 return SourceLanguage::C;
9989 case OMPD_depobj:
9990 return SourceLanguage::C | SourceLanguage::Fortran;
9991 case OMPD_distribute:
9992 return SourceLanguage::C | SourceLanguage::Fortran;
9993 case OMPD_distribute_parallel_do:
9994 return SourceLanguage::Fortran;
9995 case OMPD_distribute_parallel_do_simd:
9996 return SourceLanguage::Fortran;
9997 case OMPD_distribute_parallel_for:
9998 return SourceLanguage::C;
9999 case OMPD_distribute_parallel_for_simd:
10000 return SourceLanguage::C;
10001 case OMPD_distribute_simd:
10002 return SourceLanguage::C | SourceLanguage::Fortran;
10003 case OMPD_do:
10004 return SourceLanguage::Fortran;
10005 case OMPD_do_simd:
10006 return SourceLanguage::Fortran;
10007 case OMPD_end_assumes:
10008 return SourceLanguage::C;
10009 case OMPD_end_declare_target:
10010 return SourceLanguage::C;
10011 case OMPD_end_declare_variant:
10012 return SourceLanguage::C;
10013 case OMPD_end_do:
10014 return SourceLanguage::Fortran;
10015 case OMPD_end_do_simd:
10016 return SourceLanguage::Fortran;
10017 case OMPD_end_scope:
10018 return SourceLanguage::Fortran;
10019 case OMPD_end_sections:
10020 return SourceLanguage::Fortran;
10021 case OMPD_end_single:
10022 return SourceLanguage::Fortran;
10023 case OMPD_end_workshare:
10024 return SourceLanguage::Fortran;
10025 case OMPD_error:
10026 return SourceLanguage::C | SourceLanguage::Fortran;
10027 case OMPD_flush:
10028 return SourceLanguage::C | SourceLanguage::Fortran;
10029 case OMPD_for:
10030 return SourceLanguage::C;
10031 case OMPD_for_simd:
10032 return SourceLanguage::C | SourceLanguage::Fortran;
10033 case OMPD_interchange:
10034 return SourceLanguage::C | SourceLanguage::Fortran;
10035 case OMPD_masked_taskloop:
10036 return SourceLanguage::C | SourceLanguage::Fortran;
10037 case OMPD_masked_taskloop_simd:
10038 return SourceLanguage::C | SourceLanguage::Fortran;
10039 case OMPD_master:
10040 return SourceLanguage::C | SourceLanguage::Fortran;
10041 case OMPD_master_taskloop:
10042 return SourceLanguage::C | SourceLanguage::Fortran;
10043 case OMPD_master_taskloop_simd:
10044 return SourceLanguage::C | SourceLanguage::Fortran;
10045 case OMPD_metadirective:
10046 return SourceLanguage::C | SourceLanguage::Fortran;
10047 case OMPD_nothing:
10048 return SourceLanguage::C | SourceLanguage::Fortran;
10049 case OMPD_ordered:
10050 return SourceLanguage::C | SourceLanguage::Fortran;
10051 case OMPD_parallel:
10052 return SourceLanguage::C | SourceLanguage::Fortran;
10053 case OMPD_parallel_do:
10054 return SourceLanguage::Fortran;
10055 case OMPD_parallel_do_simd:
10056 return SourceLanguage::Fortran;
10057 case OMPD_parallel_for:
10058 return SourceLanguage::C;
10059 case OMPD_parallel_for_simd:
10060 return SourceLanguage::C;
10061 case OMPD_parallel_masked:
10062 return SourceLanguage::C | SourceLanguage::Fortran;
10063 case OMPD_parallel_masked_taskloop:
10064 return SourceLanguage::C | SourceLanguage::Fortran;
10065 case OMPD_parallel_masked_taskloop_simd:
10066 return SourceLanguage::C | SourceLanguage::Fortran;
10067 case OMPD_parallel_master:
10068 return SourceLanguage::C | SourceLanguage::Fortran;
10069 case OMPD_parallel_master_taskloop:
10070 return SourceLanguage::C | SourceLanguage::Fortran;
10071 case OMPD_parallel_master_taskloop_simd:
10072 return SourceLanguage::C | SourceLanguage::Fortran;
10073 case OMPD_parallel_sections:
10074 return SourceLanguage::C | SourceLanguage::Fortran;
10075 case OMPD_parallel_workshare:
10076 return SourceLanguage::Fortran;
10077 case OMPD_requires:
10078 return SourceLanguage::C | SourceLanguage::Fortran;
10079 case OMPD_reverse:
10080 return SourceLanguage::C | SourceLanguage::Fortran;
10081 case OMPD_scan:
10082 return SourceLanguage::C | SourceLanguage::Fortran;
10083 case OMPD_scope:
10084 return SourceLanguage::C | SourceLanguage::Fortran;
10085 case OMPD_section:
10086 return SourceLanguage::C | SourceLanguage::Fortran;
10087 case OMPD_sections:
10088 return SourceLanguage::C | SourceLanguage::Fortran;
10089 case OMPD_simd:
10090 return SourceLanguage::C | SourceLanguage::Fortran;
10091 case OMPD_single:
10092 return SourceLanguage::C | SourceLanguage::Fortran;
10093 case OMPD_stripe:
10094 return SourceLanguage::C | SourceLanguage::Fortran;
10095 case OMPD_target:
10096 return SourceLanguage::C | SourceLanguage::Fortran;
10097 case OMPD_target_data:
10098 return SourceLanguage::C | SourceLanguage::Fortran;
10099 case OMPD_target_enter_data:
10100 return SourceLanguage::C | SourceLanguage::Fortran;
10101 case OMPD_target_exit_data:
10102 return SourceLanguage::C | SourceLanguage::Fortran;
10103 case OMPD_target_parallel:
10104 return SourceLanguage::C | SourceLanguage::Fortran;
10105 case OMPD_target_parallel_do:
10106 return SourceLanguage::Fortran;
10107 case OMPD_target_parallel_do_simd:
10108 return SourceLanguage::Fortran;
10109 case OMPD_target_parallel_for:
10110 return SourceLanguage::C;
10111 case OMPD_target_parallel_for_simd:
10112 return SourceLanguage::C;
10113 case OMPD_target_simd:
10114 return SourceLanguage::C | SourceLanguage::Fortran;
10115 case OMPD_target_teams:
10116 return SourceLanguage::C | SourceLanguage::Fortran;
10117 case OMPD_target_teams_distribute:
10118 return SourceLanguage::C | SourceLanguage::Fortran;
10119 case OMPD_target_teams_distribute_parallel_do:
10120 return SourceLanguage::Fortran;
10121 case OMPD_target_teams_distribute_parallel_do_simd:
10122 return SourceLanguage::Fortran;
10123 case OMPD_target_teams_distribute_parallel_for:
10124 return SourceLanguage::C;
10125 case OMPD_target_teams_distribute_parallel_for_simd:
10126 return SourceLanguage::C;
10127 case OMPD_target_teams_distribute_simd:
10128 return SourceLanguage::C | SourceLanguage::Fortran;
10129 case OMPD_target_update:
10130 return SourceLanguage::C | SourceLanguage::Fortran;
10131 case OMPD_task:
10132 return SourceLanguage::C | SourceLanguage::Fortran;
10133 case OMPD_taskgroup:
10134 return SourceLanguage::C | SourceLanguage::Fortran;
10135 case OMPD_taskloop:
10136 return SourceLanguage::C | SourceLanguage::Fortran;
10137 case OMPD_taskloop_simd:
10138 return SourceLanguage::C | SourceLanguage::Fortran;
10139 case OMPD_taskwait:
10140 return SourceLanguage::C | SourceLanguage::Fortran;
10141 case OMPD_taskyield:
10142 return SourceLanguage::C | SourceLanguage::Fortran;
10143 case OMPD_teams:
10144 return SourceLanguage::C | SourceLanguage::Fortran;
10145 case OMPD_teams_distribute:
10146 return SourceLanguage::C | SourceLanguage::Fortran;
10147 case OMPD_teams_distribute_parallel_do:
10148 return SourceLanguage::Fortran;
10149 case OMPD_teams_distribute_parallel_do_simd:
10150 return SourceLanguage::Fortran;
10151 case OMPD_teams_distribute_parallel_for:
10152 return SourceLanguage::C;
10153 case OMPD_teams_distribute_parallel_for_simd:
10154 return SourceLanguage::C;
10155 case OMPD_teams_distribute_simd:
10156 return SourceLanguage::C | SourceLanguage::Fortran;
10157 case OMPD_threadprivate:
10158 return SourceLanguage::C | SourceLanguage::Fortran;
10159 case OMPD_tile:
10160 return SourceLanguage::C | SourceLanguage::Fortran;
10161 case OMPD_unknown:
10162 return SourceLanguage::C | SourceLanguage::Fortran;
10163 case OMPD_unroll:
10164 return SourceLanguage::C | SourceLanguage::Fortran;
10165 case OMPD_workshare:
10166 return SourceLanguage::Fortran;
10167 case OMPD_dispatch:
10168 return SourceLanguage::C | SourceLanguage::Fortran;
10169 case OMPD_interop:
10170 return SourceLanguage::C | SourceLanguage::Fortran;
10171 case OMPD_loop:
10172 return SourceLanguage::C | SourceLanguage::Fortran;
10173 case OMPD_masked:
10174 return SourceLanguage::C | SourceLanguage::Fortran;
10175 case OMPD_parallel_loop:
10176 return SourceLanguage::C | SourceLanguage::Fortran;
10177 case OMPD_target_loop:
10178 return SourceLanguage::C | SourceLanguage::Fortran;
10179 case OMPD_target_parallel_loop:
10180 return SourceLanguage::C | SourceLanguage::Fortran;
10181 case OMPD_target_teams_loop:
10182 return SourceLanguage::C | SourceLanguage::Fortran;
10183 case OMPD_teams_loop:
10184 return SourceLanguage::C | SourceLanguage::Fortran;
10185 } // switch(D)
10186 llvm_unreachable("Unexpected directive");
10187}
10188
10189static_assert(sizeof(llvm::omp::Directive) == sizeof(int));
10190[[maybe_unused]] static const llvm::omp::Directive LeafConstructTable[][8] = {
10191 {llvm::omp::OMPD_allocate, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10192 {llvm::omp::OMPD_allocators, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10193 {llvm::omp::OMPD_assume, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10194 {llvm::omp::OMPD_assumes, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10195 {llvm::omp::OMPD_atomic, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10196 {llvm::omp::OMPD_barrier, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10197 {llvm::omp::OMPD_begin_assumes, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10198 {llvm::omp::OMPD_begin_declare_target, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10199 {llvm::omp::OMPD_begin_declare_variant, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10200 {llvm::omp::OMPD_cancel, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10201 {llvm::omp::OMPD_cancellation_point, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10202 {llvm::omp::OMPD_critical, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10203 {llvm::omp::OMPD_declare_mapper, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10204 {llvm::omp::OMPD_declare_reduction, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10205 {llvm::omp::OMPD_declare_simd, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10206 {llvm::omp::OMPD_declare_target, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10207 {llvm::omp::OMPD_declare_variant, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10208 {llvm::omp::OMPD_depobj, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10209 {llvm::omp::OMPD_distribute, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10210 {llvm::omp::OMPD_do, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10211 {llvm::omp::OMPD_error, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10212 {llvm::omp::OMPD_flush, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10213 {llvm::omp::OMPD_for, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10214 {llvm::omp::OMPD_interchange, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10215 {llvm::omp::OMPD_master, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10216 {llvm::omp::OMPD_metadirective, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10217 {llvm::omp::OMPD_nothing, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10218 {llvm::omp::OMPD_ordered, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10219 {llvm::omp::OMPD_parallel, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10220 {llvm::omp::OMPD_requires, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10221 {llvm::omp::OMPD_reverse, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10222 {llvm::omp::OMPD_scan, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10223 {llvm::omp::OMPD_scope, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10224 {llvm::omp::OMPD_section, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10225 {llvm::omp::OMPD_sections, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10226 {llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10227 {llvm::omp::OMPD_single, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10228 {llvm::omp::OMPD_stripe, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10229 {llvm::omp::OMPD_target, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10230 {llvm::omp::OMPD_target_data, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10231 {llvm::omp::OMPD_target_enter_data, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10232 {llvm::omp::OMPD_target_exit_data, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10233 {llvm::omp::OMPD_target_update, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10234 {llvm::omp::OMPD_task, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10235 {llvm::omp::OMPD_taskgroup, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10236 {llvm::omp::OMPD_taskloop, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10237 {llvm::omp::OMPD_taskwait, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10238 {llvm::omp::OMPD_taskyield, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10239 {llvm::omp::OMPD_teams, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10240 {llvm::omp::OMPD_threadprivate, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10241 {llvm::omp::OMPD_tile, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10242 {llvm::omp::OMPD_unknown, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10243 {llvm::omp::OMPD_unroll, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10244 {llvm::omp::OMPD_workshare, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10245 {llvm::omp::OMPD_dispatch, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10246 {llvm::omp::OMPD_interop, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10247 {llvm::omp::OMPD_loop, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10248 {llvm::omp::OMPD_masked, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10249 {llvm::omp::OMPD_distribute_parallel_do, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10250 {llvm::omp::OMPD_distribute_parallel_do_simd, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10251 {llvm::omp::OMPD_distribute_parallel_for, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10252 {llvm::omp::OMPD_distribute_parallel_for_simd, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10253 {llvm::omp::OMPD_distribute_simd, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_distribute, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10254 {llvm::omp::OMPD_do_simd, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_do, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10255 {llvm::omp::OMPD_for_simd, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_for, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10256 {llvm::omp::OMPD_master_taskloop, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_master, llvm::omp::OMPD_taskloop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10257 {llvm::omp::OMPD_master_taskloop_simd, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_master, llvm::omp::OMPD_taskloop, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10258 {llvm::omp::OMPD_parallel_do, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10259 {llvm::omp::OMPD_parallel_do_simd, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10260 {llvm::omp::OMPD_parallel_for, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10261 {llvm::omp::OMPD_parallel_for_simd, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10262 {llvm::omp::OMPD_parallel_master, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_parallel, llvm::omp::OMPD_master, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10263 {llvm::omp::OMPD_parallel_master_taskloop, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_parallel, llvm::omp::OMPD_master, llvm::omp::OMPD_taskloop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10264 {llvm::omp::OMPD_parallel_master_taskloop_simd, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_parallel, llvm::omp::OMPD_master, llvm::omp::OMPD_taskloop, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10265 {llvm::omp::OMPD_parallel_sections, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_parallel, llvm::omp::OMPD_sections, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10266 {llvm::omp::OMPD_parallel_workshare, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_parallel, llvm::omp::OMPD_workshare, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10267 {llvm::omp::OMPD_parallel_loop, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_parallel, llvm::omp::OMPD_loop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10268 {llvm::omp::OMPD_parallel_masked, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_parallel, llvm::omp::OMPD_masked, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10269 {llvm::omp::OMPD_parallel_masked_taskloop, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_parallel, llvm::omp::OMPD_masked, llvm::omp::OMPD_taskloop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10270 {llvm::omp::OMPD_parallel_masked_taskloop_simd, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_parallel, llvm::omp::OMPD_masked, llvm::omp::OMPD_taskloop, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10271 {llvm::omp::OMPD_target_parallel, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_target, llvm::omp::OMPD_parallel, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10272 {llvm::omp::OMPD_target_parallel_do, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_target, llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10273 {llvm::omp::OMPD_target_parallel_do_simd, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_target, llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10274 {llvm::omp::OMPD_target_parallel_for, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_target, llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10275 {llvm::omp::OMPD_target_parallel_for_simd, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_target, llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10276 {llvm::omp::OMPD_target_parallel_loop, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_target, llvm::omp::OMPD_parallel, llvm::omp::OMPD_loop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10277 {llvm::omp::OMPD_target_simd, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_target, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10278 {llvm::omp::OMPD_target_teams, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_target, llvm::omp::OMPD_teams, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10279 {llvm::omp::OMPD_target_teams_distribute, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_target, llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10280 {llvm::omp::OMPD_target_teams_distribute_parallel_do, static_cast<llvm::omp::Directive>(5), llvm::omp::OMPD_target, llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, static_cast<llvm::omp::Directive>(-1),},
10281 {llvm::omp::OMPD_target_teams_distribute_parallel_do_simd, static_cast<llvm::omp::Directive>(6), llvm::omp::OMPD_target, llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, llvm::omp::OMPD_simd,},
10282 {llvm::omp::OMPD_target_teams_distribute_parallel_for, static_cast<llvm::omp::Directive>(5), llvm::omp::OMPD_target, llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, static_cast<llvm::omp::Directive>(-1),},
10283 {llvm::omp::OMPD_target_teams_distribute_parallel_for_simd, static_cast<llvm::omp::Directive>(6), llvm::omp::OMPD_target, llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, llvm::omp::OMPD_simd,},
10284 {llvm::omp::OMPD_target_teams_distribute_simd, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_target, llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10285 {llvm::omp::OMPD_target_teams_loop, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_target, llvm::omp::OMPD_teams, llvm::omp::OMPD_loop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10286 {llvm::omp::OMPD_target_loop, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_target, llvm::omp::OMPD_loop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10287 {llvm::omp::OMPD_taskloop_simd, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_taskloop, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10288 {llvm::omp::OMPD_teams_distribute, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10289 {llvm::omp::OMPD_teams_distribute_parallel_do, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10290 {llvm::omp::OMPD_teams_distribute_parallel_do_simd, static_cast<llvm::omp::Directive>(5), llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_do, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1),},
10291 {llvm::omp::OMPD_teams_distribute_parallel_for, static_cast<llvm::omp::Directive>(4), llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10292 {llvm::omp::OMPD_teams_distribute_parallel_for_simd, static_cast<llvm::omp::Directive>(5), llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_parallel, llvm::omp::OMPD_for, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1),},
10293 {llvm::omp::OMPD_teams_distribute_simd, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_teams, llvm::omp::OMPD_distribute, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10294 {llvm::omp::OMPD_teams_loop, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_teams, llvm::omp::OMPD_loop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10295 {llvm::omp::OMPD_masked_taskloop, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_masked, llvm::omp::OMPD_taskloop, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10296 {llvm::omp::OMPD_masked_taskloop_simd, static_cast<llvm::omp::Directive>(3), llvm::omp::OMPD_masked, llvm::omp::OMPD_taskloop, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10297 {llvm::omp::OMPD_end_assumes, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10298 {llvm::omp::OMPD_end_declare_target, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10299 {llvm::omp::OMPD_end_declare_variant, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10300 {llvm::omp::OMPD_end_do, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10301 {llvm::omp::OMPD_end_scope, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10302 {llvm::omp::OMPD_end_sections, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10303 {llvm::omp::OMPD_end_single, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10304 {llvm::omp::OMPD_end_workshare, static_cast<llvm::omp::Directive>(0), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10305 {llvm::omp::OMPD_end_do_simd, static_cast<llvm::omp::Directive>(2), llvm::omp::OMPD_do, llvm::omp::OMPD_simd, static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1), static_cast<llvm::omp::Directive>(-1),},
10306};
10307
10308[[maybe_unused]] static auto LeafConstructTableEndDirective = LeafConstructTable + 106;
10309
10310[[maybe_unused]] static const int LeafConstructTableOrdering[] = {
10311 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 58, 59, 60, 61, 62, 19, 63, 106, 107, 108, 109, 114, 110, 111, 112, 113, 20, 21, 22, 64, 23, 104, 105, 24, 65, 66, 25, 26, 27, 28, 67, 68, 69, 70, 77, 78, 79, 71, 72, 73, 74, 75, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 42, 43, 44, 45, 96, 46, 47, 48, 97, 98, 99, 100, 101, 102, 49, 50, 51, 52, 53, 54, 55, 56, 57, 76, 95, 85, 94, 103,
10312};
10313
10314#endif // GEN_DIRECTIVES_IMPL
10315
10316