diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/libs/llvm12/include/llvm/Frontend/OpenMP | |
parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
download | ydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/Frontend/OpenMP')
7 files changed, 4679 insertions, 4679 deletions
diff --git a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.inc b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.inc index 390fac5410..6ed64989bc 100644 --- a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.inc +++ b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.inc @@ -1,3507 +1,3507 @@ -#ifdef GEN_FLANG_DIRECTIVE_CLAUSE_SETS -#undef GEN_FLANG_DIRECTIVE_CLAUSE_SETS - -namespace llvm { -namespace omp { - - // Sets for allocate - - static OmpClauseSet allowedClauses_OMPD_allocate { - llvm::omp::Clause::OMPC_allocator, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_allocate { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_allocate { - }; - - static OmpClauseSet requiredClauses_OMPD_allocate { - }; - - // Sets for assumes - - static OmpClauseSet allowedClauses_OMPD_assumes { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_assumes { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_assumes { - }; - - static OmpClauseSet requiredClauses_OMPD_assumes { - }; - - // Sets for atomic - - static OmpClauseSet allowedClauses_OMPD_atomic { - llvm::omp::Clause::OMPC_read, - llvm::omp::Clause::OMPC_write, - llvm::omp::Clause::OMPC_update, - llvm::omp::Clause::OMPC_capture, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_atomic { - llvm::omp::Clause::OMPC_seq_cst, - llvm::omp::Clause::OMPC_acq_rel, - llvm::omp::Clause::OMPC_acquire, - llvm::omp::Clause::OMPC_release, - llvm::omp::Clause::OMPC_relaxed, - llvm::omp::Clause::OMPC_hint, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_atomic { - }; - - static OmpClauseSet requiredClauses_OMPD_atomic { - }; - - // Sets for barrier - - static OmpClauseSet allowedClauses_OMPD_barrier { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_barrier { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_barrier { - }; - - static OmpClauseSet requiredClauses_OMPD_barrier { - }; - - // Sets for begin assumes - - static OmpClauseSet allowedClauses_OMPD_begin_assumes { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_begin_assumes { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_begin_assumes { - }; - - static OmpClauseSet requiredClauses_OMPD_begin_assumes { - }; - - // Sets for begin declare variant - - static OmpClauseSet allowedClauses_OMPD_begin_declare_variant { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_begin_declare_variant { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_begin_declare_variant { - }; - - static OmpClauseSet requiredClauses_OMPD_begin_declare_variant { - }; - - // Sets for cancel - - static OmpClauseSet allowedClauses_OMPD_cancel { - llvm::omp::Clause::OMPC_if, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_cancel { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_cancel { - }; - - static OmpClauseSet requiredClauses_OMPD_cancel { - }; - - // Sets for cancellation point - - static OmpClauseSet allowedClauses_OMPD_cancellation_point { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_cancellation_point { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_cancellation_point { - }; - - static OmpClauseSet requiredClauses_OMPD_cancellation_point { - }; - - // Sets for critical - - static OmpClauseSet allowedClauses_OMPD_critical { - llvm::omp::Clause::OMPC_hint, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_critical { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_critical { - }; - - static OmpClauseSet requiredClauses_OMPD_critical { - }; - - // Sets for declare mapper - - static OmpClauseSet allowedClauses_OMPD_declare_mapper { - llvm::omp::Clause::OMPC_map, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_declare_mapper { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_declare_mapper { - }; - - static OmpClauseSet requiredClauses_OMPD_declare_mapper { - }; - - // Sets for declare reduction - - static OmpClauseSet allowedClauses_OMPD_declare_reduction { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_declare_reduction { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_declare_reduction { - }; - - static OmpClauseSet requiredClauses_OMPD_declare_reduction { - }; - - // Sets for declare simd - - static OmpClauseSet allowedClauses_OMPD_declare_simd { - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_uniform, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_declare_simd { - llvm::omp::Clause::OMPC_simdlen, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_declare_simd { - llvm::omp::Clause::OMPC_inbranch, - llvm::omp::Clause::OMPC_notinbranch, - }; - - static OmpClauseSet requiredClauses_OMPD_declare_simd { - }; - - // Sets for declare target - - static OmpClauseSet allowedClauses_OMPD_declare_target { - llvm::omp::Clause::OMPC_to, - llvm::omp::Clause::OMPC_link, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_declare_target { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_declare_target { - }; - - static OmpClauseSet requiredClauses_OMPD_declare_target { - }; - - // Sets for declare variant - - static OmpClauseSet allowedClauses_OMPD_declare_variant { - llvm::omp::Clause::OMPC_match, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_declare_variant { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_declare_variant { - }; - - static OmpClauseSet requiredClauses_OMPD_declare_variant { - }; - - // Sets for depobj - - static OmpClauseSet allowedClauses_OMPD_depobj { - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_destroy, - llvm::omp::Clause::OMPC_update, - llvm::omp::Clause::OMPC_depobj, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_depobj { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_depobj { - }; - - static OmpClauseSet requiredClauses_OMPD_depobj { - }; - - // Sets for distribute - - static OmpClauseSet allowedClauses_OMPD_distribute { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_distribute { - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_distribute { - }; - - static OmpClauseSet requiredClauses_OMPD_distribute { - }; - - // Sets for distribute parallel do - - static OmpClauseSet allowedClauses_OMPD_distribute_parallel_do { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_linear, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_do { - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_ordered, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_do { - }; - - static OmpClauseSet requiredClauses_OMPD_distribute_parallel_do { - }; - - // Sets for distribute parallel do simd - - static OmpClauseSet allowedClauses_OMPD_distribute_parallel_do_simd { - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_do_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_do_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_distribute_parallel_do_simd { - }; - - // Sets for distribute parallel for - - static OmpClauseSet allowedClauses_OMPD_distribute_parallel_for { - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_for { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_for { - }; - - static OmpClauseSet requiredClauses_OMPD_distribute_parallel_for { - }; - - // Sets for distribute parallel for simd - - static OmpClauseSet allowedClauses_OMPD_distribute_parallel_for_simd { - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_for_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_for_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_distribute_parallel_for_simd { - }; - - // Sets for distribute simd - - static OmpClauseSet allowedClauses_OMPD_distribute_simd { - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_reduction, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_distribute_simd { - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_distribute_simd { - }; - - // Sets for do - - static OmpClauseSet allowedClauses_OMPD_do { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_reduction, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_do { - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_do { - }; - - static OmpClauseSet requiredClauses_OMPD_do { - }; - - // Sets for do simd - - static OmpClauseSet allowedClauses_OMPD_do_simd { - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_reduction, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_do_simd { - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_do_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_do_simd { - }; - - // Sets for end assumes - - static OmpClauseSet allowedClauses_OMPD_end_assumes { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_end_assumes { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_end_assumes { - }; - - static OmpClauseSet requiredClauses_OMPD_end_assumes { - }; - - // Sets for end declare target - - static OmpClauseSet allowedClauses_OMPD_end_declare_target { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_end_declare_target { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_end_declare_target { - }; - - static OmpClauseSet requiredClauses_OMPD_end_declare_target { - }; - - // Sets for end declare variant - - static OmpClauseSet allowedClauses_OMPD_end_declare_variant { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_end_declare_variant { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_end_declare_variant { - }; - - static OmpClauseSet requiredClauses_OMPD_end_declare_variant { - }; - - // Sets for end do - - static OmpClauseSet allowedClauses_OMPD_end_do { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_end_do { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_end_do { - }; - - static OmpClauseSet requiredClauses_OMPD_end_do { - }; - - // Sets for end do simd - - static OmpClauseSet allowedClauses_OMPD_end_do_simd { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_end_do_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_end_do_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_end_do_simd { - }; - - // Sets for end sections - - static OmpClauseSet allowedClauses_OMPD_end_sections { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_end_sections { - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_end_sections { - }; - - static OmpClauseSet requiredClauses_OMPD_end_sections { - }; - - // Sets for end single - - static OmpClauseSet allowedClauses_OMPD_end_single { - llvm::omp::Clause::OMPC_copyprivate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_end_single { - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_end_single { - }; - - static OmpClauseSet requiredClauses_OMPD_end_single { - }; - - // Sets for end workshare - - static OmpClauseSet allowedClauses_OMPD_end_workshare { - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_end_workshare { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_end_workshare { - }; - - static OmpClauseSet requiredClauses_OMPD_end_workshare { - }; - - // Sets for flush - - static OmpClauseSet allowedClauses_OMPD_flush { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_flush { - llvm::omp::Clause::OMPC_acq_rel, - llvm::omp::Clause::OMPC_acquire, - llvm::omp::Clause::OMPC_release, - llvm::omp::Clause::OMPC_flush, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_flush { - }; - - static OmpClauseSet requiredClauses_OMPD_flush { - }; - - // Sets for for - - static OmpClauseSet allowedClauses_OMPD_for { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_for { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_for { - }; - - static OmpClauseSet requiredClauses_OMPD_for { - }; - - // Sets for for simd - - static OmpClauseSet allowedClauses_OMPD_for_simd { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_for_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_for_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_for_simd { - }; - - // Sets for master - - static OmpClauseSet allowedClauses_OMPD_master { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_master { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_master { - }; - - static OmpClauseSet requiredClauses_OMPD_master { - }; - - // Sets for master taskloop - - static OmpClauseSet allowedClauses_OMPD_master_taskloop { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_final, - llvm::omp::Clause::OMPC_untied, - llvm::omp::Clause::OMPC_mergeable, - llvm::omp::Clause::OMPC_priority, - llvm::omp::Clause::OMPC_grainsize, - llvm::omp::Clause::OMPC_nogroup, - llvm::omp::Clause::OMPC_num_tasks, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_in_reduction, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_master_taskloop { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_master_taskloop { - }; - - static OmpClauseSet requiredClauses_OMPD_master_taskloop { - }; - - // Sets for master taskloop simd - - static OmpClauseSet allowedClauses_OMPD_master_taskloop_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_final, - llvm::omp::Clause::OMPC_untied, - llvm::omp::Clause::OMPC_mergeable, - llvm::omp::Clause::OMPC_priority, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_grainsize, - llvm::omp::Clause::OMPC_nogroup, - llvm::omp::Clause::OMPC_num_tasks, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_in_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_master_taskloop_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_master_taskloop_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_master_taskloop_simd { - }; - - // Sets for ordered - - static OmpClauseSet allowedClauses_OMPD_ordered { - llvm::omp::Clause::OMPC_threads, - llvm::omp::Clause::OMPC_simd, - llvm::omp::Clause::OMPC_depend, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_ordered { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_ordered { - }; - - static OmpClauseSet requiredClauses_OMPD_ordered { - }; - - // Sets for parallel - - static OmpClauseSet allowedClauses_OMPD_parallel { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel { - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel { - }; - - // Sets for parallel do - - static OmpClauseSet allowedClauses_OMPD_parallel_do { - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_do { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_collapse, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_do { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_do { - }; - - // Sets for parallel do simd - - static OmpClauseSet allowedClauses_OMPD_parallel_do_simd { - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_do_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_do_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_do_simd { - }; - - // Sets for parallel for - - static OmpClauseSet allowedClauses_OMPD_parallel_for { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_for { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_for { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_for { - }; - - // Sets for parallel for simd - - static OmpClauseSet allowedClauses_OMPD_parallel_for_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_for_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_for_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_for_simd { - }; - - // Sets for parallel master - - static OmpClauseSet allowedClauses_OMPD_parallel_master { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_master { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_master { - }; - - // Sets for parallel master taskloop - - static OmpClauseSet allowedClauses_OMPD_parallel_master_taskloop { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_final, - llvm::omp::Clause::OMPC_untied, - llvm::omp::Clause::OMPC_mergeable, - llvm::omp::Clause::OMPC_priority, - llvm::omp::Clause::OMPC_grainsize, - llvm::omp::Clause::OMPC_nogroup, - llvm::omp::Clause::OMPC_num_tasks, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_copyin, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_master_taskloop { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master_taskloop { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_master_taskloop { - }; - - // Sets for parallel master taskloop simd - - static OmpClauseSet allowedClauses_OMPD_parallel_master_taskloop_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_final, - llvm::omp::Clause::OMPC_untied, - llvm::omp::Clause::OMPC_mergeable, - llvm::omp::Clause::OMPC_priority, - llvm::omp::Clause::OMPC_grainsize, - llvm::omp::Clause::OMPC_nogroup, - llvm::omp::Clause::OMPC_num_tasks, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_master_taskloop_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master_taskloop_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_master_taskloop_simd { - }; - - // Sets for parallel sections - - static OmpClauseSet allowedClauses_OMPD_parallel_sections { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_sections { - llvm::omp::Clause::OMPC_num_threads, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_sections { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_sections { - }; - - // Sets for parallel workshare - - static OmpClauseSet allowedClauses_OMPD_parallel_workshare { - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_shared, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_parallel_workshare { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_workshare { - }; - - static OmpClauseSet requiredClauses_OMPD_parallel_workshare { - }; - - // Sets for requires - - static OmpClauseSet allowedClauses_OMPD_requires { - llvm::omp::Clause::OMPC_unified_address, - llvm::omp::Clause::OMPC_unified_shared_memory, - llvm::omp::Clause::OMPC_reverse_offload, - llvm::omp::Clause::OMPC_dynamic_allocators, - llvm::omp::Clause::OMPC_atomic_default_mem_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_requires { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_requires { - }; - - static OmpClauseSet requiredClauses_OMPD_requires { - }; - - // Sets for scan - - static OmpClauseSet allowedClauses_OMPD_scan { - llvm::omp::Clause::OMPC_inclusive, - llvm::omp::Clause::OMPC_exclusive, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_scan { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_scan { - }; - - static OmpClauseSet requiredClauses_OMPD_scan { - }; - - // Sets for section - - static OmpClauseSet allowedClauses_OMPD_section { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_section { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_section { - }; - - static OmpClauseSet requiredClauses_OMPD_section { - }; - - // Sets for sections - - static OmpClauseSet allowedClauses_OMPD_sections { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_sections { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_sections { - }; - - static OmpClauseSet requiredClauses_OMPD_sections { - }; - - // Sets for simd - - static OmpClauseSet allowedClauses_OMPD_simd { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_simd { - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_if, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_simd { - }; - - // Sets for single - - static OmpClauseSet allowedClauses_OMPD_single { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_copyprivate, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_single { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_single { - }; - - static OmpClauseSet requiredClauses_OMPD_single { - }; - - // Sets for target - - static OmpClauseSet allowedClauses_OMPD_target { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target { - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target { - }; - - static OmpClauseSet requiredClauses_OMPD_target { - }; - - // Sets for target data - - static OmpClauseSet allowedClauses_OMPD_target_data { - llvm::omp::Clause::OMPC_use_device_ptr, - llvm::omp::Clause::OMPC_use_device_addr, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_data { - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_if, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_data { - }; - - static OmpClauseSet requiredClauses_OMPD_target_data { - llvm::omp::Clause::OMPC_map, - }; - - // Sets for target enter data - - static OmpClauseSet allowedClauses_OMPD_target_enter_data { - llvm::omp::Clause::OMPC_depend, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_enter_data { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_enter_data { - }; - - static OmpClauseSet requiredClauses_OMPD_target_enter_data { - llvm::omp::Clause::OMPC_map, - }; - - // Sets for target exit data - - static OmpClauseSet allowedClauses_OMPD_target_exit_data { - llvm::omp::Clause::OMPC_depend, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_exit_data { - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_exit_data { - }; - - static OmpClauseSet requiredClauses_OMPD_target_exit_data { - llvm::omp::Clause::OMPC_map, - }; - - // Sets for target parallel - - static OmpClauseSet allowedClauses_OMPD_target_parallel { - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_parallel { - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel { - }; - - static OmpClauseSet requiredClauses_OMPD_target_parallel { - }; - - // Sets for target parallel do - - static OmpClauseSet allowedClauses_OMPD_target_parallel_do { - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_allocator, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_uses_allocators, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_copyin, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_do { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_nowait, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_do { - }; - - static OmpClauseSet requiredClauses_OMPD_target_parallel_do { - }; - - // Sets for target parallel do simd - - static OmpClauseSet allowedClauses_OMPD_target_parallel_do_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_do_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_do_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_target_parallel_do_simd { - }; - - // Sets for target parallel for - - static OmpClauseSet allowedClauses_OMPD_target_parallel_for { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_for { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_for { - }; - - static OmpClauseSet requiredClauses_OMPD_target_parallel_for { - }; - - // Sets for target parallel for simd - - static OmpClauseSet allowedClauses_OMPD_target_parallel_for_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_for_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_for_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_target_parallel_for_simd { - }; - - // Sets for target simd - - static OmpClauseSet allowedClauses_OMPD_target_simd { - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_simd { - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_schedule, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_target_simd { - }; - - // Sets for target teams - - static OmpClauseSet allowedClauses_OMPD_target_teams { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_uses_allocators, - llvm::omp::Clause::OMPC_shared, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_teams { - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams { - }; - - static OmpClauseSet requiredClauses_OMPD_target_teams { - }; - - // Sets for target teams distribute - - static OmpClauseSet allowedClauses_OMPD_target_teams_distribute { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_uses_allocators, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_lastprivate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute { - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute { - }; - - static OmpClauseSet requiredClauses_OMPD_target_teams_distribute { - }; - - // Sets for target teams distribute parallel do - - static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_do { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_uses_allocators, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_do { - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do { - }; - - static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_do { - }; - - // Sets for target teams distribute parallel do simd - - static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_do_simd { - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_uses_allocators, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_nontemporal, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_do_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_do_simd { - }; - - // Sets for target teams distribute parallel for - - static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_for { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_for { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for { - }; - - static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_for { - }; - - // Sets for target teams distribute parallel for simd - - static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_for_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_for_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_for_simd { - }; - - // Sets for target teams distribute simd - - static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_simd { - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_is_device_ptr, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_map, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_uses_allocators, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_simd { - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_defaultmap, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_simd { - }; - - // Sets for target update - - static OmpClauseSet allowedClauses_OMPD_target_update { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_device, - llvm::omp::Clause::OMPC_to, - llvm::omp::Clause::OMPC_from, - llvm::omp::Clause::OMPC_nowait, - llvm::omp::Clause::OMPC_depend, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_target_update { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_target_update { - }; - - static OmpClauseSet requiredClauses_OMPD_target_update { - }; - - // Sets for task - - static OmpClauseSet allowedClauses_OMPD_task { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_untied, - llvm::omp::Clause::OMPC_mergeable, - llvm::omp::Clause::OMPC_depend, - llvm::omp::Clause::OMPC_in_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_detach, - llvm::omp::Clause::OMPC_affinity, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_task { - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_final, - llvm::omp::Clause::OMPC_priority, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_task { - }; - - static OmpClauseSet requiredClauses_OMPD_task { - }; - - // Sets for taskgroup - - static OmpClauseSet allowedClauses_OMPD_taskgroup { - llvm::omp::Clause::OMPC_task_reduction, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_taskgroup { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_taskgroup { - }; - - static OmpClauseSet requiredClauses_OMPD_taskgroup { - }; - - // Sets for taskloop - - static OmpClauseSet allowedClauses_OMPD_taskloop { - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_untied, - llvm::omp::Clause::OMPC_mergeable, - llvm::omp::Clause::OMPC_nogroup, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_in_reduction, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_taskloop { - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_final, - llvm::omp::Clause::OMPC_priority, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_taskloop { - llvm::omp::Clause::OMPC_grainsize, - llvm::omp::Clause::OMPC_num_tasks, - }; - - static OmpClauseSet requiredClauses_OMPD_taskloop { - }; - - // Sets for taskloop simd - - static OmpClauseSet allowedClauses_OMPD_taskloop_simd { - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_in_reduction, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_mergeable, - llvm::omp::Clause::OMPC_nogroup, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_untied, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_taskloop_simd { - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_final, - llvm::omp::Clause::OMPC_priority, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_taskloop_simd { - llvm::omp::Clause::OMPC_grainsize, - llvm::omp::Clause::OMPC_num_tasks, - }; - - static OmpClauseSet requiredClauses_OMPD_taskloop_simd { - }; - - // Sets for taskwait - - static OmpClauseSet allowedClauses_OMPD_taskwait { - llvm::omp::Clause::OMPC_depend, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_taskwait { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_taskwait { - }; - - static OmpClauseSet requiredClauses_OMPD_taskwait { - }; - - // Sets for taskyield - - static OmpClauseSet allowedClauses_OMPD_taskyield { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_taskyield { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_taskyield { - }; - - static OmpClauseSet requiredClauses_OMPD_taskyield { - }; - - // Sets for teams - - static OmpClauseSet allowedClauses_OMPD_teams { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_teams { - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_teams { - }; - - static OmpClauseSet requiredClauses_OMPD_teams { - }; - - // Sets for teams distribute - - static OmpClauseSet allowedClauses_OMPD_teams_distribute { - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_allocate, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute { - }; - - static OmpClauseSet requiredClauses_OMPD_teams_distribute { - }; - - // Sets for teams distribute parallel do - - static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_do { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_linear, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_do { - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_ordered, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_do { - }; - - static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_do { - }; - - // Sets for teams distribute parallel do simd - - static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_do_simd { - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_nontemporal, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_do_simd { - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_if, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_do_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_do_simd { - }; - - // Sets for teams distribute parallel for - - static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_for { - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_copyin, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_for { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_for { - }; - - static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_for { - }; - - // Sets for teams distribute parallel for simd - - static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_for_simd { - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_threads, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_proc_bind, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_shared, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_schedule, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_thread_limit, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_for_simd { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_for_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_for_simd { - }; - - // Sets for teams distribute simd - - static OmpClauseSet allowedClauses_OMPD_teams_distribute_simd { - llvm::omp::Clause::OMPC_aligned, - llvm::omp::Clause::OMPC_allocate, - llvm::omp::Clause::OMPC_firstprivate, - llvm::omp::Clause::OMPC_lastprivate, - llvm::omp::Clause::OMPC_linear, - llvm::omp::Clause::OMPC_nontemporal, - llvm::omp::Clause::OMPC_order, - llvm::omp::Clause::OMPC_private, - llvm::omp::Clause::OMPC_reduction, - llvm::omp::Clause::OMPC_shared, - }; - - static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_simd { - llvm::omp::Clause::OMPC_collapse, - llvm::omp::Clause::OMPC_default, - llvm::omp::Clause::OMPC_dist_schedule, - llvm::omp::Clause::OMPC_if, - llvm::omp::Clause::OMPC_num_teams, - llvm::omp::Clause::OMPC_safelen, - llvm::omp::Clause::OMPC_simdlen, - llvm::omp::Clause::OMPC_thread_limit, - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_simd { - }; - - static OmpClauseSet requiredClauses_OMPD_teams_distribute_simd { - }; - - // Sets for threadprivate - - static OmpClauseSet allowedClauses_OMPD_threadprivate { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_threadprivate { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_threadprivate { - }; - - static OmpClauseSet requiredClauses_OMPD_threadprivate { - }; - - // Sets for unknown - - static OmpClauseSet allowedClauses_OMPD_unknown { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_unknown { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_unknown { - }; - - static OmpClauseSet requiredClauses_OMPD_unknown { - }; - - // Sets for workshare - - static OmpClauseSet allowedClauses_OMPD_workshare { - }; - - static OmpClauseSet allowedOnceClauses_OMPD_workshare { - }; - - static OmpClauseSet allowedExclusiveClauses_OMPD_workshare { - }; - - static OmpClauseSet requiredClauses_OMPD_workshare { - }; -} // namespace omp -} // namespace llvm - -#endif // GEN_FLANG_DIRECTIVE_CLAUSE_SETS - -#ifdef GEN_FLANG_DIRECTIVE_CLAUSE_MAP -#undef GEN_FLANG_DIRECTIVE_CLAUSE_MAP - -{ - {llvm::omp::Directive::OMPD_allocate, - { - llvm::omp::allowedClauses_OMPD_allocate, - llvm::omp::allowedOnceClauses_OMPD_allocate, - llvm::omp::allowedExclusiveClauses_OMPD_allocate, - llvm::omp::requiredClauses_OMPD_allocate, - } - }, - {llvm::omp::Directive::OMPD_assumes, - { - llvm::omp::allowedClauses_OMPD_assumes, - llvm::omp::allowedOnceClauses_OMPD_assumes, - llvm::omp::allowedExclusiveClauses_OMPD_assumes, - llvm::omp::requiredClauses_OMPD_assumes, - } - }, - {llvm::omp::Directive::OMPD_atomic, - { - llvm::omp::allowedClauses_OMPD_atomic, - llvm::omp::allowedOnceClauses_OMPD_atomic, - llvm::omp::allowedExclusiveClauses_OMPD_atomic, - llvm::omp::requiredClauses_OMPD_atomic, - } - }, - {llvm::omp::Directive::OMPD_barrier, - { - llvm::omp::allowedClauses_OMPD_barrier, - llvm::omp::allowedOnceClauses_OMPD_barrier, - llvm::omp::allowedExclusiveClauses_OMPD_barrier, - llvm::omp::requiredClauses_OMPD_barrier, - } - }, - {llvm::omp::Directive::OMPD_begin_assumes, - { - llvm::omp::allowedClauses_OMPD_begin_assumes, - llvm::omp::allowedOnceClauses_OMPD_begin_assumes, - llvm::omp::allowedExclusiveClauses_OMPD_begin_assumes, - llvm::omp::requiredClauses_OMPD_begin_assumes, - } - }, - {llvm::omp::Directive::OMPD_begin_declare_variant, - { - llvm::omp::allowedClauses_OMPD_begin_declare_variant, - llvm::omp::allowedOnceClauses_OMPD_begin_declare_variant, - llvm::omp::allowedExclusiveClauses_OMPD_begin_declare_variant, - llvm::omp::requiredClauses_OMPD_begin_declare_variant, - } - }, - {llvm::omp::Directive::OMPD_cancel, - { - llvm::omp::allowedClauses_OMPD_cancel, - llvm::omp::allowedOnceClauses_OMPD_cancel, - llvm::omp::allowedExclusiveClauses_OMPD_cancel, - llvm::omp::requiredClauses_OMPD_cancel, - } - }, - {llvm::omp::Directive::OMPD_cancellation_point, - { - llvm::omp::allowedClauses_OMPD_cancellation_point, - llvm::omp::allowedOnceClauses_OMPD_cancellation_point, - llvm::omp::allowedExclusiveClauses_OMPD_cancellation_point, - llvm::omp::requiredClauses_OMPD_cancellation_point, - } - }, - {llvm::omp::Directive::OMPD_critical, - { - llvm::omp::allowedClauses_OMPD_critical, - llvm::omp::allowedOnceClauses_OMPD_critical, - llvm::omp::allowedExclusiveClauses_OMPD_critical, - llvm::omp::requiredClauses_OMPD_critical, - } - }, - {llvm::omp::Directive::OMPD_declare_mapper, - { - llvm::omp::allowedClauses_OMPD_declare_mapper, - llvm::omp::allowedOnceClauses_OMPD_declare_mapper, - llvm::omp::allowedExclusiveClauses_OMPD_declare_mapper, - llvm::omp::requiredClauses_OMPD_declare_mapper, - } - }, - {llvm::omp::Directive::OMPD_declare_reduction, - { - llvm::omp::allowedClauses_OMPD_declare_reduction, - llvm::omp::allowedOnceClauses_OMPD_declare_reduction, - llvm::omp::allowedExclusiveClauses_OMPD_declare_reduction, - llvm::omp::requiredClauses_OMPD_declare_reduction, - } - }, - {llvm::omp::Directive::OMPD_declare_simd, - { - llvm::omp::allowedClauses_OMPD_declare_simd, - llvm::omp::allowedOnceClauses_OMPD_declare_simd, - llvm::omp::allowedExclusiveClauses_OMPD_declare_simd, - llvm::omp::requiredClauses_OMPD_declare_simd, - } - }, - {llvm::omp::Directive::OMPD_declare_target, - { - llvm::omp::allowedClauses_OMPD_declare_target, - llvm::omp::allowedOnceClauses_OMPD_declare_target, - llvm::omp::allowedExclusiveClauses_OMPD_declare_target, - llvm::omp::requiredClauses_OMPD_declare_target, - } - }, - {llvm::omp::Directive::OMPD_declare_variant, - { - llvm::omp::allowedClauses_OMPD_declare_variant, - llvm::omp::allowedOnceClauses_OMPD_declare_variant, - llvm::omp::allowedExclusiveClauses_OMPD_declare_variant, - llvm::omp::requiredClauses_OMPD_declare_variant, - } - }, - {llvm::omp::Directive::OMPD_depobj, - { - llvm::omp::allowedClauses_OMPD_depobj, - llvm::omp::allowedOnceClauses_OMPD_depobj, - llvm::omp::allowedExclusiveClauses_OMPD_depobj, - llvm::omp::requiredClauses_OMPD_depobj, - } - }, - {llvm::omp::Directive::OMPD_distribute, - { - llvm::omp::allowedClauses_OMPD_distribute, - llvm::omp::allowedOnceClauses_OMPD_distribute, - llvm::omp::allowedExclusiveClauses_OMPD_distribute, - llvm::omp::requiredClauses_OMPD_distribute, - } - }, - {llvm::omp::Directive::OMPD_distribute_parallel_do, - { - llvm::omp::allowedClauses_OMPD_distribute_parallel_do, - llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_do, - llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_do, - llvm::omp::requiredClauses_OMPD_distribute_parallel_do, - } - }, - {llvm::omp::Directive::OMPD_distribute_parallel_do_simd, - { - llvm::omp::allowedClauses_OMPD_distribute_parallel_do_simd, - llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_do_simd, - llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_do_simd, - llvm::omp::requiredClauses_OMPD_distribute_parallel_do_simd, - } - }, - {llvm::omp::Directive::OMPD_distribute_parallel_for, - { - llvm::omp::allowedClauses_OMPD_distribute_parallel_for, - llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_for, - llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_for, - llvm::omp::requiredClauses_OMPD_distribute_parallel_for, - } - }, - {llvm::omp::Directive::OMPD_distribute_parallel_for_simd, - { - llvm::omp::allowedClauses_OMPD_distribute_parallel_for_simd, - llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_for_simd, - llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_for_simd, - llvm::omp::requiredClauses_OMPD_distribute_parallel_for_simd, - } - }, - {llvm::omp::Directive::OMPD_distribute_simd, - { - llvm::omp::allowedClauses_OMPD_distribute_simd, - llvm::omp::allowedOnceClauses_OMPD_distribute_simd, - llvm::omp::allowedExclusiveClauses_OMPD_distribute_simd, - llvm::omp::requiredClauses_OMPD_distribute_simd, - } - }, - {llvm::omp::Directive::OMPD_do, - { - llvm::omp::allowedClauses_OMPD_do, - llvm::omp::allowedOnceClauses_OMPD_do, - llvm::omp::allowedExclusiveClauses_OMPD_do, - llvm::omp::requiredClauses_OMPD_do, - } - }, - {llvm::omp::Directive::OMPD_do_simd, - { - llvm::omp::allowedClauses_OMPD_do_simd, - llvm::omp::allowedOnceClauses_OMPD_do_simd, - llvm::omp::allowedExclusiveClauses_OMPD_do_simd, - llvm::omp::requiredClauses_OMPD_do_simd, - } - }, - {llvm::omp::Directive::OMPD_end_assumes, - { - llvm::omp::allowedClauses_OMPD_end_assumes, - llvm::omp::allowedOnceClauses_OMPD_end_assumes, - llvm::omp::allowedExclusiveClauses_OMPD_end_assumes, - llvm::omp::requiredClauses_OMPD_end_assumes, - } - }, - {llvm::omp::Directive::OMPD_end_declare_target, - { - llvm::omp::allowedClauses_OMPD_end_declare_target, - llvm::omp::allowedOnceClauses_OMPD_end_declare_target, - llvm::omp::allowedExclusiveClauses_OMPD_end_declare_target, - llvm::omp::requiredClauses_OMPD_end_declare_target, - } - }, - {llvm::omp::Directive::OMPD_end_declare_variant, - { - llvm::omp::allowedClauses_OMPD_end_declare_variant, - llvm::omp::allowedOnceClauses_OMPD_end_declare_variant, - llvm::omp::allowedExclusiveClauses_OMPD_end_declare_variant, - llvm::omp::requiredClauses_OMPD_end_declare_variant, - } - }, - {llvm::omp::Directive::OMPD_end_do, - { - llvm::omp::allowedClauses_OMPD_end_do, - llvm::omp::allowedOnceClauses_OMPD_end_do, - llvm::omp::allowedExclusiveClauses_OMPD_end_do, - llvm::omp::requiredClauses_OMPD_end_do, - } - }, - {llvm::omp::Directive::OMPD_end_do_simd, - { - llvm::omp::allowedClauses_OMPD_end_do_simd, - llvm::omp::allowedOnceClauses_OMPD_end_do_simd, - llvm::omp::allowedExclusiveClauses_OMPD_end_do_simd, - llvm::omp::requiredClauses_OMPD_end_do_simd, - } - }, - {llvm::omp::Directive::OMPD_end_sections, - { - llvm::omp::allowedClauses_OMPD_end_sections, - llvm::omp::allowedOnceClauses_OMPD_end_sections, - llvm::omp::allowedExclusiveClauses_OMPD_end_sections, - llvm::omp::requiredClauses_OMPD_end_sections, - } - }, - {llvm::omp::Directive::OMPD_end_single, - { - llvm::omp::allowedClauses_OMPD_end_single, - llvm::omp::allowedOnceClauses_OMPD_end_single, - llvm::omp::allowedExclusiveClauses_OMPD_end_single, - llvm::omp::requiredClauses_OMPD_end_single, - } - }, - {llvm::omp::Directive::OMPD_end_workshare, - { - llvm::omp::allowedClauses_OMPD_end_workshare, - llvm::omp::allowedOnceClauses_OMPD_end_workshare, - llvm::omp::allowedExclusiveClauses_OMPD_end_workshare, - llvm::omp::requiredClauses_OMPD_end_workshare, - } - }, - {llvm::omp::Directive::OMPD_flush, - { - llvm::omp::allowedClauses_OMPD_flush, - llvm::omp::allowedOnceClauses_OMPD_flush, - llvm::omp::allowedExclusiveClauses_OMPD_flush, - llvm::omp::requiredClauses_OMPD_flush, - } - }, - {llvm::omp::Directive::OMPD_for, - { - llvm::omp::allowedClauses_OMPD_for, - llvm::omp::allowedOnceClauses_OMPD_for, - llvm::omp::allowedExclusiveClauses_OMPD_for, - llvm::omp::requiredClauses_OMPD_for, - } - }, - {llvm::omp::Directive::OMPD_for_simd, - { - llvm::omp::allowedClauses_OMPD_for_simd, - llvm::omp::allowedOnceClauses_OMPD_for_simd, - llvm::omp::allowedExclusiveClauses_OMPD_for_simd, - llvm::omp::requiredClauses_OMPD_for_simd, - } - }, - {llvm::omp::Directive::OMPD_master, - { - llvm::omp::allowedClauses_OMPD_master, - llvm::omp::allowedOnceClauses_OMPD_master, - llvm::omp::allowedExclusiveClauses_OMPD_master, - llvm::omp::requiredClauses_OMPD_master, - } - }, - {llvm::omp::Directive::OMPD_master_taskloop, - { - llvm::omp::allowedClauses_OMPD_master_taskloop, - llvm::omp::allowedOnceClauses_OMPD_master_taskloop, - llvm::omp::allowedExclusiveClauses_OMPD_master_taskloop, - llvm::omp::requiredClauses_OMPD_master_taskloop, - } - }, - {llvm::omp::Directive::OMPD_master_taskloop_simd, - { - llvm::omp::allowedClauses_OMPD_master_taskloop_simd, - llvm::omp::allowedOnceClauses_OMPD_master_taskloop_simd, - llvm::omp::allowedExclusiveClauses_OMPD_master_taskloop_simd, - llvm::omp::requiredClauses_OMPD_master_taskloop_simd, - } - }, - {llvm::omp::Directive::OMPD_ordered, - { - llvm::omp::allowedClauses_OMPD_ordered, - llvm::omp::allowedOnceClauses_OMPD_ordered, - llvm::omp::allowedExclusiveClauses_OMPD_ordered, - llvm::omp::requiredClauses_OMPD_ordered, - } - }, - {llvm::omp::Directive::OMPD_parallel, - { - llvm::omp::allowedClauses_OMPD_parallel, - llvm::omp::allowedOnceClauses_OMPD_parallel, - llvm::omp::allowedExclusiveClauses_OMPD_parallel, - llvm::omp::requiredClauses_OMPD_parallel, - } - }, - {llvm::omp::Directive::OMPD_parallel_do, - { - llvm::omp::allowedClauses_OMPD_parallel_do, - llvm::omp::allowedOnceClauses_OMPD_parallel_do, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_do, - llvm::omp::requiredClauses_OMPD_parallel_do, - } - }, - {llvm::omp::Directive::OMPD_parallel_do_simd, - { - llvm::omp::allowedClauses_OMPD_parallel_do_simd, - llvm::omp::allowedOnceClauses_OMPD_parallel_do_simd, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_do_simd, - llvm::omp::requiredClauses_OMPD_parallel_do_simd, - } - }, - {llvm::omp::Directive::OMPD_parallel_for, - { - llvm::omp::allowedClauses_OMPD_parallel_for, - llvm::omp::allowedOnceClauses_OMPD_parallel_for, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_for, - llvm::omp::requiredClauses_OMPD_parallel_for, - } - }, - {llvm::omp::Directive::OMPD_parallel_for_simd, - { - llvm::omp::allowedClauses_OMPD_parallel_for_simd, - llvm::omp::allowedOnceClauses_OMPD_parallel_for_simd, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_for_simd, - llvm::omp::requiredClauses_OMPD_parallel_for_simd, - } - }, - {llvm::omp::Directive::OMPD_parallel_master, - { - llvm::omp::allowedClauses_OMPD_parallel_master, - llvm::omp::allowedOnceClauses_OMPD_parallel_master, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_master, - llvm::omp::requiredClauses_OMPD_parallel_master, - } - }, - {llvm::omp::Directive::OMPD_parallel_master_taskloop, - { - llvm::omp::allowedClauses_OMPD_parallel_master_taskloop, - llvm::omp::allowedOnceClauses_OMPD_parallel_master_taskloop, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_master_taskloop, - llvm::omp::requiredClauses_OMPD_parallel_master_taskloop, - } - }, - {llvm::omp::Directive::OMPD_parallel_master_taskloop_simd, - { - llvm::omp::allowedClauses_OMPD_parallel_master_taskloop_simd, - llvm::omp::allowedOnceClauses_OMPD_parallel_master_taskloop_simd, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_master_taskloop_simd, - llvm::omp::requiredClauses_OMPD_parallel_master_taskloop_simd, - } - }, - {llvm::omp::Directive::OMPD_parallel_sections, - { - llvm::omp::allowedClauses_OMPD_parallel_sections, - llvm::omp::allowedOnceClauses_OMPD_parallel_sections, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_sections, - llvm::omp::requiredClauses_OMPD_parallel_sections, - } - }, - {llvm::omp::Directive::OMPD_parallel_workshare, - { - llvm::omp::allowedClauses_OMPD_parallel_workshare, - llvm::omp::allowedOnceClauses_OMPD_parallel_workshare, - llvm::omp::allowedExclusiveClauses_OMPD_parallel_workshare, - llvm::omp::requiredClauses_OMPD_parallel_workshare, - } - }, - {llvm::omp::Directive::OMPD_requires, - { - llvm::omp::allowedClauses_OMPD_requires, - llvm::omp::allowedOnceClauses_OMPD_requires, - llvm::omp::allowedExclusiveClauses_OMPD_requires, - llvm::omp::requiredClauses_OMPD_requires, - } - }, - {llvm::omp::Directive::OMPD_scan, - { - llvm::omp::allowedClauses_OMPD_scan, - llvm::omp::allowedOnceClauses_OMPD_scan, - llvm::omp::allowedExclusiveClauses_OMPD_scan, - llvm::omp::requiredClauses_OMPD_scan, - } - }, - {llvm::omp::Directive::OMPD_section, - { - llvm::omp::allowedClauses_OMPD_section, - llvm::omp::allowedOnceClauses_OMPD_section, - llvm::omp::allowedExclusiveClauses_OMPD_section, - llvm::omp::requiredClauses_OMPD_section, - } - }, - {llvm::omp::Directive::OMPD_sections, - { - llvm::omp::allowedClauses_OMPD_sections, - llvm::omp::allowedOnceClauses_OMPD_sections, - llvm::omp::allowedExclusiveClauses_OMPD_sections, - llvm::omp::requiredClauses_OMPD_sections, - } - }, - {llvm::omp::Directive::OMPD_simd, - { - llvm::omp::allowedClauses_OMPD_simd, - llvm::omp::allowedOnceClauses_OMPD_simd, - llvm::omp::allowedExclusiveClauses_OMPD_simd, - llvm::omp::requiredClauses_OMPD_simd, - } - }, - {llvm::omp::Directive::OMPD_single, - { - llvm::omp::allowedClauses_OMPD_single, - llvm::omp::allowedOnceClauses_OMPD_single, - llvm::omp::allowedExclusiveClauses_OMPD_single, - llvm::omp::requiredClauses_OMPD_single, - } - }, - {llvm::omp::Directive::OMPD_target, - { - llvm::omp::allowedClauses_OMPD_target, - llvm::omp::allowedOnceClauses_OMPD_target, - llvm::omp::allowedExclusiveClauses_OMPD_target, - llvm::omp::requiredClauses_OMPD_target, - } - }, - {llvm::omp::Directive::OMPD_target_data, - { - llvm::omp::allowedClauses_OMPD_target_data, - llvm::omp::allowedOnceClauses_OMPD_target_data, - llvm::omp::allowedExclusiveClauses_OMPD_target_data, - llvm::omp::requiredClauses_OMPD_target_data, - } - }, - {llvm::omp::Directive::OMPD_target_enter_data, - { - llvm::omp::allowedClauses_OMPD_target_enter_data, - llvm::omp::allowedOnceClauses_OMPD_target_enter_data, - llvm::omp::allowedExclusiveClauses_OMPD_target_enter_data, - llvm::omp::requiredClauses_OMPD_target_enter_data, - } - }, - {llvm::omp::Directive::OMPD_target_exit_data, - { - llvm::omp::allowedClauses_OMPD_target_exit_data, - llvm::omp::allowedOnceClauses_OMPD_target_exit_data, - llvm::omp::allowedExclusiveClauses_OMPD_target_exit_data, - llvm::omp::requiredClauses_OMPD_target_exit_data, - } - }, - {llvm::omp::Directive::OMPD_target_parallel, - { - llvm::omp::allowedClauses_OMPD_target_parallel, - llvm::omp::allowedOnceClauses_OMPD_target_parallel, - llvm::omp::allowedExclusiveClauses_OMPD_target_parallel, - llvm::omp::requiredClauses_OMPD_target_parallel, - } - }, - {llvm::omp::Directive::OMPD_target_parallel_do, - { - llvm::omp::allowedClauses_OMPD_target_parallel_do, - llvm::omp::allowedOnceClauses_OMPD_target_parallel_do, - llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_do, - llvm::omp::requiredClauses_OMPD_target_parallel_do, - } - }, - {llvm::omp::Directive::OMPD_target_parallel_do_simd, - { - llvm::omp::allowedClauses_OMPD_target_parallel_do_simd, - llvm::omp::allowedOnceClauses_OMPD_target_parallel_do_simd, - llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_do_simd, - llvm::omp::requiredClauses_OMPD_target_parallel_do_simd, - } - }, - {llvm::omp::Directive::OMPD_target_parallel_for, - { - llvm::omp::allowedClauses_OMPD_target_parallel_for, - llvm::omp::allowedOnceClauses_OMPD_target_parallel_for, - llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_for, - llvm::omp::requiredClauses_OMPD_target_parallel_for, - } - }, - {llvm::omp::Directive::OMPD_target_parallel_for_simd, - { - llvm::omp::allowedClauses_OMPD_target_parallel_for_simd, - llvm::omp::allowedOnceClauses_OMPD_target_parallel_for_simd, - llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_for_simd, - llvm::omp::requiredClauses_OMPD_target_parallel_for_simd, - } - }, - {llvm::omp::Directive::OMPD_target_simd, - { - llvm::omp::allowedClauses_OMPD_target_simd, - llvm::omp::allowedOnceClauses_OMPD_target_simd, - llvm::omp::allowedExclusiveClauses_OMPD_target_simd, - llvm::omp::requiredClauses_OMPD_target_simd, - } - }, - {llvm::omp::Directive::OMPD_target_teams, - { - llvm::omp::allowedClauses_OMPD_target_teams, - llvm::omp::allowedOnceClauses_OMPD_target_teams, - llvm::omp::allowedExclusiveClauses_OMPD_target_teams, - llvm::omp::requiredClauses_OMPD_target_teams, - } - }, - {llvm::omp::Directive::OMPD_target_teams_distribute, - { - llvm::omp::allowedClauses_OMPD_target_teams_distribute, - llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute, - llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute, - llvm::omp::requiredClauses_OMPD_target_teams_distribute, - } - }, - {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do, - { - llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_do, - llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_do, - llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do, - llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_do, - } - }, - {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do_simd, - { - llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_do_simd, - llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_do_simd, - llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do_simd, - llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_do_simd, - } - }, - {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_for, - { - llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_for, - llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_for, - llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for, - llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_for, - } - }, - {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_for_simd, - { - llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_for_simd, - llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_for_simd, - llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for_simd, - llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_for_simd, - } - }, - {llvm::omp::Directive::OMPD_target_teams_distribute_simd, - { - llvm::omp::allowedClauses_OMPD_target_teams_distribute_simd, - llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_simd, - llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_simd, - llvm::omp::requiredClauses_OMPD_target_teams_distribute_simd, - } - }, - {llvm::omp::Directive::OMPD_target_update, - { - llvm::omp::allowedClauses_OMPD_target_update, - llvm::omp::allowedOnceClauses_OMPD_target_update, - llvm::omp::allowedExclusiveClauses_OMPD_target_update, - llvm::omp::requiredClauses_OMPD_target_update, - } - }, - {llvm::omp::Directive::OMPD_task, - { - llvm::omp::allowedClauses_OMPD_task, - llvm::omp::allowedOnceClauses_OMPD_task, - llvm::omp::allowedExclusiveClauses_OMPD_task, - llvm::omp::requiredClauses_OMPD_task, - } - }, - {llvm::omp::Directive::OMPD_taskgroup, - { - llvm::omp::allowedClauses_OMPD_taskgroup, - llvm::omp::allowedOnceClauses_OMPD_taskgroup, - llvm::omp::allowedExclusiveClauses_OMPD_taskgroup, - llvm::omp::requiredClauses_OMPD_taskgroup, - } - }, - {llvm::omp::Directive::OMPD_taskloop, - { - llvm::omp::allowedClauses_OMPD_taskloop, - llvm::omp::allowedOnceClauses_OMPD_taskloop, - llvm::omp::allowedExclusiveClauses_OMPD_taskloop, - llvm::omp::requiredClauses_OMPD_taskloop, - } - }, - {llvm::omp::Directive::OMPD_taskloop_simd, - { - llvm::omp::allowedClauses_OMPD_taskloop_simd, - llvm::omp::allowedOnceClauses_OMPD_taskloop_simd, - llvm::omp::allowedExclusiveClauses_OMPD_taskloop_simd, - llvm::omp::requiredClauses_OMPD_taskloop_simd, - } - }, - {llvm::omp::Directive::OMPD_taskwait, - { - llvm::omp::allowedClauses_OMPD_taskwait, - llvm::omp::allowedOnceClauses_OMPD_taskwait, - llvm::omp::allowedExclusiveClauses_OMPD_taskwait, - llvm::omp::requiredClauses_OMPD_taskwait, - } - }, - {llvm::omp::Directive::OMPD_taskyield, - { - llvm::omp::allowedClauses_OMPD_taskyield, - llvm::omp::allowedOnceClauses_OMPD_taskyield, - llvm::omp::allowedExclusiveClauses_OMPD_taskyield, - llvm::omp::requiredClauses_OMPD_taskyield, - } - }, - {llvm::omp::Directive::OMPD_teams, - { - llvm::omp::allowedClauses_OMPD_teams, - llvm::omp::allowedOnceClauses_OMPD_teams, - llvm::omp::allowedExclusiveClauses_OMPD_teams, - llvm::omp::requiredClauses_OMPD_teams, - } - }, - {llvm::omp::Directive::OMPD_teams_distribute, - { - llvm::omp::allowedClauses_OMPD_teams_distribute, - llvm::omp::allowedOnceClauses_OMPD_teams_distribute, - llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute, - llvm::omp::requiredClauses_OMPD_teams_distribute, - } - }, - {llvm::omp::Directive::OMPD_teams_distribute_parallel_do, - { - llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_do, - llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_do, - llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_do, - llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_do, - } - }, - {llvm::omp::Directive::OMPD_teams_distribute_parallel_do_simd, - { - llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_do_simd, - llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_do_simd, - llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_do_simd, - llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_do_simd, - } - }, - {llvm::omp::Directive::OMPD_teams_distribute_parallel_for, - { - llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_for, - llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_for, - llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_for, - llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_for, - } - }, - {llvm::omp::Directive::OMPD_teams_distribute_parallel_for_simd, - { - llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_for_simd, - llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_for_simd, - llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_for_simd, - llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_for_simd, - } - }, - {llvm::omp::Directive::OMPD_teams_distribute_simd, - { - llvm::omp::allowedClauses_OMPD_teams_distribute_simd, - llvm::omp::allowedOnceClauses_OMPD_teams_distribute_simd, - llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_simd, - llvm::omp::requiredClauses_OMPD_teams_distribute_simd, - } - }, - {llvm::omp::Directive::OMPD_threadprivate, - { - llvm::omp::allowedClauses_OMPD_threadprivate, - llvm::omp::allowedOnceClauses_OMPD_threadprivate, - llvm::omp::allowedExclusiveClauses_OMPD_threadprivate, - llvm::omp::requiredClauses_OMPD_threadprivate, - } - }, - {llvm::omp::Directive::OMPD_unknown, - { - llvm::omp::allowedClauses_OMPD_unknown, - llvm::omp::allowedOnceClauses_OMPD_unknown, - llvm::omp::allowedExclusiveClauses_OMPD_unknown, - llvm::omp::requiredClauses_OMPD_unknown, - } - }, - {llvm::omp::Directive::OMPD_workshare, - { - llvm::omp::allowedClauses_OMPD_workshare, - llvm::omp::allowedOnceClauses_OMPD_workshare, - llvm::omp::allowedExclusiveClauses_OMPD_workshare, - llvm::omp::requiredClauses_OMPD_workshare, - } - }, -} - -#endif // GEN_FLANG_DIRECTIVE_CLAUSE_MAP - -#ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES -#undef GEN_FLANG_CLAUSE_PARSER_CLASSES - -EMPTY_CLASS(AcqRel); -EMPTY_CLASS(Acquire); -EMPTY_CLASS(Affinity); -WRAPPER_CLASS(Aligned, OmpAlignedClause); -WRAPPER_CLASS(Allocate, OmpAllocateClause); -WRAPPER_CLASS(Allocator, ScalarIntExpr); -EMPTY_CLASS(AtomicDefaultMemOrder); -EMPTY_CLASS(Capture); -WRAPPER_CLASS(Collapse, ScalarIntConstantExpr); -WRAPPER_CLASS(Copyprivate, OmpObjectList); -WRAPPER_CLASS(Copyin, OmpObjectList); -WRAPPER_CLASS(Default, OmpDefaultClause); -WRAPPER_CLASS(Defaultmap, OmpDefaultmapClause); -WRAPPER_CLASS(Depend, OmpDependClause); -EMPTY_CLASS(Depobj); -EMPTY_CLASS(Destroy); -EMPTY_CLASS(Detach); -WRAPPER_CLASS(Device, ScalarIntExpr); -EMPTY_CLASS(DeviceType); -WRAPPER_CLASS(DistSchedule, std::optional<ScalarIntExpr>); -EMPTY_CLASS(DynamicAllocators); -EMPTY_CLASS(Exclusive); -WRAPPER_CLASS(Final, ScalarLogicalExpr); -WRAPPER_CLASS(Firstprivate, OmpObjectList); -EMPTY_CLASS(Flush); -WRAPPER_CLASS(From, OmpObjectList); -WRAPPER_CLASS(Grainsize, ScalarIntExpr); -WRAPPER_CLASS(Hint, ConstantExpr); -WRAPPER_CLASS(If, OmpIfClause); -EMPTY_CLASS(InReduction); -EMPTY_CLASS(Inbranch); -EMPTY_CLASS(Inclusive); -WRAPPER_CLASS(IsDevicePtr, std::list<Name>); -WRAPPER_CLASS(Lastprivate, OmpObjectList); -WRAPPER_CLASS(Linear, OmpLinearClause); -WRAPPER_CLASS(Link, OmpObjectList); -WRAPPER_CLASS(Map, OmpMapClause); -EMPTY_CLASS(Match); -EMPTY_CLASS(Mergeable); -EMPTY_CLASS(Nogroup); -EMPTY_CLASS(Nowait); -EMPTY_CLASS(Nontemporal); -EMPTY_CLASS(Notinbranch); -WRAPPER_CLASS(NumTasks, ScalarIntExpr); -WRAPPER_CLASS(NumTeams, ScalarIntExpr); -WRAPPER_CLASS(NumThreads, ScalarIntExpr); -EMPTY_CLASS(Order); -WRAPPER_CLASS(Ordered, std::optional<ScalarIntConstantExpr>); -WRAPPER_CLASS(Priority, ScalarIntExpr); -WRAPPER_CLASS(Private, OmpObjectList); -WRAPPER_CLASS(ProcBind, OmpProcBindClause); -EMPTY_CLASS(Read); -WRAPPER_CLASS(Reduction, OmpReductionClause); -EMPTY_CLASS(Relaxed); -EMPTY_CLASS(Release); -EMPTY_CLASS(ReverseOffload); -WRAPPER_CLASS(Safelen, ScalarIntConstantExpr); -WRAPPER_CLASS(Schedule, OmpScheduleClause); -EMPTY_CLASS(SeqCst); -WRAPPER_CLASS(Shared, OmpObjectList); -EMPTY_CLASS(Simd); -WRAPPER_CLASS(Simdlen, ScalarIntConstantExpr); -WRAPPER_CLASS(TaskReduction, OmpReductionClause); -WRAPPER_CLASS(ThreadLimit, ScalarIntExpr); -EMPTY_CLASS(Threadprivate); -EMPTY_CLASS(Threads); -WRAPPER_CLASS(To, OmpObjectList); -EMPTY_CLASS(UnifiedAddress); -EMPTY_CLASS(UnifiedSharedMemory); -WRAPPER_CLASS(Uniform, std::list<Name>); -EMPTY_CLASS(Unknown); -EMPTY_CLASS(Untied); -EMPTY_CLASS(Update); -EMPTY_CLASS(UseDeviceAddr); -WRAPPER_CLASS(UseDevicePtr, std::list<Name>); -EMPTY_CLASS(UsesAllocators); -EMPTY_CLASS(Write); - -#endif // GEN_FLANG_CLAUSE_PARSER_CLASSES - -#ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST -#undef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST - -AcqRel -, Acquire -, Affinity -, Aligned -, Allocate -, Allocator -, AtomicDefaultMemOrder -, Capture -, Collapse -, Copyprivate -, Copyin -, Default -, Defaultmap -, Depend -, Depobj -, Destroy -, Detach -, Device -, DeviceType -, DistSchedule -, DynamicAllocators -, Exclusive -, Final -, Firstprivate -, Flush -, From -, Grainsize -, Hint -, If -, InReduction -, Inbranch -, Inclusive -, IsDevicePtr -, Lastprivate -, Linear -, Link -, Map -, Match -, Mergeable -, Nogroup -, Nowait -, Nontemporal -, Notinbranch -, NumTasks -, NumTeams -, NumThreads -, Order -, Ordered -, Priority -, Private -, ProcBind -, Read -, Reduction -, Relaxed -, Release -, ReverseOffload -, Safelen -, Schedule -, SeqCst -, Shared -, Simd -, Simdlen -, TaskReduction -, ThreadLimit -, Threadprivate -, Threads -, To -, UnifiedAddress -, UnifiedSharedMemory -, Uniform -, Unknown -, Untied -, Update -, UseDeviceAddr -, UseDevicePtr -, UsesAllocators -, Write - -#endif // GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST - -#ifdef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES -#undef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES - -NODE(OmpClause, AcqRel) -NODE(OmpClause, Acquire) -NODE(OmpClause, Affinity) -NODE(OmpClause, Aligned) -NODE(OmpClause, Allocate) -NODE(OmpClause, Allocator) -NODE(OmpClause, AtomicDefaultMemOrder) -NODE(OmpClause, Capture) -NODE(OmpClause, Collapse) -NODE(OmpClause, Copyprivate) -NODE(OmpClause, Copyin) -NODE(OmpClause, Default) -NODE(OmpClause, Defaultmap) -NODE(OmpClause, Depend) -NODE(OmpClause, Depobj) -NODE(OmpClause, Destroy) -NODE(OmpClause, Detach) -NODE(OmpClause, Device) -NODE(OmpClause, DeviceType) -NODE(OmpClause, DistSchedule) -NODE(OmpClause, DynamicAllocators) -NODE(OmpClause, Exclusive) -NODE(OmpClause, Final) -NODE(OmpClause, Firstprivate) -NODE(OmpClause, Flush) -NODE(OmpClause, From) -NODE(OmpClause, Grainsize) -NODE(OmpClause, Hint) -NODE(OmpClause, If) -NODE(OmpClause, InReduction) -NODE(OmpClause, Inbranch) -NODE(OmpClause, Inclusive) -NODE(OmpClause, IsDevicePtr) -NODE(OmpClause, Lastprivate) -NODE(OmpClause, Linear) -NODE(OmpClause, Link) -NODE(OmpClause, Map) -NODE(OmpClause, Match) -NODE(OmpClause, Mergeable) -NODE(OmpClause, Nogroup) -NODE(OmpClause, Nowait) -NODE(OmpClause, Nontemporal) -NODE(OmpClause, Notinbranch) -NODE(OmpClause, NumTasks) -NODE(OmpClause, NumTeams) -NODE(OmpClause, NumThreads) -NODE(OmpClause, Order) -NODE(OmpClause, Ordered) -NODE(OmpClause, Priority) -NODE(OmpClause, Private) -NODE(OmpClause, ProcBind) -NODE(OmpClause, Read) -NODE(OmpClause, Reduction) -NODE(OmpClause, Relaxed) -NODE(OmpClause, Release) -NODE(OmpClause, ReverseOffload) -NODE(OmpClause, Safelen) -NODE(OmpClause, Schedule) -NODE(OmpClause, SeqCst) -NODE(OmpClause, Shared) -NODE(OmpClause, Simd) -NODE(OmpClause, Simdlen) -NODE(OmpClause, TaskReduction) -NODE(OmpClause, ThreadLimit) -NODE(OmpClause, Threadprivate) -NODE(OmpClause, Threads) -NODE(OmpClause, To) -NODE(OmpClause, UnifiedAddress) -NODE(OmpClause, UnifiedSharedMemory) -NODE(OmpClause, Uniform) -NODE(OmpClause, Unknown) -NODE(OmpClause, Untied) -NODE(OmpClause, Update) -NODE(OmpClause, UseDeviceAddr) -NODE(OmpClause, UseDevicePtr) -NODE(OmpClause, UsesAllocators) -NODE(OmpClause, Write) - -#endif // GEN_FLANG_DUMP_PARSE_TREE_CLAUSES - -#ifdef GEN_FLANG_CLAUSE_UNPARSE -#undef GEN_FLANG_CLAUSE_UNPARSE - -void Before(const OmpClause::AcqRel &) { Word("ACQ_REL"); } -void Before(const OmpClause::Acquire &) { Word("ACQUIRE"); } -void Before(const OmpClause::Affinity &) { Word("AFFINITY"); } -void Unparse(const OmpClause::Aligned &x) { - Word("ALIGNED"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Allocate &x) { - Word("ALLOCATE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Allocator &x) { - Word("ALLOCATOR"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::AtomicDefaultMemOrder &) { Word("ATOMIC_DEFAULT_MEM_ORDER"); } -void Before(const OmpClause::Capture &) { Word("CAPTURE"); } -void Unparse(const OmpClause::Collapse &x) { - Word("COLLAPSE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Copyprivate &x) { - Word("COPYPRIVATE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Copyin &x) { - Word("COPYIN"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Default &x) { - Word("DEFAULT"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Defaultmap &x) { - Word("DEFAULTMAP"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Depend &x) { - Word("DEPEND"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::Depobj &) { Word("DEPOBJ"); } -void Before(const OmpClause::Destroy &) { Word("DESTROY"); } -void Before(const OmpClause::Detach &) { Word("DETACH"); } -void Unparse(const OmpClause::Device &x) { - Word("DEVICE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::DeviceType &) { Word("DEVICE_TYPE"); } -void Unparse(const OmpClause::DistSchedule &x) { - Word("DIST_SCHEDULE"); - Walk("(", x.v, ")"); -} -void Before(const OmpClause::DynamicAllocators &) { Word("DYNAMIC_ALLOCATORS"); } -void Before(const OmpClause::Exclusive &) { Word("EXCLUSIVE"); } -void Unparse(const OmpClause::Final &x) { - Word("FINAL"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Firstprivate &x) { - Word("FIRSTPRIVATE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::Flush &) { Word("FLUSH"); } -void Unparse(const OmpClause::From &x) { - Word("FROM"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Grainsize &x) { - Word("GRAINSIZE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Hint &x) { - Word("HINT"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::If &x) { - Word("IF"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::InReduction &) { Word("IN_REDUCTION"); } -void Before(const OmpClause::Inbranch &) { Word("INBRANCH"); } -void Before(const OmpClause::Inclusive &) { Word("INCLUSIVE"); } -void Unparse(const OmpClause::IsDevicePtr &x) { - Word("IS_DEVICE_PTR"); - Put("("); - Walk(x.v, ","); - Put(")"); -} -void Unparse(const OmpClause::Lastprivate &x) { - Word("LASTPRIVATE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Linear &x) { - Word("LINEAR"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Link &x) { - Word("LINK"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Map &x) { - Word("MAP"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::Match &) { Word("MATCH"); } -void Before(const OmpClause::Mergeable &) { Word("MERGEABLE"); } -void Before(const OmpClause::Nogroup &) { Word("NOGROUP"); } -void Before(const OmpClause::Nowait &) { Word("NOWAIT"); } -void Before(const OmpClause::Nontemporal &) { Word("NONTEMPORAL"); } -void Before(const OmpClause::Notinbranch &) { Word("NOTINBRANCH"); } -void Unparse(const OmpClause::NumTasks &x) { - Word("NUM_TASKS"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::NumTeams &x) { - Word("NUM_TEAMS"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::NumThreads &x) { - Word("NUM_THREADS"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::Order &) { Word("ORDER"); } -void Unparse(const OmpClause::Ordered &x) { - Word("ORDERED"); - Walk("(", x.v, ")"); -} -void Unparse(const OmpClause::Priority &x) { - Word("PRIORITY"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Private &x) { - Word("PRIVATE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::ProcBind &x) { - Word("PROC_BIND"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::Read &) { Word("READ"); } -void Unparse(const OmpClause::Reduction &x) { - Word("REDUCTION"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::Relaxed &) { Word("RELAXED"); } -void Before(const OmpClause::Release &) { Word("RELEASE"); } -void Before(const OmpClause::ReverseOffload &) { Word("REVERSE_OFFLOAD"); } -void Unparse(const OmpClause::Safelen &x) { - Word("SAFELEN"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::Schedule &x) { - Word("SCHEDULE"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::SeqCst &) { Word("SEQ_CST"); } -void Unparse(const OmpClause::Shared &x) { - Word("SHARED"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::Simd &) { Word("SIMD"); } -void Unparse(const OmpClause::Simdlen &x) { - Word("SIMDLEN"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::TaskReduction &x) { - Word("TASK_REDUCTION"); - Put("("); - Walk(x.v); - Put(")"); -} -void Unparse(const OmpClause::ThreadLimit &x) { - Word("THREAD_LIMIT"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::Threadprivate &) { Word("THREADPRIVATE"); } -void Before(const OmpClause::Threads &) { Word("THREADS"); } -void Unparse(const OmpClause::To &x) { - Word("TO"); - Put("("); - Walk(x.v); - Put(")"); -} -void Before(const OmpClause::UnifiedAddress &) { Word("UNIFIED_ADDRESS"); } -void Before(const OmpClause::UnifiedSharedMemory &) { Word("UNIFIED_SHARED_MEMORY"); } -void Unparse(const OmpClause::Uniform &x) { - Word("UNIFORM"); - Put("("); - Walk(x.v, ","); - Put(")"); -} -void Before(const OmpClause::Unknown &) { Word("UNKNOWN"); } -void Before(const OmpClause::Untied &) { Word("UNTIED"); } -void Before(const OmpClause::Update &) { Word("UPDATE"); } -void Before(const OmpClause::UseDeviceAddr &) { Word("USE_DEVICE_ADDR"); } -void Unparse(const OmpClause::UseDevicePtr &x) { - Word("USE_DEVICE_PTR"); - Put("("); - Walk(x.v, ","); - Put(")"); -} -void Before(const OmpClause::UsesAllocators &) { Word("USES_ALLOCATORS"); } -void Before(const OmpClause::Write &) { Word("WRITE"); } - -#endif // GEN_FLANG_CLAUSE_UNPARSE - -#ifdef GEN_CLANG_CLAUSE_CLASS -#undef GEN_CLANG_CLAUSE_CLASS - -#ifndef CLAUSE -#define CLAUSE(Enum, Str, Implicit) -#endif -#ifndef CLAUSE_CLASS -#define CLAUSE_CLASS(Enum, Str, Class) -#endif -#ifndef CLAUSE_NO_CLASS -#define CLAUSE_NO_CLASS(Enum, Str) -#endif - -#define __CLAUSE(Name, Class) \ - CLAUSE(OMPC_##Name, #Name, /* Implicit */ false) \ - CLAUSE_CLASS(OMPC_##Name, #Name, Class) -#define __CLAUSE_NO_CLASS(Name) \ - CLAUSE(OMPC_##Name, #Name, /* Implicit */ false) \ - CLAUSE_NO_CLASS(OMPC_##Name, #Name) -#define __IMPLICIT_CLAUSE_CLASS(Name, Str, Class) \ - CLAUSE(OMPC_##Name, Str, /* Implicit */ true) \ - CLAUSE_CLASS(OMPC_##Name, Str, Class) -#define __IMPLICIT_CLAUSE_NO_CLASS(Name, Str) \ - CLAUSE(OMPC_##Name, Str, /* Implicit */ true) \ - CLAUSE_NO_CLASS(OMPC_##Name, Str) - -__CLAUSE(acq_rel, OMPAcqRelClause) -__CLAUSE(acquire, OMPAcquireClause) -__CLAUSE(affinity, OMPAffinityClause) -__CLAUSE(aligned, OMPAlignedClause) -__CLAUSE(allocate, OMPAllocateClause) -__CLAUSE(allocator, OMPAllocatorClause) -__CLAUSE(atomic_default_mem_order, OMPAtomicDefaultMemOrderClause) -__CLAUSE(capture, OMPCaptureClause) -__CLAUSE(collapse, OMPCollapseClause) -__CLAUSE(copyprivate, OMPCopyprivateClause) -__CLAUSE(copyin, OMPCopyinClause) -__CLAUSE(default, OMPDefaultClause) -__CLAUSE(defaultmap, OMPDefaultmapClause) -__CLAUSE(depend, OMPDependClause) -__IMPLICIT_CLAUSE_CLASS(depobj, "depobj", OMPDepobjClause) -__CLAUSE(destroy, OMPDestroyClause) -__CLAUSE(detach, OMPDetachClause) -__CLAUSE(device, OMPDeviceClause) -__CLAUSE_NO_CLASS(device_type) -__CLAUSE(dist_schedule, OMPDistScheduleClause) -__CLAUSE(dynamic_allocators, OMPDynamicAllocatorsClause) -__CLAUSE(exclusive, OMPExclusiveClause) -__CLAUSE(final, OMPFinalClause) -__CLAUSE(firstprivate, OMPFirstprivateClause) -__IMPLICIT_CLAUSE_CLASS(flush, "flush", OMPFlushClause) -__CLAUSE(from, OMPFromClause) -__CLAUSE(grainsize, OMPGrainsizeClause) -__CLAUSE(hint, OMPHintClause) -__CLAUSE(if, OMPIfClause) -__CLAUSE(in_reduction, OMPInReductionClause) -__CLAUSE_NO_CLASS(inbranch) -__CLAUSE(inclusive, OMPInclusiveClause) -__CLAUSE(is_device_ptr, OMPIsDevicePtrClause) -__CLAUSE(lastprivate, OMPLastprivateClause) -__CLAUSE(linear, OMPLinearClause) -__CLAUSE_NO_CLASS(link) -__CLAUSE(map, OMPMapClause) -__CLAUSE_NO_CLASS(match) -__CLAUSE(mergeable, OMPMergeableClause) -__CLAUSE(nogroup, OMPNogroupClause) -__CLAUSE(nowait, OMPNowaitClause) -__CLAUSE(nontemporal, OMPNontemporalClause) -__CLAUSE_NO_CLASS(notinbranch) -__CLAUSE(num_tasks, OMPNumTasksClause) -__CLAUSE(num_teams, OMPNumTeamsClause) -__CLAUSE(num_threads, OMPNumThreadsClause) -__CLAUSE(order, OMPOrderClause) -__CLAUSE(ordered, OMPOrderedClause) -__CLAUSE(priority, OMPPriorityClause) -__CLAUSE(private, OMPPrivateClause) -__CLAUSE(proc_bind, OMPProcBindClause) -__CLAUSE(read, OMPReadClause) -__CLAUSE(reduction, OMPReductionClause) -__CLAUSE(relaxed, OMPRelaxedClause) -__CLAUSE(release, OMPReleaseClause) -__CLAUSE(reverse_offload, OMPReverseOffloadClause) -__CLAUSE(safelen, OMPSafelenClause) -__CLAUSE(schedule, OMPScheduleClause) -__CLAUSE(seq_cst, OMPSeqCstClause) -__CLAUSE(shared, OMPSharedClause) -__CLAUSE(simd, OMPSIMDClause) -__CLAUSE(simdlen, OMPSimdlenClause) -__CLAUSE(task_reduction, OMPTaskReductionClause) -__CLAUSE(thread_limit, OMPThreadLimitClause) -__IMPLICIT_CLAUSE_NO_CLASS(threadprivate, "threadprivate") -__CLAUSE(threads, OMPThreadsClause) -__CLAUSE(to, OMPToClause) -__CLAUSE(unified_address, OMPUnifiedAddressClause) -__CLAUSE(unified_shared_memory, OMPUnifiedSharedMemoryClause) -__CLAUSE_NO_CLASS(uniform) -__IMPLICIT_CLAUSE_NO_CLASS(unknown, "unknown") -__CLAUSE(untied, OMPUntiedClause) -__CLAUSE(update, OMPUpdateClause) -__CLAUSE(use_device_addr, OMPUseDeviceAddrClause) -__CLAUSE(use_device_ptr, OMPUseDevicePtrClause) -__CLAUSE(uses_allocators, OMPUsesAllocatorsClause) -__CLAUSE(write, OMPWriteClause) - -#undef __IMPLICIT_CLAUSE_NO_CLASS -#undef __IMPLICIT_CLAUSE_CLASS -#undef __CLAUSE -#undef CLAUSE_NO_CLASS -#undef CLAUSE_CLASS -#undef CLAUSE - -#endif // GEN_CLANG_CLAUSE_CLASS - +#ifdef GEN_FLANG_DIRECTIVE_CLAUSE_SETS +#undef GEN_FLANG_DIRECTIVE_CLAUSE_SETS + +namespace llvm { +namespace omp { + + // Sets for allocate + + static OmpClauseSet allowedClauses_OMPD_allocate { + llvm::omp::Clause::OMPC_allocator, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_allocate { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_allocate { + }; + + static OmpClauseSet requiredClauses_OMPD_allocate { + }; + + // Sets for assumes + + static OmpClauseSet allowedClauses_OMPD_assumes { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_assumes { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_assumes { + }; + + static OmpClauseSet requiredClauses_OMPD_assumes { + }; + + // Sets for atomic + + static OmpClauseSet allowedClauses_OMPD_atomic { + llvm::omp::Clause::OMPC_read, + llvm::omp::Clause::OMPC_write, + llvm::omp::Clause::OMPC_update, + llvm::omp::Clause::OMPC_capture, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_atomic { + llvm::omp::Clause::OMPC_seq_cst, + llvm::omp::Clause::OMPC_acq_rel, + llvm::omp::Clause::OMPC_acquire, + llvm::omp::Clause::OMPC_release, + llvm::omp::Clause::OMPC_relaxed, + llvm::omp::Clause::OMPC_hint, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_atomic { + }; + + static OmpClauseSet requiredClauses_OMPD_atomic { + }; + + // Sets for barrier + + static OmpClauseSet allowedClauses_OMPD_barrier { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_barrier { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_barrier { + }; + + static OmpClauseSet requiredClauses_OMPD_barrier { + }; + + // Sets for begin assumes + + static OmpClauseSet allowedClauses_OMPD_begin_assumes { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_begin_assumes { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_begin_assumes { + }; + + static OmpClauseSet requiredClauses_OMPD_begin_assumes { + }; + + // Sets for begin declare variant + + static OmpClauseSet allowedClauses_OMPD_begin_declare_variant { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_begin_declare_variant { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_begin_declare_variant { + }; + + static OmpClauseSet requiredClauses_OMPD_begin_declare_variant { + }; + + // Sets for cancel + + static OmpClauseSet allowedClauses_OMPD_cancel { + llvm::omp::Clause::OMPC_if, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_cancel { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_cancel { + }; + + static OmpClauseSet requiredClauses_OMPD_cancel { + }; + + // Sets for cancellation point + + static OmpClauseSet allowedClauses_OMPD_cancellation_point { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_cancellation_point { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_cancellation_point { + }; + + static OmpClauseSet requiredClauses_OMPD_cancellation_point { + }; + + // Sets for critical + + static OmpClauseSet allowedClauses_OMPD_critical { + llvm::omp::Clause::OMPC_hint, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_critical { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_critical { + }; + + static OmpClauseSet requiredClauses_OMPD_critical { + }; + + // Sets for declare mapper + + static OmpClauseSet allowedClauses_OMPD_declare_mapper { + llvm::omp::Clause::OMPC_map, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_declare_mapper { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_declare_mapper { + }; + + static OmpClauseSet requiredClauses_OMPD_declare_mapper { + }; + + // Sets for declare reduction + + static OmpClauseSet allowedClauses_OMPD_declare_reduction { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_declare_reduction { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_declare_reduction { + }; + + static OmpClauseSet requiredClauses_OMPD_declare_reduction { + }; + + // Sets for declare simd + + static OmpClauseSet allowedClauses_OMPD_declare_simd { + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_uniform, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_declare_simd { + llvm::omp::Clause::OMPC_simdlen, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_declare_simd { + llvm::omp::Clause::OMPC_inbranch, + llvm::omp::Clause::OMPC_notinbranch, + }; + + static OmpClauseSet requiredClauses_OMPD_declare_simd { + }; + + // Sets for declare target + + static OmpClauseSet allowedClauses_OMPD_declare_target { + llvm::omp::Clause::OMPC_to, + llvm::omp::Clause::OMPC_link, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_declare_target { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_declare_target { + }; + + static OmpClauseSet requiredClauses_OMPD_declare_target { + }; + + // Sets for declare variant + + static OmpClauseSet allowedClauses_OMPD_declare_variant { + llvm::omp::Clause::OMPC_match, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_declare_variant { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_declare_variant { + }; + + static OmpClauseSet requiredClauses_OMPD_declare_variant { + }; + + // Sets for depobj + + static OmpClauseSet allowedClauses_OMPD_depobj { + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_destroy, + llvm::omp::Clause::OMPC_update, + llvm::omp::Clause::OMPC_depobj, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_depobj { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_depobj { + }; + + static OmpClauseSet requiredClauses_OMPD_depobj { + }; + + // Sets for distribute + + static OmpClauseSet allowedClauses_OMPD_distribute { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_distribute { + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_distribute { + }; + + static OmpClauseSet requiredClauses_OMPD_distribute { + }; + + // Sets for distribute parallel do + + static OmpClauseSet allowedClauses_OMPD_distribute_parallel_do { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_linear, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_do { + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_ordered, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_do { + }; + + static OmpClauseSet requiredClauses_OMPD_distribute_parallel_do { + }; + + // Sets for distribute parallel do simd + + static OmpClauseSet allowedClauses_OMPD_distribute_parallel_do_simd { + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_do_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_do_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_distribute_parallel_do_simd { + }; + + // Sets for distribute parallel for + + static OmpClauseSet allowedClauses_OMPD_distribute_parallel_for { + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_for { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_for { + }; + + static OmpClauseSet requiredClauses_OMPD_distribute_parallel_for { + }; + + // Sets for distribute parallel for simd + + static OmpClauseSet allowedClauses_OMPD_distribute_parallel_for_simd { + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_distribute_parallel_for_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_parallel_for_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_distribute_parallel_for_simd { + }; + + // Sets for distribute simd + + static OmpClauseSet allowedClauses_OMPD_distribute_simd { + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_reduction, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_distribute_simd { + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_distribute_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_distribute_simd { + }; + + // Sets for do + + static OmpClauseSet allowedClauses_OMPD_do { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_reduction, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_do { + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_do { + }; + + static OmpClauseSet requiredClauses_OMPD_do { + }; + + // Sets for do simd + + static OmpClauseSet allowedClauses_OMPD_do_simd { + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_reduction, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_do_simd { + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_do_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_do_simd { + }; + + // Sets for end assumes + + static OmpClauseSet allowedClauses_OMPD_end_assumes { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_end_assumes { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_end_assumes { + }; + + static OmpClauseSet requiredClauses_OMPD_end_assumes { + }; + + // Sets for end declare target + + static OmpClauseSet allowedClauses_OMPD_end_declare_target { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_end_declare_target { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_end_declare_target { + }; + + static OmpClauseSet requiredClauses_OMPD_end_declare_target { + }; + + // Sets for end declare variant + + static OmpClauseSet allowedClauses_OMPD_end_declare_variant { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_end_declare_variant { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_end_declare_variant { + }; + + static OmpClauseSet requiredClauses_OMPD_end_declare_variant { + }; + + // Sets for end do + + static OmpClauseSet allowedClauses_OMPD_end_do { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_end_do { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_end_do { + }; + + static OmpClauseSet requiredClauses_OMPD_end_do { + }; + + // Sets for end do simd + + static OmpClauseSet allowedClauses_OMPD_end_do_simd { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_end_do_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_end_do_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_end_do_simd { + }; + + // Sets for end sections + + static OmpClauseSet allowedClauses_OMPD_end_sections { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_end_sections { + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_end_sections { + }; + + static OmpClauseSet requiredClauses_OMPD_end_sections { + }; + + // Sets for end single + + static OmpClauseSet allowedClauses_OMPD_end_single { + llvm::omp::Clause::OMPC_copyprivate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_end_single { + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_end_single { + }; + + static OmpClauseSet requiredClauses_OMPD_end_single { + }; + + // Sets for end workshare + + static OmpClauseSet allowedClauses_OMPD_end_workshare { + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_end_workshare { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_end_workshare { + }; + + static OmpClauseSet requiredClauses_OMPD_end_workshare { + }; + + // Sets for flush + + static OmpClauseSet allowedClauses_OMPD_flush { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_flush { + llvm::omp::Clause::OMPC_acq_rel, + llvm::omp::Clause::OMPC_acquire, + llvm::omp::Clause::OMPC_release, + llvm::omp::Clause::OMPC_flush, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_flush { + }; + + static OmpClauseSet requiredClauses_OMPD_flush { + }; + + // Sets for for + + static OmpClauseSet allowedClauses_OMPD_for { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_for { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_for { + }; + + static OmpClauseSet requiredClauses_OMPD_for { + }; + + // Sets for for simd + + static OmpClauseSet allowedClauses_OMPD_for_simd { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_for_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_for_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_for_simd { + }; + + // Sets for master + + static OmpClauseSet allowedClauses_OMPD_master { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_master { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_master { + }; + + static OmpClauseSet requiredClauses_OMPD_master { + }; + + // Sets for master taskloop + + static OmpClauseSet allowedClauses_OMPD_master_taskloop { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_final, + llvm::omp::Clause::OMPC_untied, + llvm::omp::Clause::OMPC_mergeable, + llvm::omp::Clause::OMPC_priority, + llvm::omp::Clause::OMPC_grainsize, + llvm::omp::Clause::OMPC_nogroup, + llvm::omp::Clause::OMPC_num_tasks, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_in_reduction, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_master_taskloop { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_master_taskloop { + }; + + static OmpClauseSet requiredClauses_OMPD_master_taskloop { + }; + + // Sets for master taskloop simd + + static OmpClauseSet allowedClauses_OMPD_master_taskloop_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_final, + llvm::omp::Clause::OMPC_untied, + llvm::omp::Clause::OMPC_mergeable, + llvm::omp::Clause::OMPC_priority, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_grainsize, + llvm::omp::Clause::OMPC_nogroup, + llvm::omp::Clause::OMPC_num_tasks, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_in_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_master_taskloop_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_master_taskloop_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_master_taskloop_simd { + }; + + // Sets for ordered + + static OmpClauseSet allowedClauses_OMPD_ordered { + llvm::omp::Clause::OMPC_threads, + llvm::omp::Clause::OMPC_simd, + llvm::omp::Clause::OMPC_depend, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_ordered { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_ordered { + }; + + static OmpClauseSet requiredClauses_OMPD_ordered { + }; + + // Sets for parallel + + static OmpClauseSet allowedClauses_OMPD_parallel { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel { + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel { + }; + + // Sets for parallel do + + static OmpClauseSet allowedClauses_OMPD_parallel_do { + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_do { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_collapse, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_do { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_do { + }; + + // Sets for parallel do simd + + static OmpClauseSet allowedClauses_OMPD_parallel_do_simd { + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_do_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_do_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_do_simd { + }; + + // Sets for parallel for + + static OmpClauseSet allowedClauses_OMPD_parallel_for { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_for { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_for { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_for { + }; + + // Sets for parallel for simd + + static OmpClauseSet allowedClauses_OMPD_parallel_for_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_for_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_for_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_for_simd { + }; + + // Sets for parallel master + + static OmpClauseSet allowedClauses_OMPD_parallel_master { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_master { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_master { + }; + + // Sets for parallel master taskloop + + static OmpClauseSet allowedClauses_OMPD_parallel_master_taskloop { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_final, + llvm::omp::Clause::OMPC_untied, + llvm::omp::Clause::OMPC_mergeable, + llvm::omp::Clause::OMPC_priority, + llvm::omp::Clause::OMPC_grainsize, + llvm::omp::Clause::OMPC_nogroup, + llvm::omp::Clause::OMPC_num_tasks, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_copyin, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_master_taskloop { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master_taskloop { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_master_taskloop { + }; + + // Sets for parallel master taskloop simd + + static OmpClauseSet allowedClauses_OMPD_parallel_master_taskloop_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_final, + llvm::omp::Clause::OMPC_untied, + llvm::omp::Clause::OMPC_mergeable, + llvm::omp::Clause::OMPC_priority, + llvm::omp::Clause::OMPC_grainsize, + llvm::omp::Clause::OMPC_nogroup, + llvm::omp::Clause::OMPC_num_tasks, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_master_taskloop_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_master_taskloop_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_master_taskloop_simd { + }; + + // Sets for parallel sections + + static OmpClauseSet allowedClauses_OMPD_parallel_sections { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_sections { + llvm::omp::Clause::OMPC_num_threads, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_sections { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_sections { + }; + + // Sets for parallel workshare + + static OmpClauseSet allowedClauses_OMPD_parallel_workshare { + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_shared, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_parallel_workshare { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_parallel_workshare { + }; + + static OmpClauseSet requiredClauses_OMPD_parallel_workshare { + }; + + // Sets for requires + + static OmpClauseSet allowedClauses_OMPD_requires { + llvm::omp::Clause::OMPC_unified_address, + llvm::omp::Clause::OMPC_unified_shared_memory, + llvm::omp::Clause::OMPC_reverse_offload, + llvm::omp::Clause::OMPC_dynamic_allocators, + llvm::omp::Clause::OMPC_atomic_default_mem_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_requires { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_requires { + }; + + static OmpClauseSet requiredClauses_OMPD_requires { + }; + + // Sets for scan + + static OmpClauseSet allowedClauses_OMPD_scan { + llvm::omp::Clause::OMPC_inclusive, + llvm::omp::Clause::OMPC_exclusive, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_scan { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_scan { + }; + + static OmpClauseSet requiredClauses_OMPD_scan { + }; + + // Sets for section + + static OmpClauseSet allowedClauses_OMPD_section { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_section { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_section { + }; + + static OmpClauseSet requiredClauses_OMPD_section { + }; + + // Sets for sections + + static OmpClauseSet allowedClauses_OMPD_sections { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_sections { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_sections { + }; + + static OmpClauseSet requiredClauses_OMPD_sections { + }; + + // Sets for simd + + static OmpClauseSet allowedClauses_OMPD_simd { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_simd { + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_if, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_simd { + }; + + // Sets for single + + static OmpClauseSet allowedClauses_OMPD_single { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_copyprivate, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_single { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_single { + }; + + static OmpClauseSet requiredClauses_OMPD_single { + }; + + // Sets for target + + static OmpClauseSet allowedClauses_OMPD_target { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target { + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target { + }; + + static OmpClauseSet requiredClauses_OMPD_target { + }; + + // Sets for target data + + static OmpClauseSet allowedClauses_OMPD_target_data { + llvm::omp::Clause::OMPC_use_device_ptr, + llvm::omp::Clause::OMPC_use_device_addr, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_data { + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_if, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_data { + }; + + static OmpClauseSet requiredClauses_OMPD_target_data { + llvm::omp::Clause::OMPC_map, + }; + + // Sets for target enter data + + static OmpClauseSet allowedClauses_OMPD_target_enter_data { + llvm::omp::Clause::OMPC_depend, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_enter_data { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_enter_data { + }; + + static OmpClauseSet requiredClauses_OMPD_target_enter_data { + llvm::omp::Clause::OMPC_map, + }; + + // Sets for target exit data + + static OmpClauseSet allowedClauses_OMPD_target_exit_data { + llvm::omp::Clause::OMPC_depend, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_exit_data { + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_exit_data { + }; + + static OmpClauseSet requiredClauses_OMPD_target_exit_data { + llvm::omp::Clause::OMPC_map, + }; + + // Sets for target parallel + + static OmpClauseSet allowedClauses_OMPD_target_parallel { + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_parallel { + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel { + }; + + static OmpClauseSet requiredClauses_OMPD_target_parallel { + }; + + // Sets for target parallel do + + static OmpClauseSet allowedClauses_OMPD_target_parallel_do { + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_allocator, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_uses_allocators, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_copyin, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_do { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_nowait, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_do { + }; + + static OmpClauseSet requiredClauses_OMPD_target_parallel_do { + }; + + // Sets for target parallel do simd + + static OmpClauseSet allowedClauses_OMPD_target_parallel_do_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_do_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_do_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_target_parallel_do_simd { + }; + + // Sets for target parallel for + + static OmpClauseSet allowedClauses_OMPD_target_parallel_for { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_for { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_for { + }; + + static OmpClauseSet requiredClauses_OMPD_target_parallel_for { + }; + + // Sets for target parallel for simd + + static OmpClauseSet allowedClauses_OMPD_target_parallel_for_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_parallel_for_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_parallel_for_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_target_parallel_for_simd { + }; + + // Sets for target simd + + static OmpClauseSet allowedClauses_OMPD_target_simd { + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_simd { + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_schedule, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_target_simd { + }; + + // Sets for target teams + + static OmpClauseSet allowedClauses_OMPD_target_teams { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_uses_allocators, + llvm::omp::Clause::OMPC_shared, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_teams { + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams { + }; + + static OmpClauseSet requiredClauses_OMPD_target_teams { + }; + + // Sets for target teams distribute + + static OmpClauseSet allowedClauses_OMPD_target_teams_distribute { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_uses_allocators, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_lastprivate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute { + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute { + }; + + static OmpClauseSet requiredClauses_OMPD_target_teams_distribute { + }; + + // Sets for target teams distribute parallel do + + static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_do { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_uses_allocators, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_do { + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do { + }; + + static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_do { + }; + + // Sets for target teams distribute parallel do simd + + static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_do_simd { + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_uses_allocators, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_nontemporal, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_do_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_do_simd { + }; + + // Sets for target teams distribute parallel for + + static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_for { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_for { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for { + }; + + static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_for { + }; + + // Sets for target teams distribute parallel for simd + + static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_parallel_for_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_parallel_for_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_parallel_for_simd { + }; + + // Sets for target teams distribute simd + + static OmpClauseSet allowedClauses_OMPD_target_teams_distribute_simd { + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_is_device_ptr, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_map, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_uses_allocators, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_teams_distribute_simd { + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_defaultmap, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_teams_distribute_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_target_teams_distribute_simd { + }; + + // Sets for target update + + static OmpClauseSet allowedClauses_OMPD_target_update { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_device, + llvm::omp::Clause::OMPC_to, + llvm::omp::Clause::OMPC_from, + llvm::omp::Clause::OMPC_nowait, + llvm::omp::Clause::OMPC_depend, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_target_update { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_target_update { + }; + + static OmpClauseSet requiredClauses_OMPD_target_update { + }; + + // Sets for task + + static OmpClauseSet allowedClauses_OMPD_task { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_untied, + llvm::omp::Clause::OMPC_mergeable, + llvm::omp::Clause::OMPC_depend, + llvm::omp::Clause::OMPC_in_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_detach, + llvm::omp::Clause::OMPC_affinity, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_task { + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_final, + llvm::omp::Clause::OMPC_priority, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_task { + }; + + static OmpClauseSet requiredClauses_OMPD_task { + }; + + // Sets for taskgroup + + static OmpClauseSet allowedClauses_OMPD_taskgroup { + llvm::omp::Clause::OMPC_task_reduction, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_taskgroup { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_taskgroup { + }; + + static OmpClauseSet requiredClauses_OMPD_taskgroup { + }; + + // Sets for taskloop + + static OmpClauseSet allowedClauses_OMPD_taskloop { + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_untied, + llvm::omp::Clause::OMPC_mergeable, + llvm::omp::Clause::OMPC_nogroup, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_in_reduction, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_taskloop { + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_final, + llvm::omp::Clause::OMPC_priority, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_taskloop { + llvm::omp::Clause::OMPC_grainsize, + llvm::omp::Clause::OMPC_num_tasks, + }; + + static OmpClauseSet requiredClauses_OMPD_taskloop { + }; + + // Sets for taskloop simd + + static OmpClauseSet allowedClauses_OMPD_taskloop_simd { + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_in_reduction, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_mergeable, + llvm::omp::Clause::OMPC_nogroup, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_untied, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_taskloop_simd { + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_final, + llvm::omp::Clause::OMPC_priority, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_taskloop_simd { + llvm::omp::Clause::OMPC_grainsize, + llvm::omp::Clause::OMPC_num_tasks, + }; + + static OmpClauseSet requiredClauses_OMPD_taskloop_simd { + }; + + // Sets for taskwait + + static OmpClauseSet allowedClauses_OMPD_taskwait { + llvm::omp::Clause::OMPC_depend, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_taskwait { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_taskwait { + }; + + static OmpClauseSet requiredClauses_OMPD_taskwait { + }; + + // Sets for taskyield + + static OmpClauseSet allowedClauses_OMPD_taskyield { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_taskyield { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_taskyield { + }; + + static OmpClauseSet requiredClauses_OMPD_taskyield { + }; + + // Sets for teams + + static OmpClauseSet allowedClauses_OMPD_teams { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_teams { + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_teams { + }; + + static OmpClauseSet requiredClauses_OMPD_teams { + }; + + // Sets for teams distribute + + static OmpClauseSet allowedClauses_OMPD_teams_distribute { + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_allocate, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute { + }; + + static OmpClauseSet requiredClauses_OMPD_teams_distribute { + }; + + // Sets for teams distribute parallel do + + static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_do { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_linear, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_do { + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_ordered, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_do { + }; + + static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_do { + }; + + // Sets for teams distribute parallel do simd + + static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_do_simd { + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_nontemporal, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_do_simd { + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_if, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_do_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_do_simd { + }; + + // Sets for teams distribute parallel for + + static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_for { + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_copyin, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_for { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_for { + }; + + static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_for { + }; + + // Sets for teams distribute parallel for simd + + static OmpClauseSet allowedClauses_OMPD_teams_distribute_parallel_for_simd { + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_threads, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_proc_bind, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_shared, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_schedule, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_thread_limit, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_parallel_for_simd { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_parallel_for_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_teams_distribute_parallel_for_simd { + }; + + // Sets for teams distribute simd + + static OmpClauseSet allowedClauses_OMPD_teams_distribute_simd { + llvm::omp::Clause::OMPC_aligned, + llvm::omp::Clause::OMPC_allocate, + llvm::omp::Clause::OMPC_firstprivate, + llvm::omp::Clause::OMPC_lastprivate, + llvm::omp::Clause::OMPC_linear, + llvm::omp::Clause::OMPC_nontemporal, + llvm::omp::Clause::OMPC_order, + llvm::omp::Clause::OMPC_private, + llvm::omp::Clause::OMPC_reduction, + llvm::omp::Clause::OMPC_shared, + }; + + static OmpClauseSet allowedOnceClauses_OMPD_teams_distribute_simd { + llvm::omp::Clause::OMPC_collapse, + llvm::omp::Clause::OMPC_default, + llvm::omp::Clause::OMPC_dist_schedule, + llvm::omp::Clause::OMPC_if, + llvm::omp::Clause::OMPC_num_teams, + llvm::omp::Clause::OMPC_safelen, + llvm::omp::Clause::OMPC_simdlen, + llvm::omp::Clause::OMPC_thread_limit, + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_teams_distribute_simd { + }; + + static OmpClauseSet requiredClauses_OMPD_teams_distribute_simd { + }; + + // Sets for threadprivate + + static OmpClauseSet allowedClauses_OMPD_threadprivate { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_threadprivate { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_threadprivate { + }; + + static OmpClauseSet requiredClauses_OMPD_threadprivate { + }; + + // Sets for unknown + + static OmpClauseSet allowedClauses_OMPD_unknown { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_unknown { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_unknown { + }; + + static OmpClauseSet requiredClauses_OMPD_unknown { + }; + + // Sets for workshare + + static OmpClauseSet allowedClauses_OMPD_workshare { + }; + + static OmpClauseSet allowedOnceClauses_OMPD_workshare { + }; + + static OmpClauseSet allowedExclusiveClauses_OMPD_workshare { + }; + + static OmpClauseSet requiredClauses_OMPD_workshare { + }; +} // namespace omp +} // namespace llvm + +#endif // GEN_FLANG_DIRECTIVE_CLAUSE_SETS + +#ifdef GEN_FLANG_DIRECTIVE_CLAUSE_MAP +#undef GEN_FLANG_DIRECTIVE_CLAUSE_MAP + +{ + {llvm::omp::Directive::OMPD_allocate, + { + llvm::omp::allowedClauses_OMPD_allocate, + llvm::omp::allowedOnceClauses_OMPD_allocate, + llvm::omp::allowedExclusiveClauses_OMPD_allocate, + llvm::omp::requiredClauses_OMPD_allocate, + } + }, + {llvm::omp::Directive::OMPD_assumes, + { + llvm::omp::allowedClauses_OMPD_assumes, + llvm::omp::allowedOnceClauses_OMPD_assumes, + llvm::omp::allowedExclusiveClauses_OMPD_assumes, + llvm::omp::requiredClauses_OMPD_assumes, + } + }, + {llvm::omp::Directive::OMPD_atomic, + { + llvm::omp::allowedClauses_OMPD_atomic, + llvm::omp::allowedOnceClauses_OMPD_atomic, + llvm::omp::allowedExclusiveClauses_OMPD_atomic, + llvm::omp::requiredClauses_OMPD_atomic, + } + }, + {llvm::omp::Directive::OMPD_barrier, + { + llvm::omp::allowedClauses_OMPD_barrier, + llvm::omp::allowedOnceClauses_OMPD_barrier, + llvm::omp::allowedExclusiveClauses_OMPD_barrier, + llvm::omp::requiredClauses_OMPD_barrier, + } + }, + {llvm::omp::Directive::OMPD_begin_assumes, + { + llvm::omp::allowedClauses_OMPD_begin_assumes, + llvm::omp::allowedOnceClauses_OMPD_begin_assumes, + llvm::omp::allowedExclusiveClauses_OMPD_begin_assumes, + llvm::omp::requiredClauses_OMPD_begin_assumes, + } + }, + {llvm::omp::Directive::OMPD_begin_declare_variant, + { + llvm::omp::allowedClauses_OMPD_begin_declare_variant, + llvm::omp::allowedOnceClauses_OMPD_begin_declare_variant, + llvm::omp::allowedExclusiveClauses_OMPD_begin_declare_variant, + llvm::omp::requiredClauses_OMPD_begin_declare_variant, + } + }, + {llvm::omp::Directive::OMPD_cancel, + { + llvm::omp::allowedClauses_OMPD_cancel, + llvm::omp::allowedOnceClauses_OMPD_cancel, + llvm::omp::allowedExclusiveClauses_OMPD_cancel, + llvm::omp::requiredClauses_OMPD_cancel, + } + }, + {llvm::omp::Directive::OMPD_cancellation_point, + { + llvm::omp::allowedClauses_OMPD_cancellation_point, + llvm::omp::allowedOnceClauses_OMPD_cancellation_point, + llvm::omp::allowedExclusiveClauses_OMPD_cancellation_point, + llvm::omp::requiredClauses_OMPD_cancellation_point, + } + }, + {llvm::omp::Directive::OMPD_critical, + { + llvm::omp::allowedClauses_OMPD_critical, + llvm::omp::allowedOnceClauses_OMPD_critical, + llvm::omp::allowedExclusiveClauses_OMPD_critical, + llvm::omp::requiredClauses_OMPD_critical, + } + }, + {llvm::omp::Directive::OMPD_declare_mapper, + { + llvm::omp::allowedClauses_OMPD_declare_mapper, + llvm::omp::allowedOnceClauses_OMPD_declare_mapper, + llvm::omp::allowedExclusiveClauses_OMPD_declare_mapper, + llvm::omp::requiredClauses_OMPD_declare_mapper, + } + }, + {llvm::omp::Directive::OMPD_declare_reduction, + { + llvm::omp::allowedClauses_OMPD_declare_reduction, + llvm::omp::allowedOnceClauses_OMPD_declare_reduction, + llvm::omp::allowedExclusiveClauses_OMPD_declare_reduction, + llvm::omp::requiredClauses_OMPD_declare_reduction, + } + }, + {llvm::omp::Directive::OMPD_declare_simd, + { + llvm::omp::allowedClauses_OMPD_declare_simd, + llvm::omp::allowedOnceClauses_OMPD_declare_simd, + llvm::omp::allowedExclusiveClauses_OMPD_declare_simd, + llvm::omp::requiredClauses_OMPD_declare_simd, + } + }, + {llvm::omp::Directive::OMPD_declare_target, + { + llvm::omp::allowedClauses_OMPD_declare_target, + llvm::omp::allowedOnceClauses_OMPD_declare_target, + llvm::omp::allowedExclusiveClauses_OMPD_declare_target, + llvm::omp::requiredClauses_OMPD_declare_target, + } + }, + {llvm::omp::Directive::OMPD_declare_variant, + { + llvm::omp::allowedClauses_OMPD_declare_variant, + llvm::omp::allowedOnceClauses_OMPD_declare_variant, + llvm::omp::allowedExclusiveClauses_OMPD_declare_variant, + llvm::omp::requiredClauses_OMPD_declare_variant, + } + }, + {llvm::omp::Directive::OMPD_depobj, + { + llvm::omp::allowedClauses_OMPD_depobj, + llvm::omp::allowedOnceClauses_OMPD_depobj, + llvm::omp::allowedExclusiveClauses_OMPD_depobj, + llvm::omp::requiredClauses_OMPD_depobj, + } + }, + {llvm::omp::Directive::OMPD_distribute, + { + llvm::omp::allowedClauses_OMPD_distribute, + llvm::omp::allowedOnceClauses_OMPD_distribute, + llvm::omp::allowedExclusiveClauses_OMPD_distribute, + llvm::omp::requiredClauses_OMPD_distribute, + } + }, + {llvm::omp::Directive::OMPD_distribute_parallel_do, + { + llvm::omp::allowedClauses_OMPD_distribute_parallel_do, + llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_do, + llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_do, + llvm::omp::requiredClauses_OMPD_distribute_parallel_do, + } + }, + {llvm::omp::Directive::OMPD_distribute_parallel_do_simd, + { + llvm::omp::allowedClauses_OMPD_distribute_parallel_do_simd, + llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_do_simd, + llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_do_simd, + llvm::omp::requiredClauses_OMPD_distribute_parallel_do_simd, + } + }, + {llvm::omp::Directive::OMPD_distribute_parallel_for, + { + llvm::omp::allowedClauses_OMPD_distribute_parallel_for, + llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_for, + llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_for, + llvm::omp::requiredClauses_OMPD_distribute_parallel_for, + } + }, + {llvm::omp::Directive::OMPD_distribute_parallel_for_simd, + { + llvm::omp::allowedClauses_OMPD_distribute_parallel_for_simd, + llvm::omp::allowedOnceClauses_OMPD_distribute_parallel_for_simd, + llvm::omp::allowedExclusiveClauses_OMPD_distribute_parallel_for_simd, + llvm::omp::requiredClauses_OMPD_distribute_parallel_for_simd, + } + }, + {llvm::omp::Directive::OMPD_distribute_simd, + { + llvm::omp::allowedClauses_OMPD_distribute_simd, + llvm::omp::allowedOnceClauses_OMPD_distribute_simd, + llvm::omp::allowedExclusiveClauses_OMPD_distribute_simd, + llvm::omp::requiredClauses_OMPD_distribute_simd, + } + }, + {llvm::omp::Directive::OMPD_do, + { + llvm::omp::allowedClauses_OMPD_do, + llvm::omp::allowedOnceClauses_OMPD_do, + llvm::omp::allowedExclusiveClauses_OMPD_do, + llvm::omp::requiredClauses_OMPD_do, + } + }, + {llvm::omp::Directive::OMPD_do_simd, + { + llvm::omp::allowedClauses_OMPD_do_simd, + llvm::omp::allowedOnceClauses_OMPD_do_simd, + llvm::omp::allowedExclusiveClauses_OMPD_do_simd, + llvm::omp::requiredClauses_OMPD_do_simd, + } + }, + {llvm::omp::Directive::OMPD_end_assumes, + { + llvm::omp::allowedClauses_OMPD_end_assumes, + llvm::omp::allowedOnceClauses_OMPD_end_assumes, + llvm::omp::allowedExclusiveClauses_OMPD_end_assumes, + llvm::omp::requiredClauses_OMPD_end_assumes, + } + }, + {llvm::omp::Directive::OMPD_end_declare_target, + { + llvm::omp::allowedClauses_OMPD_end_declare_target, + llvm::omp::allowedOnceClauses_OMPD_end_declare_target, + llvm::omp::allowedExclusiveClauses_OMPD_end_declare_target, + llvm::omp::requiredClauses_OMPD_end_declare_target, + } + }, + {llvm::omp::Directive::OMPD_end_declare_variant, + { + llvm::omp::allowedClauses_OMPD_end_declare_variant, + llvm::omp::allowedOnceClauses_OMPD_end_declare_variant, + llvm::omp::allowedExclusiveClauses_OMPD_end_declare_variant, + llvm::omp::requiredClauses_OMPD_end_declare_variant, + } + }, + {llvm::omp::Directive::OMPD_end_do, + { + llvm::omp::allowedClauses_OMPD_end_do, + llvm::omp::allowedOnceClauses_OMPD_end_do, + llvm::omp::allowedExclusiveClauses_OMPD_end_do, + llvm::omp::requiredClauses_OMPD_end_do, + } + }, + {llvm::omp::Directive::OMPD_end_do_simd, + { + llvm::omp::allowedClauses_OMPD_end_do_simd, + llvm::omp::allowedOnceClauses_OMPD_end_do_simd, + llvm::omp::allowedExclusiveClauses_OMPD_end_do_simd, + llvm::omp::requiredClauses_OMPD_end_do_simd, + } + }, + {llvm::omp::Directive::OMPD_end_sections, + { + llvm::omp::allowedClauses_OMPD_end_sections, + llvm::omp::allowedOnceClauses_OMPD_end_sections, + llvm::omp::allowedExclusiveClauses_OMPD_end_sections, + llvm::omp::requiredClauses_OMPD_end_sections, + } + }, + {llvm::omp::Directive::OMPD_end_single, + { + llvm::omp::allowedClauses_OMPD_end_single, + llvm::omp::allowedOnceClauses_OMPD_end_single, + llvm::omp::allowedExclusiveClauses_OMPD_end_single, + llvm::omp::requiredClauses_OMPD_end_single, + } + }, + {llvm::omp::Directive::OMPD_end_workshare, + { + llvm::omp::allowedClauses_OMPD_end_workshare, + llvm::omp::allowedOnceClauses_OMPD_end_workshare, + llvm::omp::allowedExclusiveClauses_OMPD_end_workshare, + llvm::omp::requiredClauses_OMPD_end_workshare, + } + }, + {llvm::omp::Directive::OMPD_flush, + { + llvm::omp::allowedClauses_OMPD_flush, + llvm::omp::allowedOnceClauses_OMPD_flush, + llvm::omp::allowedExclusiveClauses_OMPD_flush, + llvm::omp::requiredClauses_OMPD_flush, + } + }, + {llvm::omp::Directive::OMPD_for, + { + llvm::omp::allowedClauses_OMPD_for, + llvm::omp::allowedOnceClauses_OMPD_for, + llvm::omp::allowedExclusiveClauses_OMPD_for, + llvm::omp::requiredClauses_OMPD_for, + } + }, + {llvm::omp::Directive::OMPD_for_simd, + { + llvm::omp::allowedClauses_OMPD_for_simd, + llvm::omp::allowedOnceClauses_OMPD_for_simd, + llvm::omp::allowedExclusiveClauses_OMPD_for_simd, + llvm::omp::requiredClauses_OMPD_for_simd, + } + }, + {llvm::omp::Directive::OMPD_master, + { + llvm::omp::allowedClauses_OMPD_master, + llvm::omp::allowedOnceClauses_OMPD_master, + llvm::omp::allowedExclusiveClauses_OMPD_master, + llvm::omp::requiredClauses_OMPD_master, + } + }, + {llvm::omp::Directive::OMPD_master_taskloop, + { + llvm::omp::allowedClauses_OMPD_master_taskloop, + llvm::omp::allowedOnceClauses_OMPD_master_taskloop, + llvm::omp::allowedExclusiveClauses_OMPD_master_taskloop, + llvm::omp::requiredClauses_OMPD_master_taskloop, + } + }, + {llvm::omp::Directive::OMPD_master_taskloop_simd, + { + llvm::omp::allowedClauses_OMPD_master_taskloop_simd, + llvm::omp::allowedOnceClauses_OMPD_master_taskloop_simd, + llvm::omp::allowedExclusiveClauses_OMPD_master_taskloop_simd, + llvm::omp::requiredClauses_OMPD_master_taskloop_simd, + } + }, + {llvm::omp::Directive::OMPD_ordered, + { + llvm::omp::allowedClauses_OMPD_ordered, + llvm::omp::allowedOnceClauses_OMPD_ordered, + llvm::omp::allowedExclusiveClauses_OMPD_ordered, + llvm::omp::requiredClauses_OMPD_ordered, + } + }, + {llvm::omp::Directive::OMPD_parallel, + { + llvm::omp::allowedClauses_OMPD_parallel, + llvm::omp::allowedOnceClauses_OMPD_parallel, + llvm::omp::allowedExclusiveClauses_OMPD_parallel, + llvm::omp::requiredClauses_OMPD_parallel, + } + }, + {llvm::omp::Directive::OMPD_parallel_do, + { + llvm::omp::allowedClauses_OMPD_parallel_do, + llvm::omp::allowedOnceClauses_OMPD_parallel_do, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_do, + llvm::omp::requiredClauses_OMPD_parallel_do, + } + }, + {llvm::omp::Directive::OMPD_parallel_do_simd, + { + llvm::omp::allowedClauses_OMPD_parallel_do_simd, + llvm::omp::allowedOnceClauses_OMPD_parallel_do_simd, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_do_simd, + llvm::omp::requiredClauses_OMPD_parallel_do_simd, + } + }, + {llvm::omp::Directive::OMPD_parallel_for, + { + llvm::omp::allowedClauses_OMPD_parallel_for, + llvm::omp::allowedOnceClauses_OMPD_parallel_for, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_for, + llvm::omp::requiredClauses_OMPD_parallel_for, + } + }, + {llvm::omp::Directive::OMPD_parallel_for_simd, + { + llvm::omp::allowedClauses_OMPD_parallel_for_simd, + llvm::omp::allowedOnceClauses_OMPD_parallel_for_simd, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_for_simd, + llvm::omp::requiredClauses_OMPD_parallel_for_simd, + } + }, + {llvm::omp::Directive::OMPD_parallel_master, + { + llvm::omp::allowedClauses_OMPD_parallel_master, + llvm::omp::allowedOnceClauses_OMPD_parallel_master, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_master, + llvm::omp::requiredClauses_OMPD_parallel_master, + } + }, + {llvm::omp::Directive::OMPD_parallel_master_taskloop, + { + llvm::omp::allowedClauses_OMPD_parallel_master_taskloop, + llvm::omp::allowedOnceClauses_OMPD_parallel_master_taskloop, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_master_taskloop, + llvm::omp::requiredClauses_OMPD_parallel_master_taskloop, + } + }, + {llvm::omp::Directive::OMPD_parallel_master_taskloop_simd, + { + llvm::omp::allowedClauses_OMPD_parallel_master_taskloop_simd, + llvm::omp::allowedOnceClauses_OMPD_parallel_master_taskloop_simd, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_master_taskloop_simd, + llvm::omp::requiredClauses_OMPD_parallel_master_taskloop_simd, + } + }, + {llvm::omp::Directive::OMPD_parallel_sections, + { + llvm::omp::allowedClauses_OMPD_parallel_sections, + llvm::omp::allowedOnceClauses_OMPD_parallel_sections, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_sections, + llvm::omp::requiredClauses_OMPD_parallel_sections, + } + }, + {llvm::omp::Directive::OMPD_parallel_workshare, + { + llvm::omp::allowedClauses_OMPD_parallel_workshare, + llvm::omp::allowedOnceClauses_OMPD_parallel_workshare, + llvm::omp::allowedExclusiveClauses_OMPD_parallel_workshare, + llvm::omp::requiredClauses_OMPD_parallel_workshare, + } + }, + {llvm::omp::Directive::OMPD_requires, + { + llvm::omp::allowedClauses_OMPD_requires, + llvm::omp::allowedOnceClauses_OMPD_requires, + llvm::omp::allowedExclusiveClauses_OMPD_requires, + llvm::omp::requiredClauses_OMPD_requires, + } + }, + {llvm::omp::Directive::OMPD_scan, + { + llvm::omp::allowedClauses_OMPD_scan, + llvm::omp::allowedOnceClauses_OMPD_scan, + llvm::omp::allowedExclusiveClauses_OMPD_scan, + llvm::omp::requiredClauses_OMPD_scan, + } + }, + {llvm::omp::Directive::OMPD_section, + { + llvm::omp::allowedClauses_OMPD_section, + llvm::omp::allowedOnceClauses_OMPD_section, + llvm::omp::allowedExclusiveClauses_OMPD_section, + llvm::omp::requiredClauses_OMPD_section, + } + }, + {llvm::omp::Directive::OMPD_sections, + { + llvm::omp::allowedClauses_OMPD_sections, + llvm::omp::allowedOnceClauses_OMPD_sections, + llvm::omp::allowedExclusiveClauses_OMPD_sections, + llvm::omp::requiredClauses_OMPD_sections, + } + }, + {llvm::omp::Directive::OMPD_simd, + { + llvm::omp::allowedClauses_OMPD_simd, + llvm::omp::allowedOnceClauses_OMPD_simd, + llvm::omp::allowedExclusiveClauses_OMPD_simd, + llvm::omp::requiredClauses_OMPD_simd, + } + }, + {llvm::omp::Directive::OMPD_single, + { + llvm::omp::allowedClauses_OMPD_single, + llvm::omp::allowedOnceClauses_OMPD_single, + llvm::omp::allowedExclusiveClauses_OMPD_single, + llvm::omp::requiredClauses_OMPD_single, + } + }, + {llvm::omp::Directive::OMPD_target, + { + llvm::omp::allowedClauses_OMPD_target, + llvm::omp::allowedOnceClauses_OMPD_target, + llvm::omp::allowedExclusiveClauses_OMPD_target, + llvm::omp::requiredClauses_OMPD_target, + } + }, + {llvm::omp::Directive::OMPD_target_data, + { + llvm::omp::allowedClauses_OMPD_target_data, + llvm::omp::allowedOnceClauses_OMPD_target_data, + llvm::omp::allowedExclusiveClauses_OMPD_target_data, + llvm::omp::requiredClauses_OMPD_target_data, + } + }, + {llvm::omp::Directive::OMPD_target_enter_data, + { + llvm::omp::allowedClauses_OMPD_target_enter_data, + llvm::omp::allowedOnceClauses_OMPD_target_enter_data, + llvm::omp::allowedExclusiveClauses_OMPD_target_enter_data, + llvm::omp::requiredClauses_OMPD_target_enter_data, + } + }, + {llvm::omp::Directive::OMPD_target_exit_data, + { + llvm::omp::allowedClauses_OMPD_target_exit_data, + llvm::omp::allowedOnceClauses_OMPD_target_exit_data, + llvm::omp::allowedExclusiveClauses_OMPD_target_exit_data, + llvm::omp::requiredClauses_OMPD_target_exit_data, + } + }, + {llvm::omp::Directive::OMPD_target_parallel, + { + llvm::omp::allowedClauses_OMPD_target_parallel, + llvm::omp::allowedOnceClauses_OMPD_target_parallel, + llvm::omp::allowedExclusiveClauses_OMPD_target_parallel, + llvm::omp::requiredClauses_OMPD_target_parallel, + } + }, + {llvm::omp::Directive::OMPD_target_parallel_do, + { + llvm::omp::allowedClauses_OMPD_target_parallel_do, + llvm::omp::allowedOnceClauses_OMPD_target_parallel_do, + llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_do, + llvm::omp::requiredClauses_OMPD_target_parallel_do, + } + }, + {llvm::omp::Directive::OMPD_target_parallel_do_simd, + { + llvm::omp::allowedClauses_OMPD_target_parallel_do_simd, + llvm::omp::allowedOnceClauses_OMPD_target_parallel_do_simd, + llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_do_simd, + llvm::omp::requiredClauses_OMPD_target_parallel_do_simd, + } + }, + {llvm::omp::Directive::OMPD_target_parallel_for, + { + llvm::omp::allowedClauses_OMPD_target_parallel_for, + llvm::omp::allowedOnceClauses_OMPD_target_parallel_for, + llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_for, + llvm::omp::requiredClauses_OMPD_target_parallel_for, + } + }, + {llvm::omp::Directive::OMPD_target_parallel_for_simd, + { + llvm::omp::allowedClauses_OMPD_target_parallel_for_simd, + llvm::omp::allowedOnceClauses_OMPD_target_parallel_for_simd, + llvm::omp::allowedExclusiveClauses_OMPD_target_parallel_for_simd, + llvm::omp::requiredClauses_OMPD_target_parallel_for_simd, + } + }, + {llvm::omp::Directive::OMPD_target_simd, + { + llvm::omp::allowedClauses_OMPD_target_simd, + llvm::omp::allowedOnceClauses_OMPD_target_simd, + llvm::omp::allowedExclusiveClauses_OMPD_target_simd, + llvm::omp::requiredClauses_OMPD_target_simd, + } + }, + {llvm::omp::Directive::OMPD_target_teams, + { + llvm::omp::allowedClauses_OMPD_target_teams, + llvm::omp::allowedOnceClauses_OMPD_target_teams, + llvm::omp::allowedExclusiveClauses_OMPD_target_teams, + llvm::omp::requiredClauses_OMPD_target_teams, + } + }, + {llvm::omp::Directive::OMPD_target_teams_distribute, + { + llvm::omp::allowedClauses_OMPD_target_teams_distribute, + llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute, + llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute, + llvm::omp::requiredClauses_OMPD_target_teams_distribute, + } + }, + {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do, + { + llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_do, + llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_do, + llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do, + llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_do, + } + }, + {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do_simd, + { + llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_do_simd, + llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_do_simd, + llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_do_simd, + llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_do_simd, + } + }, + {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_for, + { + llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_for, + llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_for, + llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for, + llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_for, + } + }, + {llvm::omp::Directive::OMPD_target_teams_distribute_parallel_for_simd, + { + llvm::omp::allowedClauses_OMPD_target_teams_distribute_parallel_for_simd, + llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_parallel_for_simd, + llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_parallel_for_simd, + llvm::omp::requiredClauses_OMPD_target_teams_distribute_parallel_for_simd, + } + }, + {llvm::omp::Directive::OMPD_target_teams_distribute_simd, + { + llvm::omp::allowedClauses_OMPD_target_teams_distribute_simd, + llvm::omp::allowedOnceClauses_OMPD_target_teams_distribute_simd, + llvm::omp::allowedExclusiveClauses_OMPD_target_teams_distribute_simd, + llvm::omp::requiredClauses_OMPD_target_teams_distribute_simd, + } + }, + {llvm::omp::Directive::OMPD_target_update, + { + llvm::omp::allowedClauses_OMPD_target_update, + llvm::omp::allowedOnceClauses_OMPD_target_update, + llvm::omp::allowedExclusiveClauses_OMPD_target_update, + llvm::omp::requiredClauses_OMPD_target_update, + } + }, + {llvm::omp::Directive::OMPD_task, + { + llvm::omp::allowedClauses_OMPD_task, + llvm::omp::allowedOnceClauses_OMPD_task, + llvm::omp::allowedExclusiveClauses_OMPD_task, + llvm::omp::requiredClauses_OMPD_task, + } + }, + {llvm::omp::Directive::OMPD_taskgroup, + { + llvm::omp::allowedClauses_OMPD_taskgroup, + llvm::omp::allowedOnceClauses_OMPD_taskgroup, + llvm::omp::allowedExclusiveClauses_OMPD_taskgroup, + llvm::omp::requiredClauses_OMPD_taskgroup, + } + }, + {llvm::omp::Directive::OMPD_taskloop, + { + llvm::omp::allowedClauses_OMPD_taskloop, + llvm::omp::allowedOnceClauses_OMPD_taskloop, + llvm::omp::allowedExclusiveClauses_OMPD_taskloop, + llvm::omp::requiredClauses_OMPD_taskloop, + } + }, + {llvm::omp::Directive::OMPD_taskloop_simd, + { + llvm::omp::allowedClauses_OMPD_taskloop_simd, + llvm::omp::allowedOnceClauses_OMPD_taskloop_simd, + llvm::omp::allowedExclusiveClauses_OMPD_taskloop_simd, + llvm::omp::requiredClauses_OMPD_taskloop_simd, + } + }, + {llvm::omp::Directive::OMPD_taskwait, + { + llvm::omp::allowedClauses_OMPD_taskwait, + llvm::omp::allowedOnceClauses_OMPD_taskwait, + llvm::omp::allowedExclusiveClauses_OMPD_taskwait, + llvm::omp::requiredClauses_OMPD_taskwait, + } + }, + {llvm::omp::Directive::OMPD_taskyield, + { + llvm::omp::allowedClauses_OMPD_taskyield, + llvm::omp::allowedOnceClauses_OMPD_taskyield, + llvm::omp::allowedExclusiveClauses_OMPD_taskyield, + llvm::omp::requiredClauses_OMPD_taskyield, + } + }, + {llvm::omp::Directive::OMPD_teams, + { + llvm::omp::allowedClauses_OMPD_teams, + llvm::omp::allowedOnceClauses_OMPD_teams, + llvm::omp::allowedExclusiveClauses_OMPD_teams, + llvm::omp::requiredClauses_OMPD_teams, + } + }, + {llvm::omp::Directive::OMPD_teams_distribute, + { + llvm::omp::allowedClauses_OMPD_teams_distribute, + llvm::omp::allowedOnceClauses_OMPD_teams_distribute, + llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute, + llvm::omp::requiredClauses_OMPD_teams_distribute, + } + }, + {llvm::omp::Directive::OMPD_teams_distribute_parallel_do, + { + llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_do, + llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_do, + llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_do, + llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_do, + } + }, + {llvm::omp::Directive::OMPD_teams_distribute_parallel_do_simd, + { + llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_do_simd, + llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_do_simd, + llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_do_simd, + llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_do_simd, + } + }, + {llvm::omp::Directive::OMPD_teams_distribute_parallel_for, + { + llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_for, + llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_for, + llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_for, + llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_for, + } + }, + {llvm::omp::Directive::OMPD_teams_distribute_parallel_for_simd, + { + llvm::omp::allowedClauses_OMPD_teams_distribute_parallel_for_simd, + llvm::omp::allowedOnceClauses_OMPD_teams_distribute_parallel_for_simd, + llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_parallel_for_simd, + llvm::omp::requiredClauses_OMPD_teams_distribute_parallel_for_simd, + } + }, + {llvm::omp::Directive::OMPD_teams_distribute_simd, + { + llvm::omp::allowedClauses_OMPD_teams_distribute_simd, + llvm::omp::allowedOnceClauses_OMPD_teams_distribute_simd, + llvm::omp::allowedExclusiveClauses_OMPD_teams_distribute_simd, + llvm::omp::requiredClauses_OMPD_teams_distribute_simd, + } + }, + {llvm::omp::Directive::OMPD_threadprivate, + { + llvm::omp::allowedClauses_OMPD_threadprivate, + llvm::omp::allowedOnceClauses_OMPD_threadprivate, + llvm::omp::allowedExclusiveClauses_OMPD_threadprivate, + llvm::omp::requiredClauses_OMPD_threadprivate, + } + }, + {llvm::omp::Directive::OMPD_unknown, + { + llvm::omp::allowedClauses_OMPD_unknown, + llvm::omp::allowedOnceClauses_OMPD_unknown, + llvm::omp::allowedExclusiveClauses_OMPD_unknown, + llvm::omp::requiredClauses_OMPD_unknown, + } + }, + {llvm::omp::Directive::OMPD_workshare, + { + llvm::omp::allowedClauses_OMPD_workshare, + llvm::omp::allowedOnceClauses_OMPD_workshare, + llvm::omp::allowedExclusiveClauses_OMPD_workshare, + llvm::omp::requiredClauses_OMPD_workshare, + } + }, +} + +#endif // GEN_FLANG_DIRECTIVE_CLAUSE_MAP + +#ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES +#undef GEN_FLANG_CLAUSE_PARSER_CLASSES + +EMPTY_CLASS(AcqRel); +EMPTY_CLASS(Acquire); +EMPTY_CLASS(Affinity); +WRAPPER_CLASS(Aligned, OmpAlignedClause); +WRAPPER_CLASS(Allocate, OmpAllocateClause); +WRAPPER_CLASS(Allocator, ScalarIntExpr); +EMPTY_CLASS(AtomicDefaultMemOrder); +EMPTY_CLASS(Capture); +WRAPPER_CLASS(Collapse, ScalarIntConstantExpr); +WRAPPER_CLASS(Copyprivate, OmpObjectList); +WRAPPER_CLASS(Copyin, OmpObjectList); +WRAPPER_CLASS(Default, OmpDefaultClause); +WRAPPER_CLASS(Defaultmap, OmpDefaultmapClause); +WRAPPER_CLASS(Depend, OmpDependClause); +EMPTY_CLASS(Depobj); +EMPTY_CLASS(Destroy); +EMPTY_CLASS(Detach); +WRAPPER_CLASS(Device, ScalarIntExpr); +EMPTY_CLASS(DeviceType); +WRAPPER_CLASS(DistSchedule, std::optional<ScalarIntExpr>); +EMPTY_CLASS(DynamicAllocators); +EMPTY_CLASS(Exclusive); +WRAPPER_CLASS(Final, ScalarLogicalExpr); +WRAPPER_CLASS(Firstprivate, OmpObjectList); +EMPTY_CLASS(Flush); +WRAPPER_CLASS(From, OmpObjectList); +WRAPPER_CLASS(Grainsize, ScalarIntExpr); +WRAPPER_CLASS(Hint, ConstantExpr); +WRAPPER_CLASS(If, OmpIfClause); +EMPTY_CLASS(InReduction); +EMPTY_CLASS(Inbranch); +EMPTY_CLASS(Inclusive); +WRAPPER_CLASS(IsDevicePtr, std::list<Name>); +WRAPPER_CLASS(Lastprivate, OmpObjectList); +WRAPPER_CLASS(Linear, OmpLinearClause); +WRAPPER_CLASS(Link, OmpObjectList); +WRAPPER_CLASS(Map, OmpMapClause); +EMPTY_CLASS(Match); +EMPTY_CLASS(Mergeable); +EMPTY_CLASS(Nogroup); +EMPTY_CLASS(Nowait); +EMPTY_CLASS(Nontemporal); +EMPTY_CLASS(Notinbranch); +WRAPPER_CLASS(NumTasks, ScalarIntExpr); +WRAPPER_CLASS(NumTeams, ScalarIntExpr); +WRAPPER_CLASS(NumThreads, ScalarIntExpr); +EMPTY_CLASS(Order); +WRAPPER_CLASS(Ordered, std::optional<ScalarIntConstantExpr>); +WRAPPER_CLASS(Priority, ScalarIntExpr); +WRAPPER_CLASS(Private, OmpObjectList); +WRAPPER_CLASS(ProcBind, OmpProcBindClause); +EMPTY_CLASS(Read); +WRAPPER_CLASS(Reduction, OmpReductionClause); +EMPTY_CLASS(Relaxed); +EMPTY_CLASS(Release); +EMPTY_CLASS(ReverseOffload); +WRAPPER_CLASS(Safelen, ScalarIntConstantExpr); +WRAPPER_CLASS(Schedule, OmpScheduleClause); +EMPTY_CLASS(SeqCst); +WRAPPER_CLASS(Shared, OmpObjectList); +EMPTY_CLASS(Simd); +WRAPPER_CLASS(Simdlen, ScalarIntConstantExpr); +WRAPPER_CLASS(TaskReduction, OmpReductionClause); +WRAPPER_CLASS(ThreadLimit, ScalarIntExpr); +EMPTY_CLASS(Threadprivate); +EMPTY_CLASS(Threads); +WRAPPER_CLASS(To, OmpObjectList); +EMPTY_CLASS(UnifiedAddress); +EMPTY_CLASS(UnifiedSharedMemory); +WRAPPER_CLASS(Uniform, std::list<Name>); +EMPTY_CLASS(Unknown); +EMPTY_CLASS(Untied); +EMPTY_CLASS(Update); +EMPTY_CLASS(UseDeviceAddr); +WRAPPER_CLASS(UseDevicePtr, std::list<Name>); +EMPTY_CLASS(UsesAllocators); +EMPTY_CLASS(Write); + +#endif // GEN_FLANG_CLAUSE_PARSER_CLASSES + +#ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST +#undef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST + +AcqRel +, Acquire +, Affinity +, Aligned +, Allocate +, Allocator +, AtomicDefaultMemOrder +, Capture +, Collapse +, Copyprivate +, Copyin +, Default +, Defaultmap +, Depend +, Depobj +, Destroy +, Detach +, Device +, DeviceType +, DistSchedule +, DynamicAllocators +, Exclusive +, Final +, Firstprivate +, Flush +, From +, Grainsize +, Hint +, If +, InReduction +, Inbranch +, Inclusive +, IsDevicePtr +, Lastprivate +, Linear +, Link +, Map +, Match +, Mergeable +, Nogroup +, Nowait +, Nontemporal +, Notinbranch +, NumTasks +, NumTeams +, NumThreads +, Order +, Ordered +, Priority +, Private +, ProcBind +, Read +, Reduction +, Relaxed +, Release +, ReverseOffload +, Safelen +, Schedule +, SeqCst +, Shared +, Simd +, Simdlen +, TaskReduction +, ThreadLimit +, Threadprivate +, Threads +, To +, UnifiedAddress +, UnifiedSharedMemory +, Uniform +, Unknown +, Untied +, Update +, UseDeviceAddr +, UseDevicePtr +, UsesAllocators +, Write + +#endif // GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST + +#ifdef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES +#undef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES + +NODE(OmpClause, AcqRel) +NODE(OmpClause, Acquire) +NODE(OmpClause, Affinity) +NODE(OmpClause, Aligned) +NODE(OmpClause, Allocate) +NODE(OmpClause, Allocator) +NODE(OmpClause, AtomicDefaultMemOrder) +NODE(OmpClause, Capture) +NODE(OmpClause, Collapse) +NODE(OmpClause, Copyprivate) +NODE(OmpClause, Copyin) +NODE(OmpClause, Default) +NODE(OmpClause, Defaultmap) +NODE(OmpClause, Depend) +NODE(OmpClause, Depobj) +NODE(OmpClause, Destroy) +NODE(OmpClause, Detach) +NODE(OmpClause, Device) +NODE(OmpClause, DeviceType) +NODE(OmpClause, DistSchedule) +NODE(OmpClause, DynamicAllocators) +NODE(OmpClause, Exclusive) +NODE(OmpClause, Final) +NODE(OmpClause, Firstprivate) +NODE(OmpClause, Flush) +NODE(OmpClause, From) +NODE(OmpClause, Grainsize) +NODE(OmpClause, Hint) +NODE(OmpClause, If) +NODE(OmpClause, InReduction) +NODE(OmpClause, Inbranch) +NODE(OmpClause, Inclusive) +NODE(OmpClause, IsDevicePtr) +NODE(OmpClause, Lastprivate) +NODE(OmpClause, Linear) +NODE(OmpClause, Link) +NODE(OmpClause, Map) +NODE(OmpClause, Match) +NODE(OmpClause, Mergeable) +NODE(OmpClause, Nogroup) +NODE(OmpClause, Nowait) +NODE(OmpClause, Nontemporal) +NODE(OmpClause, Notinbranch) +NODE(OmpClause, NumTasks) +NODE(OmpClause, NumTeams) +NODE(OmpClause, NumThreads) +NODE(OmpClause, Order) +NODE(OmpClause, Ordered) +NODE(OmpClause, Priority) +NODE(OmpClause, Private) +NODE(OmpClause, ProcBind) +NODE(OmpClause, Read) +NODE(OmpClause, Reduction) +NODE(OmpClause, Relaxed) +NODE(OmpClause, Release) +NODE(OmpClause, ReverseOffload) +NODE(OmpClause, Safelen) +NODE(OmpClause, Schedule) +NODE(OmpClause, SeqCst) +NODE(OmpClause, Shared) +NODE(OmpClause, Simd) +NODE(OmpClause, Simdlen) +NODE(OmpClause, TaskReduction) +NODE(OmpClause, ThreadLimit) +NODE(OmpClause, Threadprivate) +NODE(OmpClause, Threads) +NODE(OmpClause, To) +NODE(OmpClause, UnifiedAddress) +NODE(OmpClause, UnifiedSharedMemory) +NODE(OmpClause, Uniform) +NODE(OmpClause, Unknown) +NODE(OmpClause, Untied) +NODE(OmpClause, Update) +NODE(OmpClause, UseDeviceAddr) +NODE(OmpClause, UseDevicePtr) +NODE(OmpClause, UsesAllocators) +NODE(OmpClause, Write) + +#endif // GEN_FLANG_DUMP_PARSE_TREE_CLAUSES + +#ifdef GEN_FLANG_CLAUSE_UNPARSE +#undef GEN_FLANG_CLAUSE_UNPARSE + +void Before(const OmpClause::AcqRel &) { Word("ACQ_REL"); } +void Before(const OmpClause::Acquire &) { Word("ACQUIRE"); } +void Before(const OmpClause::Affinity &) { Word("AFFINITY"); } +void Unparse(const OmpClause::Aligned &x) { + Word("ALIGNED"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Allocate &x) { + Word("ALLOCATE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Allocator &x) { + Word("ALLOCATOR"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::AtomicDefaultMemOrder &) { Word("ATOMIC_DEFAULT_MEM_ORDER"); } +void Before(const OmpClause::Capture &) { Word("CAPTURE"); } +void Unparse(const OmpClause::Collapse &x) { + Word("COLLAPSE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Copyprivate &x) { + Word("COPYPRIVATE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Copyin &x) { + Word("COPYIN"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Default &x) { + Word("DEFAULT"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Defaultmap &x) { + Word("DEFAULTMAP"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Depend &x) { + Word("DEPEND"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::Depobj &) { Word("DEPOBJ"); } +void Before(const OmpClause::Destroy &) { Word("DESTROY"); } +void Before(const OmpClause::Detach &) { Word("DETACH"); } +void Unparse(const OmpClause::Device &x) { + Word("DEVICE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::DeviceType &) { Word("DEVICE_TYPE"); } +void Unparse(const OmpClause::DistSchedule &x) { + Word("DIST_SCHEDULE"); + Walk("(", x.v, ")"); +} +void Before(const OmpClause::DynamicAllocators &) { Word("DYNAMIC_ALLOCATORS"); } +void Before(const OmpClause::Exclusive &) { Word("EXCLUSIVE"); } +void Unparse(const OmpClause::Final &x) { + Word("FINAL"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Firstprivate &x) { + Word("FIRSTPRIVATE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::Flush &) { Word("FLUSH"); } +void Unparse(const OmpClause::From &x) { + Word("FROM"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Grainsize &x) { + Word("GRAINSIZE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Hint &x) { + Word("HINT"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::If &x) { + Word("IF"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::InReduction &) { Word("IN_REDUCTION"); } +void Before(const OmpClause::Inbranch &) { Word("INBRANCH"); } +void Before(const OmpClause::Inclusive &) { Word("INCLUSIVE"); } +void Unparse(const OmpClause::IsDevicePtr &x) { + Word("IS_DEVICE_PTR"); + Put("("); + Walk(x.v, ","); + Put(")"); +} +void Unparse(const OmpClause::Lastprivate &x) { + Word("LASTPRIVATE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Linear &x) { + Word("LINEAR"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Link &x) { + Word("LINK"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Map &x) { + Word("MAP"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::Match &) { Word("MATCH"); } +void Before(const OmpClause::Mergeable &) { Word("MERGEABLE"); } +void Before(const OmpClause::Nogroup &) { Word("NOGROUP"); } +void Before(const OmpClause::Nowait &) { Word("NOWAIT"); } +void Before(const OmpClause::Nontemporal &) { Word("NONTEMPORAL"); } +void Before(const OmpClause::Notinbranch &) { Word("NOTINBRANCH"); } +void Unparse(const OmpClause::NumTasks &x) { + Word("NUM_TASKS"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::NumTeams &x) { + Word("NUM_TEAMS"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::NumThreads &x) { + Word("NUM_THREADS"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::Order &) { Word("ORDER"); } +void Unparse(const OmpClause::Ordered &x) { + Word("ORDERED"); + Walk("(", x.v, ")"); +} +void Unparse(const OmpClause::Priority &x) { + Word("PRIORITY"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Private &x) { + Word("PRIVATE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::ProcBind &x) { + Word("PROC_BIND"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::Read &) { Word("READ"); } +void Unparse(const OmpClause::Reduction &x) { + Word("REDUCTION"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::Relaxed &) { Word("RELAXED"); } +void Before(const OmpClause::Release &) { Word("RELEASE"); } +void Before(const OmpClause::ReverseOffload &) { Word("REVERSE_OFFLOAD"); } +void Unparse(const OmpClause::Safelen &x) { + Word("SAFELEN"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::Schedule &x) { + Word("SCHEDULE"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::SeqCst &) { Word("SEQ_CST"); } +void Unparse(const OmpClause::Shared &x) { + Word("SHARED"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::Simd &) { Word("SIMD"); } +void Unparse(const OmpClause::Simdlen &x) { + Word("SIMDLEN"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::TaskReduction &x) { + Word("TASK_REDUCTION"); + Put("("); + Walk(x.v); + Put(")"); +} +void Unparse(const OmpClause::ThreadLimit &x) { + Word("THREAD_LIMIT"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::Threadprivate &) { Word("THREADPRIVATE"); } +void Before(const OmpClause::Threads &) { Word("THREADS"); } +void Unparse(const OmpClause::To &x) { + Word("TO"); + Put("("); + Walk(x.v); + Put(")"); +} +void Before(const OmpClause::UnifiedAddress &) { Word("UNIFIED_ADDRESS"); } +void Before(const OmpClause::UnifiedSharedMemory &) { Word("UNIFIED_SHARED_MEMORY"); } +void Unparse(const OmpClause::Uniform &x) { + Word("UNIFORM"); + Put("("); + Walk(x.v, ","); + Put(")"); +} +void Before(const OmpClause::Unknown &) { Word("UNKNOWN"); } +void Before(const OmpClause::Untied &) { Word("UNTIED"); } +void Before(const OmpClause::Update &) { Word("UPDATE"); } +void Before(const OmpClause::UseDeviceAddr &) { Word("USE_DEVICE_ADDR"); } +void Unparse(const OmpClause::UseDevicePtr &x) { + Word("USE_DEVICE_PTR"); + Put("("); + Walk(x.v, ","); + Put(")"); +} +void Before(const OmpClause::UsesAllocators &) { Word("USES_ALLOCATORS"); } +void Before(const OmpClause::Write &) { Word("WRITE"); } + +#endif // GEN_FLANG_CLAUSE_UNPARSE + +#ifdef GEN_CLANG_CLAUSE_CLASS +#undef GEN_CLANG_CLAUSE_CLASS + +#ifndef CLAUSE +#define CLAUSE(Enum, Str, Implicit) +#endif +#ifndef CLAUSE_CLASS +#define CLAUSE_CLASS(Enum, Str, Class) +#endif +#ifndef CLAUSE_NO_CLASS +#define CLAUSE_NO_CLASS(Enum, Str) +#endif + +#define __CLAUSE(Name, Class) \ + CLAUSE(OMPC_##Name, #Name, /* Implicit */ false) \ + CLAUSE_CLASS(OMPC_##Name, #Name, Class) +#define __CLAUSE_NO_CLASS(Name) \ + CLAUSE(OMPC_##Name, #Name, /* Implicit */ false) \ + CLAUSE_NO_CLASS(OMPC_##Name, #Name) +#define __IMPLICIT_CLAUSE_CLASS(Name, Str, Class) \ + CLAUSE(OMPC_##Name, Str, /* Implicit */ true) \ + CLAUSE_CLASS(OMPC_##Name, Str, Class) +#define __IMPLICIT_CLAUSE_NO_CLASS(Name, Str) \ + CLAUSE(OMPC_##Name, Str, /* Implicit */ true) \ + CLAUSE_NO_CLASS(OMPC_##Name, Str) + +__CLAUSE(acq_rel, OMPAcqRelClause) +__CLAUSE(acquire, OMPAcquireClause) +__CLAUSE(affinity, OMPAffinityClause) +__CLAUSE(aligned, OMPAlignedClause) +__CLAUSE(allocate, OMPAllocateClause) +__CLAUSE(allocator, OMPAllocatorClause) +__CLAUSE(atomic_default_mem_order, OMPAtomicDefaultMemOrderClause) +__CLAUSE(capture, OMPCaptureClause) +__CLAUSE(collapse, OMPCollapseClause) +__CLAUSE(copyprivate, OMPCopyprivateClause) +__CLAUSE(copyin, OMPCopyinClause) +__CLAUSE(default, OMPDefaultClause) +__CLAUSE(defaultmap, OMPDefaultmapClause) +__CLAUSE(depend, OMPDependClause) +__IMPLICIT_CLAUSE_CLASS(depobj, "depobj", OMPDepobjClause) +__CLAUSE(destroy, OMPDestroyClause) +__CLAUSE(detach, OMPDetachClause) +__CLAUSE(device, OMPDeviceClause) +__CLAUSE_NO_CLASS(device_type) +__CLAUSE(dist_schedule, OMPDistScheduleClause) +__CLAUSE(dynamic_allocators, OMPDynamicAllocatorsClause) +__CLAUSE(exclusive, OMPExclusiveClause) +__CLAUSE(final, OMPFinalClause) +__CLAUSE(firstprivate, OMPFirstprivateClause) +__IMPLICIT_CLAUSE_CLASS(flush, "flush", OMPFlushClause) +__CLAUSE(from, OMPFromClause) +__CLAUSE(grainsize, OMPGrainsizeClause) +__CLAUSE(hint, OMPHintClause) +__CLAUSE(if, OMPIfClause) +__CLAUSE(in_reduction, OMPInReductionClause) +__CLAUSE_NO_CLASS(inbranch) +__CLAUSE(inclusive, OMPInclusiveClause) +__CLAUSE(is_device_ptr, OMPIsDevicePtrClause) +__CLAUSE(lastprivate, OMPLastprivateClause) +__CLAUSE(linear, OMPLinearClause) +__CLAUSE_NO_CLASS(link) +__CLAUSE(map, OMPMapClause) +__CLAUSE_NO_CLASS(match) +__CLAUSE(mergeable, OMPMergeableClause) +__CLAUSE(nogroup, OMPNogroupClause) +__CLAUSE(nowait, OMPNowaitClause) +__CLAUSE(nontemporal, OMPNontemporalClause) +__CLAUSE_NO_CLASS(notinbranch) +__CLAUSE(num_tasks, OMPNumTasksClause) +__CLAUSE(num_teams, OMPNumTeamsClause) +__CLAUSE(num_threads, OMPNumThreadsClause) +__CLAUSE(order, OMPOrderClause) +__CLAUSE(ordered, OMPOrderedClause) +__CLAUSE(priority, OMPPriorityClause) +__CLAUSE(private, OMPPrivateClause) +__CLAUSE(proc_bind, OMPProcBindClause) +__CLAUSE(read, OMPReadClause) +__CLAUSE(reduction, OMPReductionClause) +__CLAUSE(relaxed, OMPRelaxedClause) +__CLAUSE(release, OMPReleaseClause) +__CLAUSE(reverse_offload, OMPReverseOffloadClause) +__CLAUSE(safelen, OMPSafelenClause) +__CLAUSE(schedule, OMPScheduleClause) +__CLAUSE(seq_cst, OMPSeqCstClause) +__CLAUSE(shared, OMPSharedClause) +__CLAUSE(simd, OMPSIMDClause) +__CLAUSE(simdlen, OMPSimdlenClause) +__CLAUSE(task_reduction, OMPTaskReductionClause) +__CLAUSE(thread_limit, OMPThreadLimitClause) +__IMPLICIT_CLAUSE_NO_CLASS(threadprivate, "threadprivate") +__CLAUSE(threads, OMPThreadsClause) +__CLAUSE(to, OMPToClause) +__CLAUSE(unified_address, OMPUnifiedAddressClause) +__CLAUSE(unified_shared_memory, OMPUnifiedSharedMemoryClause) +__CLAUSE_NO_CLASS(uniform) +__IMPLICIT_CLAUSE_NO_CLASS(unknown, "unknown") +__CLAUSE(untied, OMPUntiedClause) +__CLAUSE(update, OMPUpdateClause) +__CLAUSE(use_device_addr, OMPUseDeviceAddrClause) +__CLAUSE(use_device_ptr, OMPUseDevicePtrClause) +__CLAUSE(uses_allocators, OMPUsesAllocatorsClause) +__CLAUSE(write, OMPWriteClause) + +#undef __IMPLICIT_CLAUSE_NO_CLASS +#undef __IMPLICIT_CLAUSE_CLASS +#undef __CLAUSE +#undef CLAUSE_NO_CLASS +#undef CLAUSE_CLASS +#undef CLAUSE + +#endif // GEN_CLANG_CLAUSE_CLASS + diff --git a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.td b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.td index 10fa5a37b8..d953e49696 100644 --- a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.td +++ b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.td @@ -21,11 +21,11 @@ def OpenMP : DirectiveLanguage { let cppNamespace = "omp"; // final namespace will be llvm::omp let directivePrefix = "OMPD_"; let clausePrefix = "OMPC_"; - let makeEnumAvailableInNamespace = true; - let enableBitmaskEnumInNamespace = true; + let makeEnumAvailableInNamespace = true; + let enableBitmaskEnumInNamespace = true; let includeHeader = "llvm/Frontend/OpenMP/OMP.h.inc"; let clauseEnumSetClass = "OmpClauseSet"; - let flangClauseBaseClass = "OmpClause"; + let flangClauseBaseClass = "OmpClause"; } //===----------------------------------------------------------------------===// @@ -34,120 +34,120 @@ def OpenMP : DirectiveLanguage { def OMPC_Allocator : Clause<"allocator"> { let clangClass = "OMPAllocatorClause"; - let flangClass = "ScalarIntExpr"; -} -def OMPC_If : Clause<"if"> { - let clangClass = "OMPIfClause"; - let flangClass = "OmpIfClause"; -} -def OMPC_Final : Clause<"final"> { - let clangClass = "OMPFinalClause"; - let flangClass = "ScalarLogicalExpr"; -} + let flangClass = "ScalarIntExpr"; +} +def OMPC_If : Clause<"if"> { + let clangClass = "OMPIfClause"; + let flangClass = "OmpIfClause"; +} +def OMPC_Final : Clause<"final"> { + let clangClass = "OMPFinalClause"; + let flangClass = "ScalarLogicalExpr"; +} def OMPC_NumThreads : Clause<"num_threads"> { let clangClass = "OMPNumThreadsClause"; - let flangClass = "ScalarIntExpr"; -} -def OMPC_SafeLen : Clause<"safelen"> { - let clangClass = "OMPSafelenClause"; - let flangClass = "ScalarIntConstantExpr"; -} -def OMPC_SimdLen : Clause<"simdlen"> { - let clangClass = "OMPSimdlenClause"; - let flangClass = "ScalarIntConstantExpr"; -} -def OMPC_Collapse : Clause<"collapse"> { - let clangClass = "OMPCollapseClause"; - let flangClass = "ScalarIntConstantExpr"; -} -def OMPC_Default : Clause<"default"> { - let clangClass = "OMPDefaultClause"; - let flangClass = "OmpDefaultClause"; -} -def OMPC_Private : Clause<"private"> { - let clangClass = "OMPPrivateClause"; - let flangClass = "OmpObjectList"; -} + let flangClass = "ScalarIntExpr"; +} +def OMPC_SafeLen : Clause<"safelen"> { + let clangClass = "OMPSafelenClause"; + let flangClass = "ScalarIntConstantExpr"; +} +def OMPC_SimdLen : Clause<"simdlen"> { + let clangClass = "OMPSimdlenClause"; + let flangClass = "ScalarIntConstantExpr"; +} +def OMPC_Collapse : Clause<"collapse"> { + let clangClass = "OMPCollapseClause"; + let flangClass = "ScalarIntConstantExpr"; +} +def OMPC_Default : Clause<"default"> { + let clangClass = "OMPDefaultClause"; + let flangClass = "OmpDefaultClause"; +} +def OMPC_Private : Clause<"private"> { + let clangClass = "OMPPrivateClause"; + let flangClass = "OmpObjectList"; +} def OMPC_FirstPrivate : Clause<"firstprivate"> { let clangClass = "OMPFirstprivateClause"; - let flangClass = "OmpObjectList"; + let flangClass = "OmpObjectList"; } def OMPC_LastPrivate : Clause<"lastprivate"> { let clangClass = "OMPLastprivateClause"; - let flangClass = "OmpObjectList"; -} -def OMPC_Shared : Clause<"shared"> { - let clangClass = "OMPSharedClause"; - let flangClass = "OmpObjectList"; + let flangClass = "OmpObjectList"; } +def OMPC_Shared : Clause<"shared"> { + let clangClass = "OMPSharedClause"; + let flangClass = "OmpObjectList"; +} def OMPC_Reduction : Clause<"reduction"> { let clangClass = "OMPReductionClause"; - let flangClass = "OmpReductionClause"; -} -def OMPC_Linear : Clause<"linear"> { - let clangClass = "OMPLinearClause"; - let flangClass = "OmpLinearClause"; -} -def OMPC_Aligned : Clause<"aligned"> { - let clangClass = "OMPAlignedClause"; - let flangClass = "OmpAlignedClause"; -} -def OMPC_Copyin : Clause<"copyin"> { - let clangClass = "OMPCopyinClause"; - let flangClass = "OmpObjectList"; -} + let flangClass = "OmpReductionClause"; +} +def OMPC_Linear : Clause<"linear"> { + let clangClass = "OMPLinearClause"; + let flangClass = "OmpLinearClause"; +} +def OMPC_Aligned : Clause<"aligned"> { + let clangClass = "OMPAlignedClause"; + let flangClass = "OmpAlignedClause"; +} +def OMPC_Copyin : Clause<"copyin"> { + let clangClass = "OMPCopyinClause"; + let flangClass = "OmpObjectList"; +} def OMPC_CopyPrivate : Clause<"copyprivate"> { let clangClass = "OMPCopyprivateClause"; - let flangClass = "OmpObjectList"; + let flangClass = "OmpObjectList"; } -def OMP_PROC_BIND_master : ClauseVal<"master",2,1> {} -def OMP_PROC_BIND_close : ClauseVal<"close",3,1> {} -def OMP_PROC_BIND_spread : ClauseVal<"spread",4,1> {} -def OMP_PROC_BIND_default : ClauseVal<"default",5,0> {} -def OMP_PROC_BIND_unknown : ClauseVal<"unknown",6,0> { let isDefault = true; } +def OMP_PROC_BIND_master : ClauseVal<"master",2,1> {} +def OMP_PROC_BIND_close : ClauseVal<"close",3,1> {} +def OMP_PROC_BIND_spread : ClauseVal<"spread",4,1> {} +def OMP_PROC_BIND_default : ClauseVal<"default",5,0> {} +def OMP_PROC_BIND_unknown : ClauseVal<"unknown",6,0> { let isDefault = true; } def OMPC_ProcBind : Clause<"proc_bind"> { let clangClass = "OMPProcBindClause"; - let flangClass = "OmpProcBindClause"; - let enumClauseValue = "ProcBindKind"; - let allowedClauseValues = [ - OMP_PROC_BIND_master, - OMP_PROC_BIND_close, - OMP_PROC_BIND_spread, - OMP_PROC_BIND_default, - OMP_PROC_BIND_unknown - ]; -} - -// static and auto are C++ keywords so need a capital to disambiguate. -def OMP_SCHEDULE_Static : ClauseVal<"Static", 2, 1> {} -def OMP_SCHEDULE_Dynamic : ClauseVal<"Dynamic", 3, 1> {} -def OMP_SCHEDULE_Guided : ClauseVal<"Guided", 4, 1> {} -def OMP_SCHEDULE_Auto : ClauseVal<"Auto", 5, 1> {} -def OMP_SCHEDULE_Runtime : ClauseVal<"Runtime", 6, 1> {} -def OMP_SCHEDULE_Default : ClauseVal<"Default", 7, 0> { let isDefault = 1; } - -def OMPC_Schedule : Clause<"schedule"> { - let clangClass = "OMPScheduleClause"; - let flangClass = "OmpScheduleClause"; - let enumClauseValue = "ScheduleKind"; - let allowedClauseValues = [ - OMP_SCHEDULE_Static, - OMP_SCHEDULE_Dynamic, - OMP_SCHEDULE_Guided, - OMP_SCHEDULE_Auto, - OMP_SCHEDULE_Runtime, - OMP_SCHEDULE_Default - ]; -} - -def OMPC_Ordered : Clause<"ordered"> { - let clangClass = "OMPOrderedClause"; - let flangClass = "ScalarIntConstantExpr"; - let isValueOptional = true; -} -def OMPC_NoWait : Clause<"nowait"> { - let clangClass = "OMPNowaitClause"; -} + let flangClass = "OmpProcBindClause"; + let enumClauseValue = "ProcBindKind"; + let allowedClauseValues = [ + OMP_PROC_BIND_master, + OMP_PROC_BIND_close, + OMP_PROC_BIND_spread, + OMP_PROC_BIND_default, + OMP_PROC_BIND_unknown + ]; +} + +// static and auto are C++ keywords so need a capital to disambiguate. +def OMP_SCHEDULE_Static : ClauseVal<"Static", 2, 1> {} +def OMP_SCHEDULE_Dynamic : ClauseVal<"Dynamic", 3, 1> {} +def OMP_SCHEDULE_Guided : ClauseVal<"Guided", 4, 1> {} +def OMP_SCHEDULE_Auto : ClauseVal<"Auto", 5, 1> {} +def OMP_SCHEDULE_Runtime : ClauseVal<"Runtime", 6, 1> {} +def OMP_SCHEDULE_Default : ClauseVal<"Default", 7, 0> { let isDefault = 1; } + +def OMPC_Schedule : Clause<"schedule"> { + let clangClass = "OMPScheduleClause"; + let flangClass = "OmpScheduleClause"; + let enumClauseValue = "ScheduleKind"; + let allowedClauseValues = [ + OMP_SCHEDULE_Static, + OMP_SCHEDULE_Dynamic, + OMP_SCHEDULE_Guided, + OMP_SCHEDULE_Auto, + OMP_SCHEDULE_Runtime, + OMP_SCHEDULE_Default + ]; +} + +def OMPC_Ordered : Clause<"ordered"> { + let clangClass = "OMPOrderedClause"; + let flangClass = "ScalarIntConstantExpr"; + let isValueOptional = true; +} +def OMPC_NoWait : Clause<"nowait"> { + let clangClass = "OMPNowaitClause"; +} def OMPC_Untied : Clause<"untied"> { let clangClass = "OMPUntiedClause"; } def OMPC_Mergeable : Clause<"mergeable"> { let clangClass = "OMPMergeableClause"; @@ -161,77 +161,77 @@ def OMPC_AcqRel : Clause<"acq_rel"> { let clangClass = "OMPAcqRelClause"; } def OMPC_Acquire : Clause<"acquire"> { let clangClass = "OMPAcquireClause"; } def OMPC_Release : Clause<"release"> { let clangClass = "OMPReleaseClause"; } def OMPC_Relaxed : Clause<"relaxed"> { let clangClass = "OMPRelaxedClause"; } -def OMPC_Depend : Clause<"depend"> { - let clangClass = "OMPDependClause"; - let flangClass = "OmpDependClause"; -} -def OMPC_Device : Clause<"device"> { - let clangClass = "OMPDeviceClause"; - let flangClass = "ScalarIntExpr"; -} +def OMPC_Depend : Clause<"depend"> { + let clangClass = "OMPDependClause"; + let flangClass = "OmpDependClause"; +} +def OMPC_Device : Clause<"device"> { + let clangClass = "OMPDeviceClause"; + let flangClass = "ScalarIntExpr"; +} def OMPC_Threads : Clause<"threads"> { let clangClass = "OMPThreadsClause"; } def OMPC_Simd : Clause<"simd"> { let clangClass = "OMPSIMDClause"; } -def OMPC_Map : Clause<"map"> { - let clangClass = "OMPMapClause"; - let flangClass = "OmpMapClause"; -} +def OMPC_Map : Clause<"map"> { + let clangClass = "OMPMapClause"; + let flangClass = "OmpMapClause"; +} def OMPC_NumTeams : Clause<"num_teams"> { let clangClass = "OMPNumTeamsClause"; - let flangClass = "ScalarIntExpr"; + let flangClass = "ScalarIntExpr"; } def OMPC_ThreadLimit : Clause<"thread_limit"> { let clangClass = "OMPThreadLimitClause"; - let flangClass = "ScalarIntExpr"; + let flangClass = "ScalarIntExpr"; } def OMPC_Priority : Clause<"priority"> { let clangClass = "OMPPriorityClause"; - let flangClass = "ScalarIntExpr"; + let flangClass = "ScalarIntExpr"; } def OMPC_GrainSize : Clause<"grainsize"> { let clangClass = "OMPGrainsizeClause"; - let flangClass = "ScalarIntExpr"; + let flangClass = "ScalarIntExpr"; } def OMPC_NoGroup : Clause<"nogroup"> { let clangClass = "OMPNogroupClause"; } def OMPC_NumTasks : Clause<"num_tasks"> { let clangClass = "OMPNumTasksClause"; - let flangClass = "ScalarIntExpr"; + let flangClass = "ScalarIntExpr"; } def OMPC_Hint : Clause<"hint"> { let clangClass = "OMPHintClause"; - let flangClass = "ConstantExpr"; + let flangClass = "ConstantExpr"; } def OMPC_DistSchedule : Clause<"dist_schedule"> { let clangClass = "OMPDistScheduleClause"; - let flangClass = "ScalarIntExpr"; - let isValueOptional = true; + let flangClass = "ScalarIntExpr"; + let isValueOptional = true; } def OMPC_DefaultMap : Clause<"defaultmap"> { let clangClass = "OMPDefaultmapClause"; - let flangClass = "OmpDefaultmapClause"; + let flangClass = "OmpDefaultmapClause"; } def OMPC_To : Clause<"to"> { let clangClass = "OMPToClause"; - let flangClass = "OmpObjectList"; -} -def OMPC_From : Clause<"from"> { - let clangClass = "OMPFromClause"; - let flangClass = "OmpObjectList"; + let flangClass = "OmpObjectList"; } +def OMPC_From : Clause<"from"> { + let clangClass = "OMPFromClause"; + let flangClass = "OmpObjectList"; +} def OMPC_UseDevicePtr : Clause<"use_device_ptr"> { let clangClass = "OMPUseDevicePtrClause"; - let flangClass = "Name"; - let isValueList = true; + let flangClass = "Name"; + let isValueList = true; } def OMPC_IsDevicePtr : Clause<"is_device_ptr"> { let clangClass = "OMPIsDevicePtrClause"; - let flangClass = "Name"; - let isValueList = true; + let flangClass = "Name"; + let isValueList = true; } def OMPC_TaskReduction : Clause<"task_reduction"> { let clangClass = "OMPTaskReductionClause"; - let flangClass = "OmpReductionClause"; + let flangClass = "OmpReductionClause"; } def OMPC_InReduction : Clause<"in_reduction"> { let clangClass = "OMPInReductionClause"; @@ -253,19 +253,19 @@ def OMPC_AtomicDefaultMemOrder : Clause<"atomic_default_mem_order"> { } def OMPC_Allocate : Clause<"allocate"> { let clangClass = "OMPAllocateClause"; - let flangClass = "OmpAllocateClause"; + let flangClass = "OmpAllocateClause"; } def OMPC_NonTemporal : Clause<"nontemporal"> { let clangClass = "OMPNontemporalClause"; } - -def OMP_ORDER_concurrent : ClauseVal<"default",2,0> { let isDefault = 1; } + +def OMP_ORDER_concurrent : ClauseVal<"default",2,0> { let isDefault = 1; } def OMPC_Order : Clause<"order"> { let clangClass = "OMPOrderClause"; - let enumClauseValue = "OrderKind"; - let allowedClauseValues = [ - OMP_ORDER_concurrent - ]; + let enumClauseValue = "OrderKind"; + let allowedClauseValues = [ + OMP_ORDER_concurrent + ]; } def OMPC_Destroy : Clause<"destroy"> { let clangClass = "OMPDestroyClause"; @@ -288,31 +288,31 @@ def OMPC_Affinity : Clause<"affinity"> { def OMPC_UseDeviceAddr : Clause<"use_device_addr"> { let clangClass = "OMPUseDeviceAddrClause"; } -def OMPC_Uniform : Clause<"uniform"> { - let flangClass = "Name"; - let isValueList = true; -} +def OMPC_Uniform : Clause<"uniform"> { + let flangClass = "Name"; + let isValueList = true; +} def OMPC_DeviceType : Clause<"device_type"> {} def OMPC_Match : Clause<"match"> {} def OMPC_Depobj : Clause<"depobj"> { let clangClass = "OMPDepobjClause"; - let isImplicit = true; + let isImplicit = true; } def OMPC_Flush : Clause<"flush"> { let clangClass = "OMPFlushClause"; - let isImplicit = true; + let isImplicit = true; } def OMPC_ThreadPrivate : Clause<"threadprivate"> { let alternativeName = "threadprivate or thread local"; - let isImplicit = true; + let isImplicit = true; } def OMPC_Unknown : Clause<"unknown"> { - let isImplicit = true; - let isDefault = true; -} -def OMPC_Link : Clause<"link"> { - let flangClass = "OmpObjectList"; + let isImplicit = true; + let isDefault = true; } +def OMPC_Link : Clause<"link"> { + let flangClass = "OmpObjectList"; +} def OMPC_Inbranch : Clause<"inbranch"> {} def OMPC_Notinbranch : Clause<"notinbranch"> {} @@ -331,7 +331,7 @@ def OMP_Parallel : Directive<"parallel"> { VersionedClause<OMPC_Allocate> ]; let allowedOnceClauses = [ - VersionedClause<OMPC_Default>, + VersionedClause<OMPC_Default>, VersionedClause<OMPC_If>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_ProcBind>, @@ -351,7 +351,7 @@ def OMP_Task : Directive<"task"> { VersionedClause<OMPC_Affinity, 50> ]; let allowedOnceClauses = [ - VersionedClause<OMPC_Default>, + VersionedClause<OMPC_Default>, VersionedClause<OMPC_If>, VersionedClause<OMPC_Final>, VersionedClause<OMPC_Priority> @@ -433,11 +433,11 @@ def OMP_Critical : Directive<"critical"> { } def OMP_TaskYield : Directive<"taskyield"> {} def OMP_Barrier : Directive<"barrier"> {} -def OMP_TaskWait : Directive<"taskwait"> { - let allowedClauses = [ - VersionedClause<OMPC_Depend, 50> - ]; -} +def OMP_TaskWait : Directive<"taskwait"> { + let allowedClauses = [ + VersionedClause<OMPC_Depend, 50> + ]; +} def OMP_TaskGroup : Directive<"taskgroup"> { let allowedClauses = [ VersionedClause<OMPC_TaskReduction>, @@ -445,7 +445,7 @@ def OMP_TaskGroup : Directive<"taskgroup"> { ]; } def OMP_Flush : Directive<"flush"> { - let allowedOnceClauses = [ + let allowedOnceClauses = [ VersionedClause<OMPC_AcqRel, 50>, VersionedClause<OMPC_Acquire, 50>, VersionedClause<OMPC_Release, 50>, @@ -467,8 +467,8 @@ def OMP_Atomic : Directive<"atomic"> { VersionedClause<OMPC_Write>, VersionedClause<OMPC_Update>, VersionedClause<OMPC_Capture>, - ]; - let allowedOnceClauses = [ + ]; + let allowedOnceClauses = [ VersionedClause<OMPC_SeqCst>, VersionedClause<OMPC_AcqRel, 50>, VersionedClause<OMPC_Acquire, 50>, @@ -538,20 +538,20 @@ def OMP_TargetData : Directive<"target data"> { } def OMP_TargetEnterData : Directive<"target enter data"> { let allowedClauses = [ - VersionedClause<OMPC_Depend> + VersionedClause<OMPC_Depend> ]; let allowedOnceClauses = [ VersionedClause<OMPC_If>, VersionedClause<OMPC_Device>, VersionedClause<OMPC_NoWait> ]; - let requiredClauses = [ - VersionedClause<OMPC_Map> - ]; + let requiredClauses = [ + VersionedClause<OMPC_Map> + ]; } def OMP_TargetExitData : Directive<"target exit data"> { let allowedClauses = [ - VersionedClause<OMPC_Depend> + VersionedClause<OMPC_Depend> ]; let allowedOnceClauses = [ VersionedClause<OMPC_Device>, @@ -843,7 +843,7 @@ def OMP_TaskLoop : Directive<"taskloop"> { VersionedClause<OMPC_Allocate> ]; let allowedOnceClauses = [ - VersionedClause<OMPC_Default>, + VersionedClause<OMPC_Default>, VersionedClause<OMPC_If>, VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_Final>, @@ -897,12 +897,12 @@ def OMP_Distribute : Directive<"distribute"> { VersionedClause<OMPC_DistSchedule> ]; } -def OMP_DeclareTarget : Directive<"declare target"> { - let allowedClauses = [ - VersionedClause<OMPC_To>, - VersionedClause<OMPC_Link> - ]; -} +def OMP_DeclareTarget : Directive<"declare target"> { + let allowedClauses = [ + VersionedClause<OMPC_To>, + VersionedClause<OMPC_Link> + ]; +} def OMP_EndDeclareTarget : Directive<"end declare target"> {} def OMP_DistributeParallelFor : Directive<"distribute parallel for"> { let allowedClauses = [ @@ -1592,9 +1592,9 @@ def OMP_Scan : Directive<"scan"> { VersionedClause<OMPC_Exclusive, 50> ]; } -def OMP_Assumes : Directive<"assumes"> {} -def OMP_BeginAssumes : Directive<"begin assumes"> {} -def OMP_EndAssumes : Directive<"end assumes"> {} +def OMP_Assumes : Directive<"assumes"> {} +def OMP_BeginAssumes : Directive<"begin assumes"> {} +def OMP_EndAssumes : Directive<"end assumes"> {} def OMP_BeginDeclareVariant : Directive<"begin declare variant"> {} def OMP_EndDeclareVariant : Directive<"end declare variant"> {} def OMP_ParallelWorkshare : Directive<"parallel workshare"> { @@ -1616,24 +1616,24 @@ def OMP_ParallelWorkshare : Directive<"parallel workshare"> { def OMP_Workshare : Directive<"workshare"> {} def OMP_EndDo : Directive<"end do"> {} def OMP_EndDoSimd : Directive<"end do simd"> {} -def OMP_EndSections : Directive<"end sections"> { - let allowedOnceClauses = [ - VersionedClause<OMPC_NoWait> - ]; -} -def OMP_EndSingle : Directive<"end single"> { - let allowedClauses = [ - VersionedClause<OMPC_CopyPrivate> - ]; - let allowedOnceClauses = [ - VersionedClause<OMPC_NoWait> - ]; -} -def OMP_EndWorkshare : Directive<"end workshare"> { - let allowedClauses = [ - VersionedClause<OMPC_NoWait> - ]; -} +def OMP_EndSections : Directive<"end sections"> { + let allowedOnceClauses = [ + VersionedClause<OMPC_NoWait> + ]; +} +def OMP_EndSingle : Directive<"end single"> { + let allowedClauses = [ + VersionedClause<OMPC_CopyPrivate> + ]; + let allowedOnceClauses = [ + VersionedClause<OMPC_NoWait> + ]; +} +def OMP_EndWorkshare : Directive<"end workshare"> { + let allowedClauses = [ + VersionedClause<OMPC_NoWait> + ]; +} def OMP_Unknown : Directive<"unknown"> { - let isDefault = true; + let isDefault = true; } diff --git a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPConstants.h b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPConstants.h index 953321d47c..197ddf0ed1 100644 --- a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPConstants.h +++ b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPConstants.h @@ -23,7 +23,7 @@ #include "llvm/ADT/BitmaskEnum.h" -#include "llvm/ADT/StringRef.h" +#include "llvm/ADT/StringRef.h" #include "llvm/Frontend/OpenMP/OMP.h.inc" namespace llvm { @@ -49,12 +49,12 @@ enum class InternalControlVar { #include "llvm/Frontend/OpenMP/OMPKinds.def" enum class ICVInitValue { -#define ICV_INIT_VALUE(Enum, Name) Enum, +#define ICV_INIT_VALUE(Enum, Name) Enum, #include "llvm/Frontend/OpenMP/OMPKinds.def" }; -#define ICV_INIT_VALUE(Enum, Name) \ - constexpr auto Enum = omp::ICVInitValue::Enum; +#define ICV_INIT_VALUE(Enum, Name) \ + constexpr auto Enum = omp::ICVInitValue::Enum; #include "llvm/Frontend/OpenMP/OMPKinds.def" /// IDs for all omp runtime library (RTL) functions. @@ -87,33 +87,33 @@ enum class IdentFlag { #define OMP_IDENT_FLAG(Enum, ...) constexpr auto Enum = omp::IdentFlag::Enum; #include "llvm/Frontend/OpenMP/OMPKinds.def" -/// Helper to describe assume clauses. -struct AssumptionClauseMappingInfo { - /// The identifier describing the (beginning of the) clause. - llvm::StringLiteral Identifier; - /// Flag to determine if the identifier is a full name or the start of a name. - bool StartsWith; - /// Flag to determine if a directive lists follows. - bool HasDirectiveList; - /// Flag to determine if an expression follows. - bool HasExpression; -}; - -/// All known assume clauses. -static constexpr AssumptionClauseMappingInfo AssumptionClauseMappings[] = { -#define OMP_ASSUME_CLAUSE(Identifier, StartsWith, HasDirectiveList, \ - HasExpression) \ - {Identifier, StartsWith, HasDirectiveList, HasExpression}, -#include "llvm/Frontend/OpenMP/OMPKinds.def" -}; - -inline std::string getAllAssumeClauseOptions() { - std::string S; - for (const AssumptionClauseMappingInfo &ACMI : AssumptionClauseMappings) - S += (S.empty() ? "'" : "', '") + ACMI.Identifier.str(); - return S + "'"; -} - +/// Helper to describe assume clauses. +struct AssumptionClauseMappingInfo { + /// The identifier describing the (beginning of the) clause. + llvm::StringLiteral Identifier; + /// Flag to determine if the identifier is a full name or the start of a name. + bool StartsWith; + /// Flag to determine if a directive lists follows. + bool HasDirectiveList; + /// Flag to determine if an expression follows. + bool HasExpression; +}; + +/// All known assume clauses. +static constexpr AssumptionClauseMappingInfo AssumptionClauseMappings[] = { +#define OMP_ASSUME_CLAUSE(Identifier, StartsWith, HasDirectiveList, \ + HasExpression) \ + {Identifier, StartsWith, HasDirectiveList, HasExpression}, +#include "llvm/Frontend/OpenMP/OMPKinds.def" +}; + +inline std::string getAllAssumeClauseOptions() { + std::string S; + for (const AssumptionClauseMappingInfo &ACMI : AssumptionClauseMappings) + S += (S.empty() ? "'" : "', '") + ACMI.Identifier.str(); + return S + "'"; +} + } // end namespace omp } // end namespace llvm diff --git a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPContext.h b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPContext.h index 4031468da9..a707fc7d72 100644 --- a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPContext.h +++ b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPContext.h @@ -77,20 +77,20 @@ TraitSelector getOpenMPContextTraitSelectorForProperty(TraitProperty Property); /// Return a textual representation of the trait selector \p Kind. StringRef getOpenMPContextTraitSelectorName(TraitSelector Kind); -/// Parse \p Str and return the trait property it matches in the set \p Set and -/// selector \p Selector or TraitProperty::invalid. -TraitProperty getOpenMPContextTraitPropertyKind(TraitSet Set, - TraitSelector Selector, - StringRef Str); +/// Parse \p Str and return the trait property it matches in the set \p Set and +/// selector \p Selector or TraitProperty::invalid. +TraitProperty getOpenMPContextTraitPropertyKind(TraitSet Set, + TraitSelector Selector, + StringRef Str); /// Return the trait property for a singleton selector \p Selector. TraitProperty getOpenMPContextTraitPropertyForSelector(TraitSelector Selector); -/// Return a textual representation of the trait property \p Kind, which might -/// be the raw string we parsed (\p RawString) if we do not translate the -/// property into a (distinct) enum. -StringRef getOpenMPContextTraitPropertyName(TraitProperty Kind, - StringRef RawString); +/// Return a textual representation of the trait property \p Kind, which might +/// be the raw string we parsed (\p RawString) if we do not translate the +/// property into a (distinct) enum. +StringRef getOpenMPContextTraitPropertyName(TraitProperty Kind, + StringRef RawString); /// Return a textual representation of the trait property \p Kind with selector /// and set name included. @@ -124,36 +124,36 @@ bool isValidTraitPropertyForTraitSetAndSelector(TraitProperty Property, /// scored (via the ScoresMap). In addition, the required consturct nesting is /// decribed as well. struct VariantMatchInfo { - /// Add the trait \p Property to the required trait set. \p RawString is the - /// string we parsed and derived \p Property from. If \p Score is not null, it - /// recorded as well. If \p Property is in the `construct` set it is recorded - /// in-order in the ConstructTraits as well. - void addTrait(TraitProperty Property, StringRef RawString, - APInt *Score = nullptr) { - addTrait(getOpenMPContextTraitSetForProperty(Property), Property, RawString, - Score); + /// Add the trait \p Property to the required trait set. \p RawString is the + /// string we parsed and derived \p Property from. If \p Score is not null, it + /// recorded as well. If \p Property is in the `construct` set it is recorded + /// in-order in the ConstructTraits as well. + void addTrait(TraitProperty Property, StringRef RawString, + APInt *Score = nullptr) { + addTrait(getOpenMPContextTraitSetForProperty(Property), Property, RawString, + Score); } /// Add the trait \p Property which is in set \p Set to the required trait - /// set. \p RawString is the string we parsed and derived \p Property from. If - /// \p Score is not null, it recorded as well. If \p Set is the `construct` - /// set it is recorded in-order in the ConstructTraits as well. - void addTrait(TraitSet Set, TraitProperty Property, StringRef RawString, - APInt *Score = nullptr) { + /// set. \p RawString is the string we parsed and derived \p Property from. If + /// \p Score is not null, it recorded as well. If \p Set is the `construct` + /// set it is recorded in-order in the ConstructTraits as well. + void addTrait(TraitSet Set, TraitProperty Property, StringRef RawString, + APInt *Score = nullptr) { if (Score) ScoreMap[Property] = *Score; - - // Special handling for `device={isa(...)}` as we do not match the enum but - // the raw string. - if (Property == TraitProperty::device_isa___ANY) - ISATraits.push_back(RawString); - + + // Special handling for `device={isa(...)}` as we do not match the enum but + // the raw string. + if (Property == TraitProperty::device_isa___ANY) + ISATraits.push_back(RawString); + RequiredTraits.set(unsigned(Property)); if (Set == TraitSet::construct) ConstructTraits.push_back(Property); } BitVector RequiredTraits = BitVector(unsigned(TraitProperty::Last) + 1); - SmallVector<StringRef, 8> ISATraits; + SmallVector<StringRef, 8> ISATraits; SmallVector<TraitProperty, 8> ConstructTraits; SmallDenseMap<TraitProperty, APInt> ScoreMap; }; @@ -163,7 +163,7 @@ struct VariantMatchInfo { /// in OpenMP constructs at the location. struct OMPContext { OMPContext(bool IsDeviceCompilation, Triple TargetTriple); - virtual ~OMPContext() = default; + virtual ~OMPContext() = default; void addTrait(TraitProperty Property) { addTrait(getOpenMPContextTraitSetForProperty(Property), Property); @@ -174,11 +174,11 @@ struct OMPContext { ConstructTraits.push_back(Property); } - /// Hook for users to check if an ISA trait matches. The trait is described as - /// the string that got parsed and it depends on the target and context if - /// this matches or not. - virtual bool matchesISATrait(StringRef) const { return false; } - + /// Hook for users to check if an ISA trait matches. The trait is described as + /// the string that got parsed and it depends on the target and context if + /// this matches or not. + virtual bool matchesISATrait(StringRef) const { return false; } + BitVector ActiveTraits = BitVector(unsigned(TraitProperty::Last) + 1); SmallVector<TraitProperty, 8> ConstructTraits; }; diff --git a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPGridValues.h b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPGridValues.h index da0c4d1f3f..4662312b4d 100644 --- a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPGridValues.h +++ b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPGridValues.h @@ -7,9 +7,9 @@ //====--- OMPGridValues.h - Language-specific address spaces --*- C++ -*-====// // -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// @@ -35,30 +35,30 @@ namespace omp { /// use the new array name. /// /// Example usage in clang: -/// const unsigned slot_size = -/// ctx.GetTargetInfo().getGridValue(llvm::omp::GVIDX::GV_Warp_Size); +/// const unsigned slot_size = +/// ctx.GetTargetInfo().getGridValue(llvm::omp::GVIDX::GV_Warp_Size); /// /// Example usage in libomptarget/deviceRTLs: -/// #include "llvm/Frontend/OpenMP/OMPGridValues.h" +/// #include "llvm/Frontend/OpenMP/OMPGridValues.h" /// #ifdef __AMDGPU__ /// #define GRIDVAL AMDGPUGpuGridValues /// #else /// #define GRIDVAL NVPTXGpuGridValues /// #endif /// ... Then use this reference for GV_Warp_Size in the deviceRTL source. -/// llvm::omp::GRIDVAL[llvm::omp::GVIDX::GV_Warp_Size] +/// llvm::omp::GRIDVAL[llvm::omp::GVIDX::GV_Warp_Size] /// /// Example usage in libomptarget hsa plugin: -/// #include "llvm/Frontend/OpenMP/OMPGridValues.h" +/// #include "llvm/Frontend/OpenMP/OMPGridValues.h" /// #define GRIDVAL AMDGPUGpuGridValues /// ... Then use this reference to access GV_Warp_Size in the hsa plugin. -/// llvm::omp::GRIDVAL[llvm::omp::GVIDX::GV_Warp_Size] +/// llvm::omp::GRIDVAL[llvm::omp::GVIDX::GV_Warp_Size] /// /// Example usage in libomptarget cuda plugin: -/// #include "llvm/Frontend/OpenMP/OMPGridValues.h" +/// #include "llvm/Frontend/OpenMP/OMPGridValues.h" /// #define GRIDVAL NVPTXGpuGridValues /// ... Then use this reference to access GV_Warp_Size in the cuda plugin. -/// llvm::omp::GRIDVAL[llvm::omp::GVIDX::GV_Warp_Size] +/// llvm::omp::GRIDVAL[llvm::omp::GVIDX::GV_Warp_Size] /// enum GVIDX { /// The maximum number of workers in a kernel. diff --git a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPIRBuilder.h b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPIRBuilder.h index 612e362800..8157864835 100644 --- a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPIRBuilder.h +++ b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPIRBuilder.h @@ -25,10 +25,10 @@ #include "llvm/IR/DebugLoc.h" #include "llvm/IR/IRBuilder.h" #include "llvm/Support/Allocator.h" -#include <forward_list> +#include <forward_list> namespace llvm { -class CanonicalLoopInfo; +class CanonicalLoopInfo; /// An interface to create LLVM-IR for OpenMP directives. /// @@ -45,10 +45,10 @@ public: void initialize(); /// Finalize the underlying module, e.g., by outlining regions. - /// \param AllowExtractorSinking Flag to include sinking instructions, - /// emitted by CodeExtractor, in the - /// outlined region. Default is false. - void finalize(bool AllowExtractorSinking = false); + /// \param AllowExtractorSinking Flag to include sinking instructions, + /// emitted by CodeExtractor, in the + /// outlined region. Default is false. + void finalize(bool AllowExtractorSinking = false); /// Add attributes known for \p FnID to \p Fn. void addAttributes(omp::RuntimeFunction FnID, Function &Fn); @@ -68,7 +68,7 @@ public: struct FinalizationInfo { /// The finalization callback provided by the last in-flight invocation of - /// createXXXX for the directive of kind DK. + /// createXXXX for the directive of kind DK. FinalizeCallbackTy FiniCB; /// The directive kind of the innermost directive that has an associated @@ -108,17 +108,17 @@ public: function_ref<void(InsertPointTy AllocaIP, InsertPointTy CodeGenIP, BasicBlock &ContinuationBB)>; - /// Callback type for loop body code generation. - /// - /// \param CodeGenIP is the insertion point where the loop's body code must be - /// placed. This will be a dedicated BasicBlock with a - /// conditional branch from the loop condition check and - /// terminated with an unconditional branch to the loop - /// latch. - /// \param IndVar is the induction variable usable at the insertion point. - using LoopBodyGenCallbackTy = - function_ref<void(InsertPointTy CodeGenIP, Value *IndVar)>; - + /// Callback type for loop body code generation. + /// + /// \param CodeGenIP is the insertion point where the loop's body code must be + /// placed. This will be a dedicated BasicBlock with a + /// conditional branch from the loop condition check and + /// terminated with an unconditional branch to the loop + /// latch. + /// \param IndVar is the induction variable usable at the insertion point. + using LoopBodyGenCallbackTy = + function_ref<void(InsertPointTy CodeGenIP, Value *IndVar)>; + /// Callback type for variable privatization (think copy & default /// constructor). /// @@ -126,20 +126,20 @@ public: /// should be placed. /// \param CodeGenIP is the insertion point at which the privatization code /// should be placed. - /// \param Original The value being copied/created, should not be used in the - /// generated IR. - /// \param Inner The equivalent of \p Original that should be used in the - /// generated IR; this is equal to \p Original if the value is - /// a pointer and can thus be passed directly, otherwise it is - /// an equivalent but different value. + /// \param Original The value being copied/created, should not be used in the + /// generated IR. + /// \param Inner The equivalent of \p Original that should be used in the + /// generated IR; this is equal to \p Original if the value is + /// a pointer and can thus be passed directly, otherwise it is + /// an equivalent but different value. /// \param ReplVal The replacement value, thus a copy or new created version - /// of \p Inner. + /// of \p Inner. /// /// \returns The new insertion point where code generation continues and - /// \p ReplVal the replacement value. + /// \p ReplVal the replacement value. using PrivatizeCallbackTy = function_ref<InsertPointTy( - InsertPointTy AllocaIP, InsertPointTy CodeGenIP, Value &Original, - Value &Inner, Value *&ReplVal)>; + InsertPointTy AllocaIP, InsertPointTy CodeGenIP, Value &Original, + Value &Inner, Value *&ReplVal)>; /// Description of a LLVM-IR insertion point (IP) and a debug/source location /// (filename, line, column, ...). @@ -167,7 +167,7 @@ public: /// should be checked and acted upon. /// /// \returns The insertion point after the barrier. - InsertPointTy createBarrier(const LocationDescription &Loc, omp::Directive DK, + InsertPointTy createBarrier(const LocationDescription &Loc, omp::Directive DK, bool ForceSimpleCall = false, bool CheckCancelFlag = true); @@ -178,13 +178,13 @@ public: /// \param CanceledDirective The kind of directive that is cancled. /// /// \returns The insertion point after the barrier. - InsertPointTy createCancel(const LocationDescription &Loc, Value *IfCondition, + InsertPointTy createCancel(const LocationDescription &Loc, Value *IfCondition, omp::Directive CanceledDirective); /// Generator for '#omp parallel' /// /// \param Loc The insert and source location description. - /// \param AllocaIP The insertion points to be used for alloca instructions. + /// \param AllocaIP The insertion points to be used for alloca instructions. /// \param BodyGenCB Callback that will generate the region code. /// \param PrivCB Callback to copy a given variable (think copy constructor). /// \param FiniCB Callback to finalize variable copies. @@ -195,179 +195,179 @@ public: /// /// \returns The insertion position *after* the parallel. IRBuilder<>::InsertPoint - createParallel(const LocationDescription &Loc, InsertPointTy AllocaIP, - BodyGenCallbackTy BodyGenCB, PrivatizeCallbackTy PrivCB, - FinalizeCallbackTy FiniCB, Value *IfCondition, - Value *NumThreads, omp::ProcBindKind ProcBind, - bool IsCancellable); - - /// Generator for the control flow structure of an OpenMP canonical loop. - /// - /// This generator operates on the logical iteration space of the loop, i.e. - /// the caller only has to provide a loop trip count of the loop as defined by - /// base language semantics. The trip count is interpreted as an unsigned - /// integer. The induction variable passed to \p BodyGenCB will be of the same - /// type and run from 0 to \p TripCount - 1. It is up to the callback to - /// convert the logical iteration variable to the loop counter variable in the - /// loop body. - /// - /// \param Loc The insert and source location description. The insert - /// location can be between two instructions or the end of a - /// degenerate block (e.g. a BB under construction). - /// \param BodyGenCB Callback that will generate the loop body code. - /// \param TripCount Number of iterations the loop body is executed. - /// \param Name Base name used to derive BB and instruction names. - /// - /// \returns An object representing the created control flow structure which - /// can be used for loop-associated directives. - CanonicalLoopInfo *createCanonicalLoop(const LocationDescription &Loc, - LoopBodyGenCallbackTy BodyGenCB, - Value *TripCount, - const Twine &Name = "loop"); - - /// Generator for the control flow structure of an OpenMP canonical loop. - /// - /// Instead of a logical iteration space, this allows specifying user-defined - /// loop counter values using increment, upper- and lower bounds. To - /// disambiguate the terminology when counting downwards, instead of lower - /// bounds we use \p Start for the loop counter value in the first body - /// iteration. - /// - /// Consider the following limitations: - /// - /// * A loop counter space over all integer values of its bit-width cannot be - /// represented. E.g using uint8_t, its loop trip count of 256 cannot be - /// stored into an 8 bit integer): - /// - /// DO I = 0, 255, 1 - /// - /// * Unsigned wrapping is only supported when wrapping only "once"; E.g. - /// effectively counting downwards: - /// - /// for (uint8_t i = 100u; i > 0; i += 127u) - /// - /// - /// TODO: May need to add additional parameters to represent: - /// - /// * Allow representing downcounting with unsigned integers. - /// - /// * Sign of the step and the comparison operator might disagree: - /// - /// for (int i = 0; i < 42; --i) - /// - // - /// \param Loc The insert and source location description. - /// \param BodyGenCB Callback that will generate the loop body code. - /// \param Start Value of the loop counter for the first iterations. - /// \param Stop Loop counter values past this will stop the the - /// iterations. - /// \param Step Loop counter increment after each iteration; negative - /// means counting down. \param IsSigned Whether Start, Stop - /// and Stop are signed integers. - /// \param InclusiveStop Whether \p Stop itself is a valid value for the loop - /// counter. - /// \param ComputeIP Insertion point for instructions computing the trip - /// count. Can be used to ensure the trip count is available - /// at the outermost loop of a loop nest. If not set, - /// defaults to the preheader of the generated loop. - /// \param Name Base name used to derive BB and instruction names. - /// - /// \returns An object representing the created control flow structure which - /// can be used for loop-associated directives. - CanonicalLoopInfo *createCanonicalLoop(const LocationDescription &Loc, - LoopBodyGenCallbackTy BodyGenCB, - Value *Start, Value *Stop, Value *Step, - bool IsSigned, bool InclusiveStop, - InsertPointTy ComputeIP = {}, - const Twine &Name = "loop"); - - /// Modifies the canonical loop to be a statically-scheduled workshare loop. - /// - /// This takes a \p LoopInfo representing a canonical loop, such as the one - /// created by \p createCanonicalLoop and emits additional instructions to - /// turn it into a workshare loop. In particular, it calls to an OpenMP - /// runtime function in the preheader to obtain the loop bounds to be used in - /// the current thread, updates the relevant instructions in the canonical - /// loop and calls to an OpenMP runtime finalization function after the loop. - /// - /// \param Loc The source location description, the insertion location - /// is not used. - /// \param CLI A descriptor of the canonical loop to workshare. - /// \param AllocaIP An insertion point for Alloca instructions usable in the - /// preheader of the loop. - /// \param NeedsBarrier Indicates whether a barrier must be insterted after - /// the loop. - /// \param Chunk The size of loop chunk considered as a unit when - /// scheduling. If \p nullptr, defaults to 1. - /// - /// \returns Updated CanonicalLoopInfo. - CanonicalLoopInfo *createStaticWorkshareLoop(const LocationDescription &Loc, - CanonicalLoopInfo *CLI, - InsertPointTy AllocaIP, - bool NeedsBarrier, - Value *Chunk = nullptr); - - /// Tile a loop nest. - /// - /// Tiles the loops of \p Loops by the tile sizes in \p TileSizes. Loops in - /// \p/ Loops must be perfectly nested, from outermost to innermost loop - /// (i.e. Loops.front() is the outermost loop). The trip count llvm::Value - /// of every loop and every tile sizes must be usable in the outermost - /// loop's preheader. This implies that the loop nest is rectangular. - /// - /// Example: - /// \code - /// for (int i = 0; i < 15; ++i) // Canonical loop "i" - /// for (int j = 0; j < 14; ++j) // Canonical loop "j" - /// body(i, j); - /// \endcode - /// - /// After tiling with Loops={i,j} and TileSizes={5,7}, the loop is changed to - /// \code - /// for (int i1 = 0; i1 < 3; ++i1) - /// for (int j1 = 0; j1 < 2; ++j1) - /// for (int i2 = 0; i2 < 5; ++i2) - /// for (int j2 = 0; j2 < 7; ++j2) - /// body(i1*3+i2, j1*3+j2); - /// \endcode - /// - /// The returned vector are the loops {i1,j1,i2,j2}. The loops i1 and j1 are - /// referred to the floor, and the loops i2 and j2 are the tiles. Tiling also - /// handles non-constant trip counts, non-constant tile sizes and trip counts - /// that are not multiples of the tile size. In the latter case the tile loop - /// of the last floor-loop iteration will have fewer iterations than specified - /// as its tile size. - /// - /// - /// @param DL Debug location for instructions added by tiling, for - /// instance the floor- and tile trip count computation. - /// @param Loops Loops to tile. The CanonicalLoopInfo objects are - /// invalidated by this method, i.e. should not used after - /// tiling. - /// @param TileSizes For each loop in \p Loops, the tile size for that - /// dimensions. - /// - /// \returns A list of generated loops. Contains twice as many loops as the - /// input loop nest; the first half are the floor loops and the - /// second half are the tile loops. - std::vector<CanonicalLoopInfo *> - tileLoops(DebugLoc DL, ArrayRef<CanonicalLoopInfo *> Loops, - ArrayRef<Value *> TileSizes); - + createParallel(const LocationDescription &Loc, InsertPointTy AllocaIP, + BodyGenCallbackTy BodyGenCB, PrivatizeCallbackTy PrivCB, + FinalizeCallbackTy FiniCB, Value *IfCondition, + Value *NumThreads, omp::ProcBindKind ProcBind, + bool IsCancellable); + + /// Generator for the control flow structure of an OpenMP canonical loop. + /// + /// This generator operates on the logical iteration space of the loop, i.e. + /// the caller only has to provide a loop trip count of the loop as defined by + /// base language semantics. The trip count is interpreted as an unsigned + /// integer. The induction variable passed to \p BodyGenCB will be of the same + /// type and run from 0 to \p TripCount - 1. It is up to the callback to + /// convert the logical iteration variable to the loop counter variable in the + /// loop body. + /// + /// \param Loc The insert and source location description. The insert + /// location can be between two instructions or the end of a + /// degenerate block (e.g. a BB under construction). + /// \param BodyGenCB Callback that will generate the loop body code. + /// \param TripCount Number of iterations the loop body is executed. + /// \param Name Base name used to derive BB and instruction names. + /// + /// \returns An object representing the created control flow structure which + /// can be used for loop-associated directives. + CanonicalLoopInfo *createCanonicalLoop(const LocationDescription &Loc, + LoopBodyGenCallbackTy BodyGenCB, + Value *TripCount, + const Twine &Name = "loop"); + + /// Generator for the control flow structure of an OpenMP canonical loop. + /// + /// Instead of a logical iteration space, this allows specifying user-defined + /// loop counter values using increment, upper- and lower bounds. To + /// disambiguate the terminology when counting downwards, instead of lower + /// bounds we use \p Start for the loop counter value in the first body + /// iteration. + /// + /// Consider the following limitations: + /// + /// * A loop counter space over all integer values of its bit-width cannot be + /// represented. E.g using uint8_t, its loop trip count of 256 cannot be + /// stored into an 8 bit integer): + /// + /// DO I = 0, 255, 1 + /// + /// * Unsigned wrapping is only supported when wrapping only "once"; E.g. + /// effectively counting downwards: + /// + /// for (uint8_t i = 100u; i > 0; i += 127u) + /// + /// + /// TODO: May need to add additional parameters to represent: + /// + /// * Allow representing downcounting with unsigned integers. + /// + /// * Sign of the step and the comparison operator might disagree: + /// + /// for (int i = 0; i < 42; --i) + /// + // + /// \param Loc The insert and source location description. + /// \param BodyGenCB Callback that will generate the loop body code. + /// \param Start Value of the loop counter for the first iterations. + /// \param Stop Loop counter values past this will stop the the + /// iterations. + /// \param Step Loop counter increment after each iteration; negative + /// means counting down. \param IsSigned Whether Start, Stop + /// and Stop are signed integers. + /// \param InclusiveStop Whether \p Stop itself is a valid value for the loop + /// counter. + /// \param ComputeIP Insertion point for instructions computing the trip + /// count. Can be used to ensure the trip count is available + /// at the outermost loop of a loop nest. If not set, + /// defaults to the preheader of the generated loop. + /// \param Name Base name used to derive BB and instruction names. + /// + /// \returns An object representing the created control flow structure which + /// can be used for loop-associated directives. + CanonicalLoopInfo *createCanonicalLoop(const LocationDescription &Loc, + LoopBodyGenCallbackTy BodyGenCB, + Value *Start, Value *Stop, Value *Step, + bool IsSigned, bool InclusiveStop, + InsertPointTy ComputeIP = {}, + const Twine &Name = "loop"); + + /// Modifies the canonical loop to be a statically-scheduled workshare loop. + /// + /// This takes a \p LoopInfo representing a canonical loop, such as the one + /// created by \p createCanonicalLoop and emits additional instructions to + /// turn it into a workshare loop. In particular, it calls to an OpenMP + /// runtime function in the preheader to obtain the loop bounds to be used in + /// the current thread, updates the relevant instructions in the canonical + /// loop and calls to an OpenMP runtime finalization function after the loop. + /// + /// \param Loc The source location description, the insertion location + /// is not used. + /// \param CLI A descriptor of the canonical loop to workshare. + /// \param AllocaIP An insertion point for Alloca instructions usable in the + /// preheader of the loop. + /// \param NeedsBarrier Indicates whether a barrier must be insterted after + /// the loop. + /// \param Chunk The size of loop chunk considered as a unit when + /// scheduling. If \p nullptr, defaults to 1. + /// + /// \returns Updated CanonicalLoopInfo. + CanonicalLoopInfo *createStaticWorkshareLoop(const LocationDescription &Loc, + CanonicalLoopInfo *CLI, + InsertPointTy AllocaIP, + bool NeedsBarrier, + Value *Chunk = nullptr); + + /// Tile a loop nest. + /// + /// Tiles the loops of \p Loops by the tile sizes in \p TileSizes. Loops in + /// \p/ Loops must be perfectly nested, from outermost to innermost loop + /// (i.e. Loops.front() is the outermost loop). The trip count llvm::Value + /// of every loop and every tile sizes must be usable in the outermost + /// loop's preheader. This implies that the loop nest is rectangular. + /// + /// Example: + /// \code + /// for (int i = 0; i < 15; ++i) // Canonical loop "i" + /// for (int j = 0; j < 14; ++j) // Canonical loop "j" + /// body(i, j); + /// \endcode + /// + /// After tiling with Loops={i,j} and TileSizes={5,7}, the loop is changed to + /// \code + /// for (int i1 = 0; i1 < 3; ++i1) + /// for (int j1 = 0; j1 < 2; ++j1) + /// for (int i2 = 0; i2 < 5; ++i2) + /// for (int j2 = 0; j2 < 7; ++j2) + /// body(i1*3+i2, j1*3+j2); + /// \endcode + /// + /// The returned vector are the loops {i1,j1,i2,j2}. The loops i1 and j1 are + /// referred to the floor, and the loops i2 and j2 are the tiles. Tiling also + /// handles non-constant trip counts, non-constant tile sizes and trip counts + /// that are not multiples of the tile size. In the latter case the tile loop + /// of the last floor-loop iteration will have fewer iterations than specified + /// as its tile size. + /// + /// + /// @param DL Debug location for instructions added by tiling, for + /// instance the floor- and tile trip count computation. + /// @param Loops Loops to tile. The CanonicalLoopInfo objects are + /// invalidated by this method, i.e. should not used after + /// tiling. + /// @param TileSizes For each loop in \p Loops, the tile size for that + /// dimensions. + /// + /// \returns A list of generated loops. Contains twice as many loops as the + /// input loop nest; the first half are the floor loops and the + /// second half are the tile loops. + std::vector<CanonicalLoopInfo *> + tileLoops(DebugLoc DL, ArrayRef<CanonicalLoopInfo *> Loops, + ArrayRef<Value *> TileSizes); + /// Generator for '#omp flush' /// /// \param Loc The location where the flush directive was encountered - void createFlush(const LocationDescription &Loc); + void createFlush(const LocationDescription &Loc); /// Generator for '#omp taskwait' /// /// \param Loc The location where the taskwait directive was encountered. - void createTaskwait(const LocationDescription &Loc); + void createTaskwait(const LocationDescription &Loc); /// Generator for '#omp taskyield' /// /// \param Loc The location where the taskyield directive was encountered. - void createTaskyield(const LocationDescription &Loc); + void createTaskyield(const LocationDescription &Loc); ///} @@ -407,9 +407,9 @@ public: omp::IdentFlag Flags = omp::IdentFlag(0), unsigned Reserve2Flags = 0); - // Get the type corresponding to __kmpc_impl_lanemask_t from the deviceRTL - Type *getLanemaskType(); - + // Get the type corresponding to __kmpc_impl_lanemask_t from the deviceRTL + Type *getLanemaskType(); + /// Generate control flow and cleanup for cancellation. /// /// \param CancelFlag Flag indicating if the cancellation is performed. @@ -491,10 +491,10 @@ public: /// Collection of regions that need to be outlined during finalization. SmallVector<OutlineInfo, 16> OutlineInfos; - /// Collection of owned canonical loop objects that eventually need to be - /// free'd. - std::forward_list<CanonicalLoopInfo> LoopInfos; - + /// Collection of owned canonical loop objects that eventually need to be + /// free'd. + std::forward_list<CanonicalLoopInfo> LoopInfos; + /// Add a new region that will be outlined later. void addOutlineInfo(OutlineInfo &&OI) { OutlineInfos.emplace_back(OI); } @@ -506,32 +506,32 @@ public: StringMap<AssertingVH<Constant>, BumpPtrAllocator> InternalVars; public: - /// Generator for __kmpc_copyprivate - /// - /// \param Loc The source location description. - /// \param BufSize Number of elements in the buffer. - /// \param CpyBuf List of pointers to data to be copied. - /// \param CpyFn function to call for copying data. - /// \param DidIt flag variable; 1 for 'single' thread, 0 otherwise. - /// - /// \return The insertion position *after* the CopyPrivate call. - - InsertPointTy createCopyPrivate(const LocationDescription &Loc, - llvm::Value *BufSize, llvm::Value *CpyBuf, - llvm::Value *CpyFn, llvm::Value *DidIt); - - /// Generator for '#omp single' - /// - /// \param Loc The source location description. - /// \param BodyGenCB Callback that will generate the region code. - /// \param FiniCB Callback to finalize variable copies. - /// \param DidIt Local variable used as a flag to indicate 'single' thread - /// - /// \returns The insertion position *after* the single call. - InsertPointTy createSingle(const LocationDescription &Loc, - BodyGenCallbackTy BodyGenCB, - FinalizeCallbackTy FiniCB, llvm::Value *DidIt); - + /// Generator for __kmpc_copyprivate + /// + /// \param Loc The source location description. + /// \param BufSize Number of elements in the buffer. + /// \param CpyBuf List of pointers to data to be copied. + /// \param CpyFn function to call for copying data. + /// \param DidIt flag variable; 1 for 'single' thread, 0 otherwise. + /// + /// \return The insertion position *after* the CopyPrivate call. + + InsertPointTy createCopyPrivate(const LocationDescription &Loc, + llvm::Value *BufSize, llvm::Value *CpyBuf, + llvm::Value *CpyFn, llvm::Value *DidIt); + + /// Generator for '#omp single' + /// + /// \param Loc The source location description. + /// \param BodyGenCB Callback that will generate the region code. + /// \param FiniCB Callback to finalize variable copies. + /// \param DidIt Local variable used as a flag to indicate 'single' thread + /// + /// \returns The insertion position *after* the single call. + InsertPointTy createSingle(const LocationDescription &Loc, + BodyGenCallbackTy BodyGenCB, + FinalizeCallbackTy FiniCB, llvm::Value *DidIt); + /// Generator for '#omp master' /// /// \param Loc The insert and source location description. @@ -539,7 +539,7 @@ public: /// \param FiniCB Callback to finalize variable copies. /// /// \returns The insertion position *after* the master. - InsertPointTy createMaster(const LocationDescription &Loc, + InsertPointTy createMaster(const LocationDescription &Loc, BodyGenCallbackTy BodyGenCB, FinalizeCallbackTy FiniCB); @@ -552,7 +552,7 @@ public: /// \param HintInst Hint Instruction for hint clause associated with critical /// /// \returns The insertion position *after* the master. - InsertPointTy createCritical(const LocationDescription &Loc, + InsertPointTy createCritical(const LocationDescription &Loc, BodyGenCallbackTy BodyGenCB, FinalizeCallbackTy FiniCB, StringRef CriticalName, Value *HintInst); @@ -569,7 +569,7 @@ public: // and copy.in.end block /// /// \returns The insertion point where copying operation to be emitted. - InsertPointTy createCopyinClauseBlocks(InsertPointTy IP, Value *MasterAddr, + InsertPointTy createCopyinClauseBlocks(InsertPointTy IP, Value *MasterAddr, Value *PrivateAddr, llvm::IntegerType *IntPtrTy, bool BranchtoEnd = true); @@ -582,7 +582,7 @@ public: /// \param Name Name of call Instruction for OMP_alloc /// /// \returns CallInst to the OMP_Alloc call - CallInst *createOMPAlloc(const LocationDescription &Loc, Value *Size, + CallInst *createOMPAlloc(const LocationDescription &Loc, Value *Size, Value *Allocator, std::string Name = ""); /// Create a runtime call for kmpc_free @@ -593,7 +593,7 @@ public: /// \param Name Name of call Instruction for OMP_Free /// /// \returns CallInst to the OMP_Free call - CallInst *createOMPFree(const LocationDescription &Loc, Value *Addr, + CallInst *createOMPFree(const LocationDescription &Loc, Value *Addr, Value *Allocator, std::string Name = ""); /// Create a runtime call for kmpc_threadprivate_cached @@ -604,7 +604,7 @@ public: /// \param Name Name of call Instruction for callinst /// /// \returns CallInst to the thread private cache call. - CallInst *createCachedThreadPrivate(const LocationDescription &Loc, + CallInst *createCachedThreadPrivate(const LocationDescription &Loc, llvm::Value *Pointer, llvm::ConstantInt *Size, const llvm::Twine &Name = Twine("")); @@ -712,157 +712,157 @@ private: /// \param CriticalName Name of the critical region. /// Value *getOMPCriticalRegionLock(StringRef CriticalName); - - /// Create the control flow structure of a canonical OpenMP loop. - /// - /// The emitted loop will be disconnected, i.e. no edge to the loop's - /// preheader and no terminator in the AfterBB. The OpenMPIRBuilder's - /// IRBuilder location is not preserved. - /// - /// \param DL DebugLoc used for the instructions in the skeleton. - /// \param TripCount Value to be used for the trip count. - /// \param F Function in which to insert the BasicBlocks. - /// \param PreInsertBefore Where to insert BBs that execute before the body, - /// typically the body itself. - /// \param PostInsertBefore Where to insert BBs that execute after the body. - /// \param Name Base name used to derive BB - /// and instruction names. - /// - /// \returns The CanonicalLoopInfo that represents the emitted loop. - CanonicalLoopInfo *createLoopSkeleton(DebugLoc DL, Value *TripCount, - Function *F, - BasicBlock *PreInsertBefore, - BasicBlock *PostInsertBefore, - const Twine &Name = {}); -}; - -/// Class to represented the control flow structure of an OpenMP canonical loop. -/// -/// The control-flow structure is standardized for easy consumption by -/// directives associated with loops. For instance, the worksharing-loop -/// construct may change this control flow such that each loop iteration is -/// executed on only one thread. -/// -/// The control flow can be described as follows: -/// -/// Preheader -/// | -/// /-> Header -/// | | -/// | Cond---\ -/// | | | -/// | Body | -/// | | | | -/// | <...> | -/// | | | | -/// \--Latch | -/// | -/// Exit -/// | -/// After -/// -/// Code in the header, condition block, latch and exit block must not have any -/// side-effect. The body block is the single entry point into the loop body, -/// which may contain arbitrary control flow as long as all control paths -/// eventually branch to the latch block. -/// -/// Defined outside OpenMPIRBuilder because one cannot forward-declare nested -/// classes. -class CanonicalLoopInfo { - friend class OpenMPIRBuilder; - -private: - /// Whether this object currently represents a loop. - bool IsValid = false; - - BasicBlock *Preheader; - BasicBlock *Header; - BasicBlock *Cond; - BasicBlock *Body; - BasicBlock *Latch; - BasicBlock *Exit; - BasicBlock *After; - - /// Add the control blocks of this loop to \p BBs. - /// - /// This does not include any block from the body, including the one returned - /// by getBody(). - void collectControlBlocks(SmallVectorImpl<BasicBlock *> &BBs); - -public: - /// The preheader ensures that there is only a single edge entering the loop. - /// Code that must be execute before any loop iteration can be emitted here, - /// such as computing the loop trip count and begin lifetime markers. Code in - /// the preheader is not considered part of the canonical loop. - BasicBlock *getPreheader() const { return Preheader; } - - /// The header is the entry for each iteration. In the canonical control flow, - /// it only contains the PHINode for the induction variable. - BasicBlock *getHeader() const { return Header; } - - /// The condition block computes whether there is another loop iteration. If - /// yes, branches to the body; otherwise to the exit block. - BasicBlock *getCond() const { return Cond; } - - /// The body block is the single entry for a loop iteration and not controlled - /// by CanonicalLoopInfo. It can contain arbitrary control flow but must - /// eventually branch to the \p Latch block. - BasicBlock *getBody() const { return Body; } - - /// Reaching the latch indicates the end of the loop body code. In the - /// canonical control flow, it only contains the increment of the induction - /// variable. - BasicBlock *getLatch() const { return Latch; } - - /// Reaching the exit indicates no more iterations are being executed. - BasicBlock *getExit() const { return Exit; } - - /// The after block is intended for clean-up code such as lifetime end - /// markers. It is separate from the exit block to ensure, analogous to the - /// preheader, it having just a single entry edge and being free from PHI - /// nodes should there be multiple loop exits (such as from break - /// statements/cancellations). - BasicBlock *getAfter() const { return After; } - - /// Returns the llvm::Value containing the number of loop iterations. It must - /// be valid in the preheader and always interpreted as an unsigned integer of - /// any bit-width. - Value *getTripCount() const { - Instruction *CmpI = &Cond->front(); - assert(isa<CmpInst>(CmpI) && "First inst must compare IV with TripCount"); - return CmpI->getOperand(1); - } - - /// Returns the instruction representing the current logical induction - /// variable. Always unsigned, always starting at 0 with an increment of one. - Instruction *getIndVar() const { - Instruction *IndVarPHI = &Header->front(); - assert(isa<PHINode>(IndVarPHI) && "First inst must be the IV PHI"); - return IndVarPHI; - } - - /// Return the type of the induction variable (and the trip count). - Type *getIndVarType() const { return getIndVar()->getType(); } - - /// Return the insertion point for user code before the loop. - OpenMPIRBuilder::InsertPointTy getPreheaderIP() const { - return {Preheader, std::prev(Preheader->end())}; - }; - - /// Return the insertion point for user code in the body. - OpenMPIRBuilder::InsertPointTy getBodyIP() const { - return {Body, Body->begin()}; - }; - - /// Return the insertion point for user code after the loop. - OpenMPIRBuilder::InsertPointTy getAfterIP() const { - return {After, After->begin()}; - }; - - /// Consistency self-check. - void assertOK() const; + + /// Create the control flow structure of a canonical OpenMP loop. + /// + /// The emitted loop will be disconnected, i.e. no edge to the loop's + /// preheader and no terminator in the AfterBB. The OpenMPIRBuilder's + /// IRBuilder location is not preserved. + /// + /// \param DL DebugLoc used for the instructions in the skeleton. + /// \param TripCount Value to be used for the trip count. + /// \param F Function in which to insert the BasicBlocks. + /// \param PreInsertBefore Where to insert BBs that execute before the body, + /// typically the body itself. + /// \param PostInsertBefore Where to insert BBs that execute after the body. + /// \param Name Base name used to derive BB + /// and instruction names. + /// + /// \returns The CanonicalLoopInfo that represents the emitted loop. + CanonicalLoopInfo *createLoopSkeleton(DebugLoc DL, Value *TripCount, + Function *F, + BasicBlock *PreInsertBefore, + BasicBlock *PostInsertBefore, + const Twine &Name = {}); }; +/// Class to represented the control flow structure of an OpenMP canonical loop. +/// +/// The control-flow structure is standardized for easy consumption by +/// directives associated with loops. For instance, the worksharing-loop +/// construct may change this control flow such that each loop iteration is +/// executed on only one thread. +/// +/// The control flow can be described as follows: +/// +/// Preheader +/// | +/// /-> Header +/// | | +/// | Cond---\ +/// | | | +/// | Body | +/// | | | | +/// | <...> | +/// | | | | +/// \--Latch | +/// | +/// Exit +/// | +/// After +/// +/// Code in the header, condition block, latch and exit block must not have any +/// side-effect. The body block is the single entry point into the loop body, +/// which may contain arbitrary control flow as long as all control paths +/// eventually branch to the latch block. +/// +/// Defined outside OpenMPIRBuilder because one cannot forward-declare nested +/// classes. +class CanonicalLoopInfo { + friend class OpenMPIRBuilder; + +private: + /// Whether this object currently represents a loop. + bool IsValid = false; + + BasicBlock *Preheader; + BasicBlock *Header; + BasicBlock *Cond; + BasicBlock *Body; + BasicBlock *Latch; + BasicBlock *Exit; + BasicBlock *After; + + /// Add the control blocks of this loop to \p BBs. + /// + /// This does not include any block from the body, including the one returned + /// by getBody(). + void collectControlBlocks(SmallVectorImpl<BasicBlock *> &BBs); + +public: + /// The preheader ensures that there is only a single edge entering the loop. + /// Code that must be execute before any loop iteration can be emitted here, + /// such as computing the loop trip count and begin lifetime markers. Code in + /// the preheader is not considered part of the canonical loop. + BasicBlock *getPreheader() const { return Preheader; } + + /// The header is the entry for each iteration. In the canonical control flow, + /// it only contains the PHINode for the induction variable. + BasicBlock *getHeader() const { return Header; } + + /// The condition block computes whether there is another loop iteration. If + /// yes, branches to the body; otherwise to the exit block. + BasicBlock *getCond() const { return Cond; } + + /// The body block is the single entry for a loop iteration and not controlled + /// by CanonicalLoopInfo. It can contain arbitrary control flow but must + /// eventually branch to the \p Latch block. + BasicBlock *getBody() const { return Body; } + + /// Reaching the latch indicates the end of the loop body code. In the + /// canonical control flow, it only contains the increment of the induction + /// variable. + BasicBlock *getLatch() const { return Latch; } + + /// Reaching the exit indicates no more iterations are being executed. + BasicBlock *getExit() const { return Exit; } + + /// The after block is intended for clean-up code such as lifetime end + /// markers. It is separate from the exit block to ensure, analogous to the + /// preheader, it having just a single entry edge and being free from PHI + /// nodes should there be multiple loop exits (such as from break + /// statements/cancellations). + BasicBlock *getAfter() const { return After; } + + /// Returns the llvm::Value containing the number of loop iterations. It must + /// be valid in the preheader and always interpreted as an unsigned integer of + /// any bit-width. + Value *getTripCount() const { + Instruction *CmpI = &Cond->front(); + assert(isa<CmpInst>(CmpI) && "First inst must compare IV with TripCount"); + return CmpI->getOperand(1); + } + + /// Returns the instruction representing the current logical induction + /// variable. Always unsigned, always starting at 0 with an increment of one. + Instruction *getIndVar() const { + Instruction *IndVarPHI = &Header->front(); + assert(isa<PHINode>(IndVarPHI) && "First inst must be the IV PHI"); + return IndVarPHI; + } + + /// Return the type of the induction variable (and the trip count). + Type *getIndVarType() const { return getIndVar()->getType(); } + + /// Return the insertion point for user code before the loop. + OpenMPIRBuilder::InsertPointTy getPreheaderIP() const { + return {Preheader, std::prev(Preheader->end())}; + }; + + /// Return the insertion point for user code in the body. + OpenMPIRBuilder::InsertPointTy getBodyIP() const { + return {Body, Body->begin()}; + }; + + /// Return the insertion point for user code after the loop. + OpenMPIRBuilder::InsertPointTy getAfterIP() const { + return {After, After->begin()}; + }; + + /// Consistency self-check. + void assertOK() const; +}; + } // end namespace llvm #endif // LLVM_IR_IRBUILDER_H diff --git a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPKinds.def b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPKinds.def index 75d360bf42..58c23c20fb 100644 --- a/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPKinds.def +++ b/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMPKinds.def @@ -7,15 +7,15 @@ //===----------------------------------------------------------------------===// /// \file /// -/// This file defines the list of supported OpenMP runtime +/// This file defines the list of supported OpenMP runtime /// calls, and other things that need to be listed in enums. /// -/// This file is under transition to OMP.td with TableGen code generation. -/// +/// This file is under transition to OMP.td with TableGen code generation. +/// //===----------------------------------------------------------------------===// -/// OpenMP Directives, combined directives and Clauses -/// - Moved to OMP.td +/// OpenMP Directives, combined directives and Clauses +/// - Moved to OMP.td /// Types used in runtime structs or runtime functions /// @@ -30,16 +30,16 @@ __OMP_TYPE(Void) __OMP_TYPE(Int1) __OMP_TYPE(Int8) -__OMP_TYPE(Int16) +__OMP_TYPE(Int16) __OMP_TYPE(Int32) __OMP_TYPE(Int64) __OMP_TYPE(Int8Ptr) -__OMP_TYPE(Int16Ptr) +__OMP_TYPE(Int16Ptr) __OMP_TYPE(Int32Ptr) __OMP_TYPE(Int64Ptr) OMP_TYPE(SizeTy, M.getDataLayout().getIntPtrType(Ctx)) -OMP_TYPE(LanemaskTy, getLanemaskType()) +OMP_TYPE(LanemaskTy, getLanemaskType()) #define __OMP_PTR_TYPE(NAME, BASE) OMP_TYPE(NAME, BASE->getPointerTo()) @@ -87,7 +87,7 @@ __OMP_ARRAY_TYPE(KmpCriticalName, Int32, 8) OMP_STRUCT_TYPE(VarName, "struct." #Name, __VA_ARGS__) __OMP_STRUCT_TYPE(Ident, ident_t, Int32, Int32, Int32, Int32, Int8Ptr) -__OMP_STRUCT_TYPE(AsyncInfo, __tgt_async_info, Int8Ptr) +__OMP_STRUCT_TYPE(AsyncInfo, __tgt_async_info, Int8Ptr) #undef __OMP_STRUCT_TYPE #undef OMP_STRUCT_TYPE @@ -107,9 +107,9 @@ __OMP_FUNCTION_TYPE(KmpcDtor, false, Void, VoidPtr) __OMP_FUNCTION_TYPE(KmpcCopyCtor, false, VoidPtr, VoidPtr, VoidPtr) __OMP_FUNCTION_TYPE(TaskRoutineEntry, false, Int32, Int32, /* kmp_task_t */ VoidPtr) -__OMP_FUNCTION_TYPE(ShuffleReduce, false, Void, VoidPtr, Int16, Int16, Int16) -__OMP_FUNCTION_TYPE(InterWarpCopy, false, Void, VoidPtr, Int32) -__OMP_FUNCTION_TYPE(GlobalList, false, Void, VoidPtr, Int32, VoidPtr) +__OMP_FUNCTION_TYPE(ShuffleReduce, false, Void, VoidPtr, Int16, Int16, Int16) +__OMP_FUNCTION_TYPE(InterWarpCopy, false, Void, VoidPtr, Int32) +__OMP_FUNCTION_TYPE(GlobalList, false, Void, VoidPtr, Int32, VoidPtr) #undef __OMP_FUNCTION_TYPE #undef OMP_FUNCTION_TYPE @@ -120,20 +120,20 @@ __OMP_FUNCTION_TYPE(GlobalList, false, Void, VoidPtr, Int32, VoidPtr) /// ///{ -#ifndef ICV_INIT_VALUE -#define ICV_INIT_VALUE(Enum, Name) -#endif - -#define __ICV_INIT_VALUE(Name) ICV_INIT_VALUE(ICV_##Name, #Name) - -__ICV_INIT_VALUE(ZERO) -__ICV_INIT_VALUE(FALSE) -__ICV_INIT_VALUE(IMPLEMENTATION_DEFINED) -__ICV_INIT_VALUE(LAST) - -#undef __ICV_INIT_VALUE -#undef ICV_INIT_VALUE - +#ifndef ICV_INIT_VALUE +#define ICV_INIT_VALUE(Enum, Name) +#endif + +#define __ICV_INIT_VALUE(Name) ICV_INIT_VALUE(ICV_##Name, #Name) + +__ICV_INIT_VALUE(ZERO) +__ICV_INIT_VALUE(FALSE) +__ICV_INIT_VALUE(IMPLEMENTATION_DEFINED) +__ICV_INIT_VALUE(LAST) + +#undef __ICV_INIT_VALUE +#undef ICV_INIT_VALUE + #ifndef ICV_DATA_ENV #define ICV_DATA_ENV(Enum, Name, EnvVarName, Init) #endif @@ -144,7 +144,7 @@ __ICV_INIT_VALUE(LAST) __ICV_DATA_ENV(nthreads, OMP_NUM_THREADS, ICV_IMPLEMENTATION_DEFINED) __ICV_DATA_ENV(active_levels, NONE, ICV_ZERO) __ICV_DATA_ENV(cancel, OMP_CANCELLATION, ICV_FALSE) -__ICV_DATA_ENV(proc_bind, OMP_PROC_BIND, ICV_IMPLEMENTATION_DEFINED) +__ICV_DATA_ENV(proc_bind, OMP_PROC_BIND, ICV_IMPLEMENTATION_DEFINED) __ICV_DATA_ENV(__last, last, ICV_LAST) #undef __ICV_DATA_ENV @@ -170,7 +170,7 @@ __ICV_RT_SET(nthreads, omp_set_num_threads) __ICV_RT_GET(nthreads, omp_get_max_threads) __ICV_RT_GET(active_levels, omp_get_active_level) __ICV_RT_GET(cancel, omp_get_cancellation) -__ICV_RT_GET(proc_bind, omp_get_proc_bind) +__ICV_RT_GET(proc_bind, omp_get_proc_bind) #undef __ICV_RT_GET #undef ICV_RT_GET @@ -202,8 +202,8 @@ __OMP_RTL(__kmpc_push_num_threads, false, Void, IdentPtr, Int32, /* Int */ Int32) __OMP_RTL(__kmpc_push_proc_bind, false, Void, IdentPtr, Int32, /* Int */ Int32) __OMP_RTL(__kmpc_omp_reg_task_with_affinity, false, Int32, IdentPtr, Int32, - /* kmp_task_t */ VoidPtr, Int32, - /* kmp_task_affinity_info_t */ VoidPtr) + /* kmp_task_t */ VoidPtr, Int32, + /* kmp_task_affinity_info_t */ VoidPtr) __OMP_RTL(omp_get_thread_num, false, Int32, ) __OMP_RTL(omp_get_num_threads, false, Int32, ) @@ -250,7 +250,7 @@ __OMP_RTL(__kmpc_reduce, false, Int32, IdentPtr, Int32, Int32, SizeTy, VoidPtr, ReduceFunctionPtr, KmpCriticalNamePtrTy) __OMP_RTL(__kmpc_reduce_nowait, false, Int32, IdentPtr, Int32, Int32, SizeTy, VoidPtr, ReduceFunctionPtr, KmpCriticalNamePtrTy) -__OMP_RTL(__kmpc_end_reduce, false, Void, IdentPtr, Int32, KmpCriticalNamePtrTy) +__OMP_RTL(__kmpc_end_reduce, false, Void, IdentPtr, Int32, KmpCriticalNamePtrTy) __OMP_RTL(__kmpc_end_reduce_nowait, false, Void, IdentPtr, Int32, KmpCriticalNamePtrTy) @@ -333,10 +333,10 @@ __OMP_RTL(__kmpc_taskloop, false, Void, IdentPtr, /* Int */ Int32, VoidPtr, /* Int */ Int32, Int64, VoidPtr) __OMP_RTL(__kmpc_omp_target_task_alloc, false, /* kmp_task_t */ VoidPtr, IdentPtr, Int32, Int32, SizeTy, SizeTy, TaskRoutineEntryPtr, Int64) -__OMP_RTL(__kmpc_taskred_modifier_init, false, /* kmp_taskgroup */ VoidPtr, - IdentPtr, /* Int */ Int32, /* Int */ Int32, /* Int */ Int32, VoidPtr) -__OMP_RTL(__kmpc_taskred_init, false, /* kmp_taskgroup */ VoidPtr, - /* Int */ Int32, /* Int */ Int32, VoidPtr) +__OMP_RTL(__kmpc_taskred_modifier_init, false, /* kmp_taskgroup */ VoidPtr, + IdentPtr, /* Int */ Int32, /* Int */ Int32, /* Int */ Int32, VoidPtr) +__OMP_RTL(__kmpc_taskred_init, false, /* kmp_taskgroup */ VoidPtr, + /* Int */ Int32, /* Int */ Int32, VoidPtr) __OMP_RTL(__kmpc_task_reduction_modifier_fini, false, Void, IdentPtr, /* Int */ Int32, /* Int */ Int32) __OMP_RTL(__kmpc_task_reduction_get_th_data, false, VoidPtr, Int32, VoidPtr, @@ -375,83 +375,83 @@ __OMP_RTL(__kmpc_init_allocator, false, /* omp_allocator_handle_t */ VoidPtr, __OMP_RTL(__kmpc_destroy_allocator, false, Void, /* Int */ Int32, /* omp_allocator_handle_t */ VoidPtr) -__OMP_RTL(__kmpc_push_target_tripcount_mapper, false, Void, IdentPtr, Int64, Int64) -__OMP_RTL(__tgt_target_mapper, false, Int32, IdentPtr, Int64, VoidPtr, Int32, VoidPtrPtr, - VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) -__OMP_RTL(__tgt_target_nowait_mapper, false, Int32, IdentPtr, Int64, VoidPtr, Int32, - VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) -__OMP_RTL(__tgt_target_teams_mapper, false, Int32, IdentPtr, Int64, VoidPtr, Int32, - VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr, Int32, Int32) -__OMP_RTL(__tgt_target_teams_nowait_mapper, false, Int32, IdentPtr, Int64, VoidPtr, Int32, - VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr, Int32, Int32) +__OMP_RTL(__kmpc_push_target_tripcount_mapper, false, Void, IdentPtr, Int64, Int64) +__OMP_RTL(__tgt_target_mapper, false, Int32, IdentPtr, Int64, VoidPtr, Int32, VoidPtrPtr, + VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) +__OMP_RTL(__tgt_target_nowait_mapper, false, Int32, IdentPtr, Int64, VoidPtr, Int32, + VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) +__OMP_RTL(__tgt_target_teams_mapper, false, Int32, IdentPtr, Int64, VoidPtr, Int32, + VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr, Int32, Int32) +__OMP_RTL(__tgt_target_teams_nowait_mapper, false, Int32, IdentPtr, Int64, VoidPtr, Int32, + VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr, Int32, Int32) __OMP_RTL(__tgt_register_requires, false, Void, Int64) -__OMP_RTL(__tgt_target_data_begin_mapper, false, Void, IdentPtr, Int64, Int32, VoidPtrPtr, - VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) -__OMP_RTL(__tgt_target_data_begin_nowait_mapper, false, Void, IdentPtr, Int64, Int32, - VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) -__OMP_RTL(__tgt_target_data_begin_mapper_issue, false, Void, IdentPtr, Int64, Int32, - VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr, AsyncInfoPtr) -__OMP_RTL(__tgt_target_data_begin_mapper_wait, false, Void, Int64, AsyncInfoPtr) -__OMP_RTL(__tgt_target_data_end_mapper, false, Void, IdentPtr, Int64, Int32, VoidPtrPtr, - VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) -__OMP_RTL(__tgt_target_data_end_nowait_mapper, false, Void, IdentPtr, Int64, Int32, - VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) -__OMP_RTL(__tgt_target_data_update_mapper, false, Void, IdentPtr, Int64, Int32, - VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) -__OMP_RTL(__tgt_target_data_update_nowait_mapper, false, Void, IdentPtr, Int64, Int32, - VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) +__OMP_RTL(__tgt_target_data_begin_mapper, false, Void, IdentPtr, Int64, Int32, VoidPtrPtr, + VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) +__OMP_RTL(__tgt_target_data_begin_nowait_mapper, false, Void, IdentPtr, Int64, Int32, + VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) +__OMP_RTL(__tgt_target_data_begin_mapper_issue, false, Void, IdentPtr, Int64, Int32, + VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr, AsyncInfoPtr) +__OMP_RTL(__tgt_target_data_begin_mapper_wait, false, Void, Int64, AsyncInfoPtr) +__OMP_RTL(__tgt_target_data_end_mapper, false, Void, IdentPtr, Int64, Int32, VoidPtrPtr, + VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) +__OMP_RTL(__tgt_target_data_end_nowait_mapper, false, Void, IdentPtr, Int64, Int32, + VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) +__OMP_RTL(__tgt_target_data_update_mapper, false, Void, IdentPtr, Int64, Int32, + VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) +__OMP_RTL(__tgt_target_data_update_nowait_mapper, false, Void, IdentPtr, Int64, Int32, + VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr) __OMP_RTL(__tgt_mapper_num_components, false, Int64, VoidPtr) __OMP_RTL(__tgt_push_mapper_component, false, Void, VoidPtr, VoidPtr, VoidPtr, - Int64, Int64, VoidPtr) + Int64, Int64, VoidPtr) __OMP_RTL(__kmpc_task_allow_completion_event, false, VoidPtr, IdentPtr, /* Int */ Int32, /* kmp_task_t */ VoidPtr) -/// OpenMP Device runtime functions -__OMP_RTL(__kmpc_kernel_init, false, Void, Int32, Int16) -__OMP_RTL(__kmpc_kernel_deinit, false, Void, Int16) -__OMP_RTL(__kmpc_spmd_kernel_init, false, Void, Int32, Int16) -__OMP_RTL(__kmpc_spmd_kernel_deinit_v2, false, Void, Int16) -__OMP_RTL(__kmpc_kernel_prepare_parallel, false, Void, VoidPtr) +/// OpenMP Device runtime functions +__OMP_RTL(__kmpc_kernel_init, false, Void, Int32, Int16) +__OMP_RTL(__kmpc_kernel_deinit, false, Void, Int16) +__OMP_RTL(__kmpc_spmd_kernel_init, false, Void, Int32, Int16) +__OMP_RTL(__kmpc_spmd_kernel_deinit_v2, false, Void, Int16) +__OMP_RTL(__kmpc_kernel_prepare_parallel, false, Void, VoidPtr) __OMP_RTL(__kmpc_kernel_parallel, false, Int1, VoidPtrPtr) -__OMP_RTL(__kmpc_kernel_end_parallel, false, Void, ) -__OMP_RTL(__kmpc_serialized_parallel, false, Void, IdentPtr, Int32) -__OMP_RTL(__kmpc_end_serialized_parallel, false, Void, IdentPtr, Int32) -__OMP_RTL(__kmpc_shuffle_int32, false, Int32, Int32, Int16, Int16) -__OMP_RTL(__kmpc_nvptx_parallel_reduce_nowait_v2, false, Int32, IdentPtr, Int32, - Int32, SizeTy, VoidPtr, ShuffleReducePtr, InterWarpCopyPtr) -__OMP_RTL(__kmpc_nvptx_end_reduce_nowait, false, Void, Int32) -__OMP_RTL(__kmpc_nvptx_teams_reduce_nowait_v2, false, Int32, IdentPtr, Int32, - VoidPtr, Int32, VoidPtr, ShuffleReducePtr, InterWarpCopyPtr, - GlobalListPtr, GlobalListPtr, GlobalListPtr, GlobalListPtr) - -__OMP_RTL(__kmpc_shuffle_int64, false, Int64, Int64, Int16, Int16) -__OMP_RTL(__kmpc_data_sharing_init_stack, false, Void, ) -__OMP_RTL(__kmpc_data_sharing_init_stack_spmd, false, Void, ) - -__OMP_RTL(__kmpc_data_sharing_coalesced_push_stack, false, VoidPtr, SizeTy, Int16) -__OMP_RTL(__kmpc_data_sharing_push_stack, false, VoidPtr, SizeTy, Int16) -__OMP_RTL(__kmpc_data_sharing_pop_stack, false, Void, VoidPtr) -__OMP_RTL(__kmpc_begin_sharing_variables, false, Void, VoidPtrPtrPtr, SizeTy) -__OMP_RTL(__kmpc_end_sharing_variables, false, Void, ) -__OMP_RTL(__kmpc_get_shared_variables, false, Void, VoidPtrPtrPtr) -__OMP_RTL(__kmpc_parallel_level, false, Int16, IdentPtr, Int32) -__OMP_RTL(__kmpc_is_spmd_exec_mode, false, Int8, ) -__OMP_RTL(__kmpc_get_team_static_memory, false, Void, Int16, VoidPtr, SizeTy, - Int16, VoidPtrPtr) -__OMP_RTL(__kmpc_restore_team_static_memory, false, Void, Int16, Int16) -__OMP_RTL(__kmpc_barrier_simple_spmd, false, Void, IdentPtr, Int32) - -__OMP_RTL(__kmpc_warp_active_thread_mask, false, LanemaskTy,) -__OMP_RTL(__kmpc_syncwarp, false, Void, LanemaskTy) - +__OMP_RTL(__kmpc_kernel_end_parallel, false, Void, ) +__OMP_RTL(__kmpc_serialized_parallel, false, Void, IdentPtr, Int32) +__OMP_RTL(__kmpc_end_serialized_parallel, false, Void, IdentPtr, Int32) +__OMP_RTL(__kmpc_shuffle_int32, false, Int32, Int32, Int16, Int16) +__OMP_RTL(__kmpc_nvptx_parallel_reduce_nowait_v2, false, Int32, IdentPtr, Int32, + Int32, SizeTy, VoidPtr, ShuffleReducePtr, InterWarpCopyPtr) +__OMP_RTL(__kmpc_nvptx_end_reduce_nowait, false, Void, Int32) +__OMP_RTL(__kmpc_nvptx_teams_reduce_nowait_v2, false, Int32, IdentPtr, Int32, + VoidPtr, Int32, VoidPtr, ShuffleReducePtr, InterWarpCopyPtr, + GlobalListPtr, GlobalListPtr, GlobalListPtr, GlobalListPtr) + +__OMP_RTL(__kmpc_shuffle_int64, false, Int64, Int64, Int16, Int16) +__OMP_RTL(__kmpc_data_sharing_init_stack, false, Void, ) +__OMP_RTL(__kmpc_data_sharing_init_stack_spmd, false, Void, ) + +__OMP_RTL(__kmpc_data_sharing_coalesced_push_stack, false, VoidPtr, SizeTy, Int16) +__OMP_RTL(__kmpc_data_sharing_push_stack, false, VoidPtr, SizeTy, Int16) +__OMP_RTL(__kmpc_data_sharing_pop_stack, false, Void, VoidPtr) +__OMP_RTL(__kmpc_begin_sharing_variables, false, Void, VoidPtrPtrPtr, SizeTy) +__OMP_RTL(__kmpc_end_sharing_variables, false, Void, ) +__OMP_RTL(__kmpc_get_shared_variables, false, Void, VoidPtrPtrPtr) +__OMP_RTL(__kmpc_parallel_level, false, Int16, IdentPtr, Int32) +__OMP_RTL(__kmpc_is_spmd_exec_mode, false, Int8, ) +__OMP_RTL(__kmpc_get_team_static_memory, false, Void, Int16, VoidPtr, SizeTy, + Int16, VoidPtrPtr) +__OMP_RTL(__kmpc_restore_team_static_memory, false, Void, Int16, Int16) +__OMP_RTL(__kmpc_barrier_simple_spmd, false, Void, IdentPtr, Int32) + +__OMP_RTL(__kmpc_warp_active_thread_mask, false, LanemaskTy,) +__OMP_RTL(__kmpc_syncwarp, false, Void, LanemaskTy) + __OMP_RTL(__last, false, Void, ) #undef __OMP_RTL #undef OMP_RTL -#define ParamAttrs(...) ArrayRef<AttributeSet>({__VA_ARGS__}) +#define ParamAttrs(...) ArrayRef<AttributeSet>({__VA_ARGS__}) #define EnumAttr(Kind) Attribute::get(Ctx, Attribute::AttrKind::Kind) -#define EnumAttrInt(Kind, N) Attribute::get(Ctx, Attribute::AttrKind::Kind, N) +#define EnumAttrInt(Kind, N) Attribute::get(Ctx, Attribute::AttrKind::Kind, N) #define AttributeSet(...) \ AttributeSet::get(Ctx, ArrayRef<Attribute>({__VA_ARGS__})) @@ -464,94 +464,94 @@ __OMP_RTL(__last, false, Void, ) __OMP_ATTRS_SET(GetterAttrs, OptimisticAttributes ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(ReadOnly), - EnumAttr(NoSync), EnumAttr(NoFree), - EnumAttr(InaccessibleMemOnly), - EnumAttr(WillReturn)) + EnumAttr(NoSync), EnumAttr(NoFree), + EnumAttr(InaccessibleMemOnly), + EnumAttr(WillReturn)) : AttributeSet(EnumAttr(NoUnwind))) __OMP_ATTRS_SET(GetterArgWriteAttrs, OptimisticAttributes ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), - EnumAttr(NoFree), - EnumAttr(InaccessibleMemOrArgMemOnly), - EnumAttr(WillReturn)) + EnumAttr(NoFree), + EnumAttr(InaccessibleMemOrArgMemOnly), + EnumAttr(WillReturn)) : AttributeSet(EnumAttr(NoUnwind))) __OMP_ATTRS_SET(SetterAttrs, OptimisticAttributes ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(WriteOnly), - EnumAttr(NoSync), EnumAttr(NoFree), - EnumAttr(InaccessibleMemOnly), - EnumAttr(WillReturn)) - : AttributeSet(EnumAttr(NoUnwind))) - -__OMP_ATTRS_SET(DefaultAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), - EnumAttr(WillReturn), EnumAttr(NoFree)) - : AttributeSet(EnumAttr(NoUnwind))) - -__OMP_ATTRS_SET(BarrierAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(Convergent)) - : AttributeSet(EnumAttr(NoUnwind), EnumAttr(Convergent))) - -__OMP_ATTRS_SET(InaccessibleArgOnlyAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), - EnumAttr(InaccessibleMemOrArgMemOnly), - EnumAttr(WillReturn), EnumAttr(NoFree)) - : AttributeSet(EnumAttr(NoUnwind))) - -#if 0 -__OMP_ATTRS_SET(InaccessibleOnlyAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), - EnumAttr(InaccessibleMemOnly), - EnumAttr(WillReturn), EnumAttr(NoFree)) - : AttributeSet(EnumAttr(NoUnwind))) -#endif - -__OMP_ATTRS_SET(AllocAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), - EnumAttr(WillReturn)) + EnumAttr(NoSync), EnumAttr(NoFree), + EnumAttr(InaccessibleMemOnly), + EnumAttr(WillReturn)) : AttributeSet(EnumAttr(NoUnwind))) -__OMP_ATTRS_SET(ForkAttrs, OptimisticAttributes - ? AttributeSet(EnumAttr(NoUnwind)) - : AttributeSet(EnumAttr(NoUnwind))) - -__OMP_ATTRS_SET(ReadOnlyPtrAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(ReadOnly), EnumAttr(NoFree), - EnumAttr(NoCapture)) - : AttributeSet()) - -#if 0 -__OMP_ATTRS_SET(WriteOnlyPtrAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(WriteOnly), EnumAttr(NoFree), - EnumAttr(NoCapture)) - : AttributeSet()) -#endif - -__OMP_ATTRS_SET(ArgPtrAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(NoCapture), EnumAttr(NoFree)) - : AttributeSet()) - -__OMP_ATTRS_SET(ReturnPtrAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(NoAlias)) - : AttributeSet()) - -#if 0 -__OMP_ATTRS_SET(ReturnAlignedPtrAttrs, - OptimisticAttributes - ? AttributeSet(EnumAttr(NoAlias), EnumAttrInt(Alignment, 8), - EnumAttrInt(DereferenceableOrNull, 8)) - : AttributeSet()) -#endif - +__OMP_ATTRS_SET(DefaultAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), + EnumAttr(WillReturn), EnumAttr(NoFree)) + : AttributeSet(EnumAttr(NoUnwind))) + +__OMP_ATTRS_SET(BarrierAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(Convergent)) + : AttributeSet(EnumAttr(NoUnwind), EnumAttr(Convergent))) + +__OMP_ATTRS_SET(InaccessibleArgOnlyAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), + EnumAttr(InaccessibleMemOrArgMemOnly), + EnumAttr(WillReturn), EnumAttr(NoFree)) + : AttributeSet(EnumAttr(NoUnwind))) + +#if 0 +__OMP_ATTRS_SET(InaccessibleOnlyAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), + EnumAttr(InaccessibleMemOnly), + EnumAttr(WillReturn), EnumAttr(NoFree)) + : AttributeSet(EnumAttr(NoUnwind))) +#endif + +__OMP_ATTRS_SET(AllocAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync), + EnumAttr(WillReturn)) + : AttributeSet(EnumAttr(NoUnwind))) + +__OMP_ATTRS_SET(ForkAttrs, OptimisticAttributes + ? AttributeSet(EnumAttr(NoUnwind)) + : AttributeSet(EnumAttr(NoUnwind))) + +__OMP_ATTRS_SET(ReadOnlyPtrAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(ReadOnly), EnumAttr(NoFree), + EnumAttr(NoCapture)) + : AttributeSet()) + +#if 0 +__OMP_ATTRS_SET(WriteOnlyPtrAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(WriteOnly), EnumAttr(NoFree), + EnumAttr(NoCapture)) + : AttributeSet()) +#endif + +__OMP_ATTRS_SET(ArgPtrAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(NoCapture), EnumAttr(NoFree)) + : AttributeSet()) + +__OMP_ATTRS_SET(ReturnPtrAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(NoAlias)) + : AttributeSet()) + +#if 0 +__OMP_ATTRS_SET(ReturnAlignedPtrAttrs, + OptimisticAttributes + ? AttributeSet(EnumAttr(NoAlias), EnumAttrInt(Alignment, 8), + EnumAttrInt(DereferenceableOrNull, 8)) + : AttributeSet()) +#endif + #undef __OMP_ATTRS_SET #undef OMP_ATTRS_SET @@ -562,314 +562,314 @@ __OMP_ATTRS_SET(ReturnAlignedPtrAttrs, #define __OMP_RTL_ATTRS(Name, FnAttrSet, RetAttrSet, ArgAttrSets) \ OMP_RTL_ATTRS(OMPRTL_##Name, FnAttrSet, RetAttrSet, ArgAttrSets) -__OMP_RTL_ATTRS(__kmpc_barrier, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_barrier_simple_spmd, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_warp_active_thread_mask, BarrierAttrs, AttributeSet(), - ParamAttrs()) -__OMP_RTL_ATTRS(__kmpc_syncwarp, BarrierAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(__kmpc_cancel, InaccessibleArgOnlyAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_cancel_barrier, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_flush, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_global_thread_num, GetterAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_fork_call, ForkAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_omp_taskwait, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_omp_taskyield, InaccessibleArgOnlyAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_push_num_threads, InaccessibleArgOnlyAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_push_proc_bind, InaccessibleArgOnlyAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_serialized_parallel, InaccessibleArgOnlyAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_end_serialized_parallel, InaccessibleArgOnlyAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_omp_reg_task_with_affinity, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs, - AttributeSet(), ReadOnlyPtrAttrs)) - -__OMP_RTL_ATTRS(omp_get_thread_num, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_num_threads, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_max_threads, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_in_parallel, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_dynamic, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_cancellation, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_nested, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS( - omp_get_schedule, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(AttributeSet(EnumAttr(NoCapture), EnumAttr(WriteOnly)), - AttributeSet(EnumAttr(NoCapture), EnumAttr(WriteOnly)))) -__OMP_RTL_ATTRS(omp_get_thread_limit, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(__kmpc_barrier, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_barrier_simple_spmd, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_warp_active_thread_mask, BarrierAttrs, AttributeSet(), + ParamAttrs()) +__OMP_RTL_ATTRS(__kmpc_syncwarp, BarrierAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(__kmpc_cancel, InaccessibleArgOnlyAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_cancel_barrier, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_flush, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_global_thread_num, GetterAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_fork_call, ForkAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_omp_taskwait, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_omp_taskyield, InaccessibleArgOnlyAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_push_num_threads, InaccessibleArgOnlyAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_push_proc_bind, InaccessibleArgOnlyAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_serialized_parallel, InaccessibleArgOnlyAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_end_serialized_parallel, InaccessibleArgOnlyAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_omp_reg_task_with_affinity, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs, + AttributeSet(), ReadOnlyPtrAttrs)) + +__OMP_RTL_ATTRS(omp_get_thread_num, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_num_threads, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_max_threads, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_in_parallel, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_dynamic, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_cancellation, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_nested, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS( + omp_get_schedule, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(AttributeSet(EnumAttr(NoCapture), EnumAttr(WriteOnly)), + AttributeSet(EnumAttr(NoCapture), EnumAttr(WriteOnly)))) +__OMP_RTL_ATTRS(omp_get_thread_limit, GetterAttrs, AttributeSet(), ParamAttrs()) __OMP_RTL_ATTRS(omp_get_supported_active_levels, GetterAttrs, AttributeSet(), - ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_max_active_levels, GetterAttrs, AttributeSet(), - ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_level, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_ancestor_thread_num, GetterAttrs, AttributeSet(), - ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_team_size, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_active_level, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_in_final, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_proc_bind, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_num_places, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_num_procs, GetterAttrs, AttributeSet(), ParamAttrs()) + ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_max_active_levels, GetterAttrs, AttributeSet(), + ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_level, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_ancestor_thread_num, GetterAttrs, AttributeSet(), + ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_team_size, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_active_level, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_in_final, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_proc_bind, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_num_places, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_num_procs, GetterAttrs, AttributeSet(), ParamAttrs()) __OMP_RTL_ATTRS(omp_get_place_proc_ids, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(AttributeSet(), AttributeSet(EnumAttr(NoCapture), - EnumAttr(WriteOnly)))) -__OMP_RTL_ATTRS(omp_get_place_num, GetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_partition_num_places, GetterAttrs, AttributeSet(), - ParamAttrs()) -__OMP_RTL_ATTRS(omp_get_partition_place_nums, GetterAttrs, AttributeSet(), - ParamAttrs()) - -__OMP_RTL_ATTRS(omp_set_num_threads, SetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_set_dynamic, SetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_set_nested, SetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_set_schedule, SetterAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(omp_set_max_active_levels, SetterAttrs, AttributeSet(), - ParamAttrs()) - -__OMP_RTL_ATTRS(__kmpc_master, InaccessibleArgOnlyAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_end_master, InaccessibleArgOnlyAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_critical, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_critical_with_hint, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_end_critical, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) - -__OMP_RTL_ATTRS(__kmpc_begin, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_end, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) - -__OMP_RTL_ATTRS(__kmpc_reduce, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - AttributeSet(), ReadOnlyPtrAttrs, AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_reduce_nowait, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - AttributeSet(), ReadOnlyPtrAttrs, AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_end_reduce, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_end_reduce_nowait, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) - -__OMP_RTL_ATTRS(__kmpc_ordered, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_end_ordered, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) - -__OMP_RTL_ATTRS(__kmpc_for_static_init_4, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, - AttributeSet(), AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_for_static_init_4u, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, - AttributeSet(), AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_for_static_init_8, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, - AttributeSet(), AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_for_static_init_8u, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, - AttributeSet(), AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_for_static_fini, InaccessibleArgOnlyAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dist_dispatch_init_4, GetterArgWriteAttrs, - AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dist_dispatch_init_4u, GetterArgWriteAttrs, - AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dist_dispatch_init_8, GetterArgWriteAttrs, - AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dist_dispatch_init_8u, GetterArgWriteAttrs, - AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_init_4, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_init_4u, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_init_8, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_init_8u, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_next_4, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_next_4u, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_next_8, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_next_8u, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_fini_4, InaccessibleArgOnlyAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_fini_4u, InaccessibleArgOnlyAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_fini_8, InaccessibleArgOnlyAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dispatch_fini_8u, InaccessibleArgOnlyAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_team_static_init_4, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_team_static_init_4u, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_team_static_init_8, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_team_static_init_8u, GetterArgWriteAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dist_for_static_init_4, GetterArgWriteAttrs, - AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, - ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dist_for_static_init_4u, GetterArgWriteAttrs, - AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, - ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dist_for_static_init_8, GetterArgWriteAttrs, - AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, - ArgPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_dist_for_static_init_8u, GetterArgWriteAttrs, - AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, - ArgPtrAttrs)) - -__OMP_RTL_ATTRS(__kmpc_single, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_end_single, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) - -__OMP_RTL_ATTRS(__kmpc_omp_task_alloc, DefaultAttrs, ReturnPtrAttrs, - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - AttributeSet(), AttributeSet(), ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_omp_task, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_end_taskgroup, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_taskgroup, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_omp_task_begin_if0, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_omp_task_complete_if0, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_omp_task_with_deps, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - AttributeSet(), ReadOnlyPtrAttrs, AttributeSet(), - ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_taskloop, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - AttributeSet(), ArgPtrAttrs, ArgPtrAttrs, - AttributeSet(), AttributeSet(), AttributeSet(), - AttributeSet(), AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_omp_target_task_alloc, DefaultAttrs, ReturnPtrAttrs, - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - AttributeSet(), AttributeSet(), ReadOnlyPtrAttrs, - AttributeSet())) -__OMP_RTL_ATTRS(__kmpc_taskred_modifier_init, DefaultAttrs, ReturnPtrAttrs, - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_taskred_init, DefaultAttrs, AttributeSet(), ParamAttrs()) -__OMP_RTL_ATTRS(__kmpc_task_reduction_modifier_fini, BarrierAttrs, - AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_task_reduction_get_th_data, DefaultAttrs, ReturnPtrAttrs, - ParamAttrs()) -__OMP_RTL_ATTRS(__kmpc_task_reduction_init, DefaultAttrs, ReturnPtrAttrs, - ParamAttrs()) -__OMP_RTL_ATTRS(__kmpc_task_reduction_modifier_init, DefaultAttrs, - ReturnPtrAttrs, ParamAttrs()) -__OMP_RTL_ATTRS(__kmpc_proxy_task_completed_ooo, DefaultAttrs, AttributeSet(), - ParamAttrs()) - -__OMP_RTL_ATTRS(__kmpc_omp_wait_deps, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_cancellationpoint, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) - -__OMP_RTL_ATTRS(__kmpc_fork_teams, ForkAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_push_num_teams, InaccessibleArgOnlyAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) - -__OMP_RTL_ATTRS(__kmpc_copyprivate, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), - ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_threadprivate_cached, DefaultAttrs, ReturnPtrAttrs, - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_threadprivate_register, DefaultAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs, - ReadOnlyPtrAttrs, ReadOnlyPtrAttrs)) - -__OMP_RTL_ATTRS(__kmpc_doacross_init, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_doacross_post, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_doacross_wait, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs)) -__OMP_RTL_ATTRS(__kmpc_doacross_fini, BarrierAttrs, AttributeSet(), - ParamAttrs(ReadOnlyPtrAttrs)) - -__OMP_RTL_ATTRS(__kmpc_alloc, DefaultAttrs, ReturnPtrAttrs, {}) -__OMP_RTL_ATTRS(__kmpc_free, AllocAttrs, AttributeSet(), {}) - -__OMP_RTL_ATTRS(__kmpc_init_allocator, DefaultAttrs, ReturnPtrAttrs, {}) -__OMP_RTL_ATTRS(__kmpc_destroy_allocator, AllocAttrs, AttributeSet(), {}) - -__OMP_RTL_ATTRS(__kmpc_push_target_tripcount_mapper, SetterAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_mapper, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_nowait_mapper, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_teams_mapper, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_teams_nowait_mapper, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_register_requires, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_data_begin_mapper, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_data_begin_nowait_mapper, ForkAttrs, - AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_data_end_mapper, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_data_end_nowait_mapper, ForkAttrs, - AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_data_update_mapper, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_target_data_update_nowait_mapper, ForkAttrs, - AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_mapper_num_components, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__tgt_push_mapper_component, ForkAttrs, AttributeSet(), {}) -__OMP_RTL_ATTRS(__kmpc_task_allow_completion_event, DefaultAttrs, - ReturnPtrAttrs, ParamAttrs(ReadOnlyPtrAttrs)) + ParamAttrs(AttributeSet(), AttributeSet(EnumAttr(NoCapture), + EnumAttr(WriteOnly)))) +__OMP_RTL_ATTRS(omp_get_place_num, GetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_partition_num_places, GetterAttrs, AttributeSet(), + ParamAttrs()) +__OMP_RTL_ATTRS(omp_get_partition_place_nums, GetterAttrs, AttributeSet(), + ParamAttrs()) + +__OMP_RTL_ATTRS(omp_set_num_threads, SetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_set_dynamic, SetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_set_nested, SetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_set_schedule, SetterAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(omp_set_max_active_levels, SetterAttrs, AttributeSet(), + ParamAttrs()) + +__OMP_RTL_ATTRS(__kmpc_master, InaccessibleArgOnlyAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_end_master, InaccessibleArgOnlyAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_critical, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_critical_with_hint, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_end_critical, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) + +__OMP_RTL_ATTRS(__kmpc_begin, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_end, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) + +__OMP_RTL_ATTRS(__kmpc_reduce, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + AttributeSet(), ReadOnlyPtrAttrs, AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_reduce_nowait, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + AttributeSet(), ReadOnlyPtrAttrs, AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_end_reduce, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_end_reduce_nowait, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) + +__OMP_RTL_ATTRS(__kmpc_ordered, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_end_ordered, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) + +__OMP_RTL_ATTRS(__kmpc_for_static_init_4, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, + AttributeSet(), AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_for_static_init_4u, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, + AttributeSet(), AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_for_static_init_8, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, + AttributeSet(), AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_for_static_init_8u, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, + AttributeSet(), AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_for_static_fini, InaccessibleArgOnlyAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dist_dispatch_init_4, GetterArgWriteAttrs, + AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dist_dispatch_init_4u, GetterArgWriteAttrs, + AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dist_dispatch_init_8, GetterArgWriteAttrs, + AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dist_dispatch_init_8u, GetterArgWriteAttrs, + AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_init_4, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_init_4u, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_init_8, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_init_8u, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_next_4, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_next_4u, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_next_8, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_next_8u, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_fini_4, InaccessibleArgOnlyAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_fini_4u, InaccessibleArgOnlyAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_fini_8, InaccessibleArgOnlyAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dispatch_fini_8u, InaccessibleArgOnlyAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_team_static_init_4, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_team_static_init_4u, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_team_static_init_8, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_team_static_init_8u, GetterArgWriteAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ArgPtrAttrs, + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dist_for_static_init_4, GetterArgWriteAttrs, + AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, + ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dist_for_static_init_4u, GetterArgWriteAttrs, + AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, + ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dist_for_static_init_8, GetterArgWriteAttrs, + AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, + ArgPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_dist_for_static_init_8u, GetterArgWriteAttrs, + AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, ArgPtrAttrs, + ArgPtrAttrs)) + +__OMP_RTL_ATTRS(__kmpc_single, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_end_single, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) + +__OMP_RTL_ATTRS(__kmpc_omp_task_alloc, DefaultAttrs, ReturnPtrAttrs, + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + AttributeSet(), AttributeSet(), ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_omp_task, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_end_taskgroup, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_taskgroup, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_omp_task_begin_if0, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_omp_task_complete_if0, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_omp_task_with_deps, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + AttributeSet(), ReadOnlyPtrAttrs, AttributeSet(), + ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_taskloop, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + AttributeSet(), ArgPtrAttrs, ArgPtrAttrs, + AttributeSet(), AttributeSet(), AttributeSet(), + AttributeSet(), AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_omp_target_task_alloc, DefaultAttrs, ReturnPtrAttrs, + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + AttributeSet(), AttributeSet(), ReadOnlyPtrAttrs, + AttributeSet())) +__OMP_RTL_ATTRS(__kmpc_taskred_modifier_init, DefaultAttrs, ReturnPtrAttrs, + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_taskred_init, DefaultAttrs, AttributeSet(), ParamAttrs()) +__OMP_RTL_ATTRS(__kmpc_task_reduction_modifier_fini, BarrierAttrs, + AttributeSet(), ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_task_reduction_get_th_data, DefaultAttrs, ReturnPtrAttrs, + ParamAttrs()) +__OMP_RTL_ATTRS(__kmpc_task_reduction_init, DefaultAttrs, ReturnPtrAttrs, + ParamAttrs()) +__OMP_RTL_ATTRS(__kmpc_task_reduction_modifier_init, DefaultAttrs, + ReturnPtrAttrs, ParamAttrs()) +__OMP_RTL_ATTRS(__kmpc_proxy_task_completed_ooo, DefaultAttrs, AttributeSet(), + ParamAttrs()) + +__OMP_RTL_ATTRS(__kmpc_omp_wait_deps, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_cancellationpoint, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) + +__OMP_RTL_ATTRS(__kmpc_fork_teams, ForkAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_push_num_teams, InaccessibleArgOnlyAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) + +__OMP_RTL_ATTRS(__kmpc_copyprivate, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(), + ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_threadprivate_cached, DefaultAttrs, ReturnPtrAttrs, + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_threadprivate_register, DefaultAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs, + ReadOnlyPtrAttrs, ReadOnlyPtrAttrs)) + +__OMP_RTL_ATTRS(__kmpc_doacross_init, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_doacross_post, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_doacross_wait, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs)) +__OMP_RTL_ATTRS(__kmpc_doacross_fini, BarrierAttrs, AttributeSet(), + ParamAttrs(ReadOnlyPtrAttrs)) + +__OMP_RTL_ATTRS(__kmpc_alloc, DefaultAttrs, ReturnPtrAttrs, {}) +__OMP_RTL_ATTRS(__kmpc_free, AllocAttrs, AttributeSet(), {}) + +__OMP_RTL_ATTRS(__kmpc_init_allocator, DefaultAttrs, ReturnPtrAttrs, {}) +__OMP_RTL_ATTRS(__kmpc_destroy_allocator, AllocAttrs, AttributeSet(), {}) + +__OMP_RTL_ATTRS(__kmpc_push_target_tripcount_mapper, SetterAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_mapper, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_nowait_mapper, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_teams_mapper, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_teams_nowait_mapper, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_register_requires, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_data_begin_mapper, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_data_begin_nowait_mapper, ForkAttrs, + AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_data_end_mapper, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_data_end_nowait_mapper, ForkAttrs, + AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_data_update_mapper, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_target_data_update_nowait_mapper, ForkAttrs, + AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_mapper_num_components, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__tgt_push_mapper_component, ForkAttrs, AttributeSet(), {}) +__OMP_RTL_ATTRS(__kmpc_task_allow_completion_event, DefaultAttrs, + ReturnPtrAttrs, ParamAttrs(ReadOnlyPtrAttrs)) #undef __OMP_RTL_ATTRS #undef OMP_RTL_ATTRS #undef AttributeSet #undef EnumAttr -#undef EnumAttrInt -#undef ParamAttrs +#undef EnumAttrInt +#undef ParamAttrs ///} @@ -1025,7 +1025,7 @@ __OMP_TRAIT_PROPERTY(device, arch, aarch64) __OMP_TRAIT_PROPERTY(device, arch, aarch64_be) __OMP_TRAIT_PROPERTY(device, arch, aarch64_32) __OMP_TRAIT_PROPERTY(device, arch, ppc) -__OMP_TRAIT_PROPERTY(device, arch, ppcle) +__OMP_TRAIT_PROPERTY(device, arch, ppcle) __OMP_TRAIT_PROPERTY(device, arch, ppc64) __OMP_TRAIT_PROPERTY(device, arch, ppc64le) __OMP_TRAIT_PROPERTY(device, arch, x86) @@ -1055,8 +1055,8 @@ __OMP_TRAIT_SELECTOR(implementation, extension, true) __OMP_TRAIT_PROPERTY(implementation, extension, match_all) __OMP_TRAIT_PROPERTY(implementation, extension, match_any) __OMP_TRAIT_PROPERTY(implementation, extension, match_none) -__OMP_TRAIT_PROPERTY(implementation, extension, disable_implicit_base) -__OMP_TRAIT_PROPERTY(implementation, extension, allow_templates) +__OMP_TRAIT_PROPERTY(implementation, extension, disable_implicit_base) +__OMP_TRAIT_PROPERTY(implementation, extension, allow_templates) __OMP_TRAIT_SET(user) @@ -1066,18 +1066,18 @@ __OMP_TRAIT_PROPERTY(user, condition, true) __OMP_TRAIT_PROPERTY(user, condition, false) __OMP_TRAIT_PROPERTY(user, condition, unknown) - -// Note that we put isa last so that the other conditions are checked first. -// This allows us to issue warnings wrt. isa only if we match otherwise. -__OMP_TRAIT_SELECTOR(device, isa, true) - -// We use "__ANY" as a placeholder in the isa property to denote the -// conceptual "any", not the literal `any` used in kind. The string we -// we use is not important except that it will show up in diagnostics. -OMP_TRAIT_PROPERTY(device_isa___ANY, device, device_isa, - "<any, entirely target dependent>") - - + +// Note that we put isa last so that the other conditions are checked first. +// This allows us to issue warnings wrt. isa only if we match otherwise. +__OMP_TRAIT_SELECTOR(device, isa, true) + +// We use "__ANY" as a placeholder in the isa property to denote the +// conceptual "any", not the literal `any` used in kind. The string we +// we use is not important except that it will show up in diagnostics. +OMP_TRAIT_PROPERTY(device_isa___ANY, device, device_isa, + "<any, entirely target dependent>") + + #undef OMP_TRAIT_SET #undef __OMP_TRAIT_SET ///} @@ -1115,27 +1115,27 @@ OMP_LAST_TRAIT_PROPERTY( #undef __OMP_REQUIRES_TRAIT #undef OMP_REQUIRES_TRAIT ///} - - -/// Assumption clauses -/// -///{ - -#ifdef OMP_ASSUME_CLAUSE -#define __OMP_ASSUME_CLAUSE(Identifier, StartsWith, HasDirectiveList, HasExpression) \ -OMP_ASSUME_CLAUSE(Identifier, StartsWith, HasDirectiveList, HasExpression) -#else -#define __OMP_ASSUME_CLAUSE(...) -#endif - -__OMP_ASSUME_CLAUSE(llvm::StringLiteral("ext_"), true, false, false) -__OMP_ASSUME_CLAUSE(llvm::StringLiteral("absent"), false, true, false) -__OMP_ASSUME_CLAUSE(llvm::StringLiteral("contains"), false, true, false) -__OMP_ASSUME_CLAUSE(llvm::StringLiteral("holds"), false, false, true) -__OMP_ASSUME_CLAUSE(llvm::StringLiteral("no_openmp"), false, false, false) -__OMP_ASSUME_CLAUSE(llvm::StringLiteral("no_openmp_routines"), false, false, false) -__OMP_ASSUME_CLAUSE(llvm::StringLiteral("no_parallelism"), false, false, false) - -#undef __OMP_ASSUME_CLAUSE -#undef OMP_ASSUME_CLAUSE -///} + + +/// Assumption clauses +/// +///{ + +#ifdef OMP_ASSUME_CLAUSE +#define __OMP_ASSUME_CLAUSE(Identifier, StartsWith, HasDirectiveList, HasExpression) \ +OMP_ASSUME_CLAUSE(Identifier, StartsWith, HasDirectiveList, HasExpression) +#else +#define __OMP_ASSUME_CLAUSE(...) +#endif + +__OMP_ASSUME_CLAUSE(llvm::StringLiteral("ext_"), true, false, false) +__OMP_ASSUME_CLAUSE(llvm::StringLiteral("absent"), false, true, false) +__OMP_ASSUME_CLAUSE(llvm::StringLiteral("contains"), false, true, false) +__OMP_ASSUME_CLAUSE(llvm::StringLiteral("holds"), false, false, true) +__OMP_ASSUME_CLAUSE(llvm::StringLiteral("no_openmp"), false, false, false) +__OMP_ASSUME_CLAUSE(llvm::StringLiteral("no_openmp_routines"), false, false, false) +__OMP_ASSUME_CLAUSE(llvm::StringLiteral("no_parallelism"), false, false, false) + +#undef __OMP_ASSUME_CLAUSE +#undef OMP_ASSUME_CLAUSE +///} |