llvm/include/llvm/Frontend/OpenMP/OMP.h.inc

#ifndef LLVM_OpenMP_INC
#define LLVM_OpenMP_INC

#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/Support/Compiler.h"
#include <cstddef>

namespace llvm {
class StringRef;
namespace omp {

LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();

enum class Association {};

static constexpr std::size_t Association_enumSize =;

enum class Category {};

static constexpr std::size_t Category_enumSize =;

enum class Directive {};

static constexpr std::size_t Directive_enumSize =;

constexpr auto OMPD_allocate =;
constexpr auto OMPD_allocators =;
constexpr auto OMPD_assume =;
constexpr auto OMPD_assumes =;
constexpr auto OMPD_atomic =;
constexpr auto OMPD_barrier =;
constexpr auto OMPD_begin_assumes =;
constexpr auto OMPD_begin_declare_target =;
constexpr auto OMPD_begin_declare_variant =;
constexpr auto OMPD_cancel =;
constexpr auto OMPD_cancellation_point =;
constexpr auto OMPD_critical =;
constexpr auto OMPD_declare_mapper =;
constexpr auto OMPD_declare_reduction =;
constexpr auto OMPD_declare_simd =;
constexpr auto OMPD_declare_target =;
constexpr auto OMPD_declare_variant =;
constexpr auto OMPD_depobj =;
constexpr auto OMPD_distribute =;
constexpr auto OMPD_distribute_parallel_do =;
constexpr auto OMPD_distribute_parallel_do_simd =;
constexpr auto OMPD_distribute_parallel_for =;
constexpr auto OMPD_distribute_parallel_for_simd =;
constexpr auto OMPD_distribute_simd =;
constexpr auto OMPD_do =;
constexpr auto OMPD_do_simd =;
constexpr auto OMPD_end_assumes =;
constexpr auto OMPD_end_declare_target =;
constexpr auto OMPD_end_declare_variant =;
constexpr auto OMPD_end_do =;
constexpr auto OMPD_end_do_simd =;
constexpr auto OMPD_end_sections =;
constexpr auto OMPD_end_single =;
constexpr auto OMPD_end_workshare =;
constexpr auto OMPD_error =;
constexpr auto OMPD_flush =;
constexpr auto OMPD_for =;
constexpr auto OMPD_for_simd =;
constexpr auto OMPD_interchange =;
constexpr auto OMPD_masked_taskloop =;
constexpr auto OMPD_masked_taskloop_simd =;
constexpr auto OMPD_master =;
constexpr auto OMPD_master_taskloop =;
constexpr auto OMPD_master_taskloop_simd =;
constexpr auto OMPD_metadirective =;
constexpr auto OMPD_nothing =;
constexpr auto OMPD_ordered =;
constexpr auto OMPD_parallel =;
constexpr auto OMPD_parallel_do =;
constexpr auto OMPD_parallel_do_simd =;
constexpr auto OMPD_parallel_for =;
constexpr auto OMPD_parallel_for_simd =;
constexpr auto OMPD_parallel_masked =;
constexpr auto OMPD_parallel_masked_taskloop =;
constexpr auto OMPD_parallel_masked_taskloop_simd =;
constexpr auto OMPD_parallel_master =;
constexpr auto OMPD_parallel_master_taskloop =;
constexpr auto OMPD_parallel_master_taskloop_simd =;
constexpr auto OMPD_parallel_sections =;
constexpr auto OMPD_parallel_workshare =;
constexpr auto OMPD_requires =;
constexpr auto OMPD_reverse =;
constexpr auto OMPD_scan =;
constexpr auto OMPD_section =;
constexpr auto OMPD_sections =;
constexpr auto OMPD_simd =;
constexpr auto OMPD_single =;
constexpr auto OMPD_target =;
constexpr auto OMPD_target_data =;
constexpr auto OMPD_target_enter_data =;
constexpr auto OMPD_target_exit_data =;
constexpr auto OMPD_target_parallel =;
constexpr auto OMPD_target_parallel_do =;
constexpr auto OMPD_target_parallel_do_simd =;
constexpr auto OMPD_target_parallel_for =;
constexpr auto OMPD_target_parallel_for_simd =;
constexpr auto OMPD_target_simd =;
constexpr auto OMPD_target_teams =;
constexpr auto OMPD_target_teams_distribute =;
constexpr auto OMPD_target_teams_distribute_parallel_do =;
constexpr auto OMPD_target_teams_distribute_parallel_do_simd =;
constexpr auto OMPD_target_teams_distribute_parallel_for =;
constexpr auto OMPD_target_teams_distribute_parallel_for_simd =;
constexpr auto OMPD_target_teams_distribute_simd =;
constexpr auto OMPD_target_update =;
constexpr auto OMPD_task =;
constexpr auto OMPD_taskgroup =;
constexpr auto OMPD_taskloop =;
constexpr auto OMPD_taskloop_simd =;
constexpr auto OMPD_taskwait =;
constexpr auto OMPD_taskyield =;
constexpr auto OMPD_teams =;
constexpr auto OMPD_teams_distribute =;
constexpr auto OMPD_teams_distribute_parallel_do =;
constexpr auto OMPD_teams_distribute_parallel_do_simd =;
constexpr auto OMPD_teams_distribute_parallel_for =;
constexpr auto OMPD_teams_distribute_parallel_for_simd =;
constexpr auto OMPD_teams_distribute_simd =;
constexpr auto OMPD_threadprivate =;
constexpr auto OMPD_tile =;
constexpr auto OMPD_unknown =;
constexpr auto OMPD_unroll =;
constexpr auto OMPD_workshare =;
constexpr auto OMPD_dispatch =;
constexpr auto OMPD_interop =;
constexpr auto OMPD_loop =;
constexpr auto OMPD_masked =;
constexpr auto OMPD_parallel_loop =;
constexpr auto OMPD_scope =;
constexpr auto OMPD_target_loop =;
constexpr auto OMPD_target_parallel_loop =;
constexpr auto OMPD_target_teams_loop =;
constexpr auto OMPD_teams_loop =;

enum class Clause {};

static constexpr std::size_t Clause_enumSize =;

constexpr auto OMPC_absent =;
constexpr auto OMPC_acq_rel =;
constexpr auto OMPC_acquire =;
constexpr auto OMPC_adjust_args =;
constexpr auto OMPC_affinity =;
constexpr auto OMPC_align =;
constexpr auto OMPC_aligned =;
constexpr auto OMPC_allocate =;
constexpr auto OMPC_allocator =;
constexpr auto OMPC_append_args =;
constexpr auto OMPC_at =;
constexpr auto OMPC_atomic_default_mem_order =;
constexpr auto OMPC_bind =;
constexpr auto OMPC_cancellation_construct_type =;
constexpr auto OMPC_capture =;
constexpr auto OMPC_collapse =;
constexpr auto OMPC_compare =;
constexpr auto OMPC_contains =;
constexpr auto OMPC_copyprivate =;
constexpr auto OMPC_copyin =;
constexpr auto OMPC_default =;
constexpr auto OMPC_defaultmap =;
constexpr auto OMPC_depend =;
constexpr auto OMPC_depobj =;
constexpr auto OMPC_destroy =;
constexpr auto OMPC_detach =;
constexpr auto OMPC_device =;
constexpr auto OMPC_device_type =;
constexpr auto OMPC_dist_schedule =;
constexpr auto OMPC_doacross =;
constexpr auto OMPC_dynamic_allocators =;
constexpr auto OMPC_enter =;
constexpr auto OMPC_exclusive =;
constexpr auto OMPC_fail =;
constexpr auto OMPC_filter =;
constexpr auto OMPC_final =;
constexpr auto OMPC_firstprivate =;
constexpr auto OMPC_flush =;
constexpr auto OMPC_from =;
constexpr auto OMPC_full =;
constexpr auto OMPC_grainsize =;
constexpr auto OMPC_has_device_addr =;
constexpr auto OMPC_hint =;
constexpr auto OMPC_holds =;
constexpr auto OMPC_if =;
constexpr auto OMPC_in_reduction =;
constexpr auto OMPC_inbranch =;
constexpr auto OMPC_inclusive =;
constexpr auto OMPC_indirect =;
constexpr auto OMPC_init =;
constexpr auto OMPC_is_device_ptr =;
constexpr auto OMPC_lastprivate =;
constexpr auto OMPC_linear =;
constexpr auto OMPC_link =;
constexpr auto OMPC_map =;
constexpr auto OMPC_match =;
constexpr auto OMPC_memory_order =;
constexpr auto OMPC_mergeable =;
constexpr auto OMPC_message =;
constexpr auto OMPC_nogroup =;
constexpr auto OMPC_no_openmp =;
constexpr auto OMPC_no_openmp_routines =;
constexpr auto OMPC_no_parallelism =;
constexpr auto OMPC_nowait =;
constexpr auto OMPC_nocontext =;
constexpr auto OMPC_nontemporal =;
constexpr auto OMPC_notinbranch =;
constexpr auto OMPC_novariants =;
constexpr auto OMPC_num_tasks =;
constexpr auto OMPC_num_teams =;
constexpr auto OMPC_num_threads =;
constexpr auto OMPC_ompx_attribute =;
constexpr auto OMPC_ompx_bare =;
constexpr auto OMPC_ompx_dyn_cgroup_mem =;
constexpr auto OMPC_order =;
constexpr auto OMPC_ordered =;
constexpr auto OMPC_partial =;
constexpr auto OMPC_priority =;
constexpr auto OMPC_private =;
constexpr auto OMPC_proc_bind =;
constexpr auto OMPC_read =;
constexpr auto OMPC_reduction =;
constexpr auto OMPC_relaxed =;
constexpr auto OMPC_release =;
constexpr auto OMPC_reverse_offload =;
constexpr auto OMPC_safelen =;
constexpr auto OMPC_schedule =;
constexpr auto OMPC_seq_cst =;
constexpr auto OMPC_severity =;
constexpr auto OMPC_shared =;
constexpr auto OMPC_simd =;
constexpr auto OMPC_simdlen =;
constexpr auto OMPC_sizes =;
constexpr auto OMPC_task_reduction =;
constexpr auto OMPC_thread_limit =;
constexpr auto OMPC_threadprivate =;
constexpr auto OMPC_threads =;
constexpr auto OMPC_to =;
constexpr auto OMPC_unified_address =;
constexpr auto OMPC_unified_shared_memory =;
constexpr auto OMPC_uniform =;
constexpr auto OMPC_unknown =;
constexpr auto OMPC_untied =;
constexpr auto OMPC_update =;
constexpr auto OMPC_use =;
constexpr auto OMPC_use_device_addr =;
constexpr auto OMPC_use_device_ptr =;
constexpr auto OMPC_uses_allocators =;
constexpr auto OMPC_weak =;
constexpr auto OMPC_when =;
constexpr auto OMPC_write =;

enum class CancellationConstructType {};

constexpr auto OMP_CANCELLATION_CONSTRUCT_Parallel =;
constexpr auto OMP_CANCELLATION_CONSTRUCT_Loop =;
constexpr auto OMP_CANCELLATION_CONSTRUCT_Sections =;
constexpr auto OMP_CANCELLATION_CONSTRUCT_Taskgroup =;
constexpr auto OMP_CANCELLATION_CONSTRUCT_None =;

enum class GrainsizeType {};

constexpr auto OMP_GRAINSIZE_Strict =;
constexpr auto OMP_GRAINSIZE_Unknown =;

enum class MemoryOrderKind {};

constexpr auto OMP_MEMORY_ORDER_SeqCst =;
constexpr auto OMP_MEMORY_ORDER_AcqRel =;
constexpr auto OMP_MEMORY_ORDER_Acquire =;
constexpr auto OMP_MEMORY_ORDER_Release =;
constexpr auto OMP_MEMORY_ORDER_Relaxed =;
constexpr auto OMP_MEMORY_ORDER_Default =;

enum class NumTasksType {};

constexpr auto OMP_NUMTASKS_Strict =;
constexpr auto OMP_NUMTASKS_Unknown =;

enum class OrderKind {};

constexpr auto OMP_ORDER_unknown =;
constexpr auto OMP_ORDER_concurrent =;

enum class ProcBindKind {};

constexpr auto OMP_PROC_BIND_primary =;
constexpr auto OMP_PROC_BIND_master =;
constexpr auto OMP_PROC_BIND_close =;
constexpr auto OMP_PROC_BIND_spread =;
constexpr auto OMP_PROC_BIND_default =;
constexpr auto OMP_PROC_BIND_unknown =;

enum class ScheduleKind {};

constexpr auto OMP_SCHEDULE_Static =;
constexpr auto OMP_SCHEDULE_Dynamic =;
constexpr auto OMP_SCHEDULE_Guided =;
constexpr auto OMP_SCHEDULE_Auto =;
constexpr auto OMP_SCHEDULE_Runtime =;
constexpr auto OMP_SCHEDULE_Default =;

// Enumeration helper functions
LLVM_ABI Directive getOpenMPDirectiveKind(llvm::StringRef Str);

LLVM_ABI llvm::StringRef getOpenMPDirectiveName(Directive D);

LLVM_ABI Clause getOpenMPClauseKind(llvm::StringRef Str);

LLVM_ABI llvm::StringRef getOpenMPClauseName(Clause C);

/// Return true if \p C is a valid clause for \p D in version \p Version.
LLVM_ABI bool isAllowedClauseForDirective(Directive D, Clause C, unsigned Version);

constexpr std::size_t getMaxLeafCount() {}
LLVM_ABI Association getDirectiveAssociation(Directive D);
LLVM_ABI Category getDirectiveCategory(Directive D);
LLVM_ABI CancellationConstructType getCancellationConstructType(StringRef);
LLVM_ABI llvm::StringRef getOpenMPCancellationConstructTypeName(CancellationConstructType);
LLVM_ABI GrainsizeType getGrainsizeType(StringRef);
LLVM_ABI llvm::StringRef getOpenMPGrainsizeTypeName(GrainsizeType);
LLVM_ABI MemoryOrderKind getMemoryOrderKind(StringRef);
LLVM_ABI llvm::StringRef getOpenMPMemoryOrderKindName(MemoryOrderKind);
LLVM_ABI NumTasksType getNumTasksType(StringRef);
LLVM_ABI llvm::StringRef getOpenMPNumTasksTypeName(NumTasksType);
LLVM_ABI OrderKind getOrderKind(StringRef);
LLVM_ABI llvm::StringRef getOpenMPOrderKindName(OrderKind);
LLVM_ABI ProcBindKind getProcBindKind(StringRef);
LLVM_ABI llvm::StringRef getOpenMPProcBindKindName(ProcBindKind);
LLVM_ABI ScheduleKind getScheduleKind(StringRef);
LLVM_ABI llvm::StringRef getOpenMPScheduleKindName(ScheduleKind);

} // namespace omp
} // namespace llvm
#endif // LLVM_OpenMP_INC