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