Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/llvm/Frontend/OpenMP/OMP.inc is written in an unsupported language. File is not indexed.

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