LLVM 22.0.0git
OMPConstants.h File Reference

This file defines constans and helpers used when dealing with OpenMP. More...

#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Frontend/OpenMP/OMP.h"
#include "llvm/Frontend/OpenMP/OMPKinds.def"
#include "OMPDeviceConstants.h"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::omp

Macros

#define ICV_DATA_ENV(Enum, ...)
#define ICV_DATA_ENV(Enum, ...)
#define ICV_INIT_VALUE(Enum, Name)
#define ICV_INIT_VALUE(Enum, Name)
#define OMP_RTL(Enum, ...)
#define OMP_RTL(Enum, ...)
#define OMP_DEFAULT_KIND(Enum, Str)
#define OMP_DEFAULT_KIND(Enum, ...)
#define OMP_IDENT_FLAG(Enum, Str, Value)
#define OMP_IDENT_FLAG(Enum, ...)
#define OMP_KERNEL_ARG_VERSION   3
#define OMP_KERNEL_ARG_MIN_VERSION_WITH_DYN_PTR   3

Enumerations

enum class  llvm::omp::InternalControlVar
 IDs for all Internal Control Variables (ICVs). More...
enum class  llvm::omp::ICVInitValue
enum class  llvm::omp::RuntimeFunction
 IDs for all omp runtime library (RTL) functions. More...
enum class  llvm::omp::DefaultKind
 IDs for the different default kinds. More...
enum class  llvm::omp::IdentFlag
 IDs for all omp runtime library ident_t flag encodings (see their defintion in openmp/runtime/src/kmp.h). More...
enum class  llvm::omp::OMPScheduleType {
  llvm::omp::None = 0 , llvm::omp::BaseStaticChunked = 1 , llvm::omp::BaseStatic = 2 , llvm::omp::BaseDynamicChunked = 3 ,
  llvm::omp::BaseGuidedChunked = 4 , llvm::omp::BaseRuntime = 5 , llvm::omp::BaseAuto = 6 , llvm::omp::BaseTrapezoidal = 7 ,
  llvm::omp::BaseGreedy = 8 , llvm::omp::BaseBalanced = 9 , llvm::omp::BaseGuidedIterativeChunked = 10 , llvm::omp::BaseGuidedAnalyticalChunked = 11 ,
  llvm::omp::BaseSteal = 12 , llvm::omp::BaseStaticBalancedChunked = 13 , llvm::omp::BaseGuidedSimd = 14 , llvm::omp::BaseRuntimeSimd = 15 ,
  llvm::omp::BaseDistributeChunked = 27 , llvm::omp::BaseDistribute = 28 , llvm::omp::ModifierUnordered = (1 << 5) , llvm::omp::ModifierOrdered = (1 << 6) ,
  llvm::omp::ModifierNomerge = (1 << 7) , llvm::omp::ModifierMonotonic = (1 << 29) , llvm::omp::ModifierNonmonotonic = (1 << 30) , llvm::omp::OrderingMask = ModifierUnordered | ModifierOrdered | ModifierNomerge ,
  llvm::omp::MonotonicityMask = ModifierMonotonic | ModifierNonmonotonic , llvm::omp::ModifierMask = OrderingMask | MonotonicityMask , llvm::omp::UnorderedStaticChunked = BaseStaticChunked | ModifierUnordered , llvm::omp::UnorderedStatic = BaseStatic | ModifierUnordered ,
  llvm::omp::UnorderedDynamicChunked = BaseDynamicChunked | ModifierUnordered , llvm::omp::UnorderedGuidedChunked = BaseGuidedChunked | ModifierUnordered , llvm::omp::UnorderedRuntime = BaseRuntime | ModifierUnordered , llvm::omp::UnorderedAuto = BaseAuto | ModifierUnordered ,
  llvm::omp::UnorderedTrapezoidal = BaseTrapezoidal | ModifierUnordered , llvm::omp::UnorderedGreedy = BaseGreedy | ModifierUnordered , llvm::omp::UnorderedBalanced = BaseBalanced | ModifierUnordered , llvm::omp::UnorderedGuidedIterativeChunked ,
  llvm::omp::UnorderedGuidedAnalyticalChunked , llvm::omp::UnorderedSteal = BaseSteal | ModifierUnordered , llvm::omp::UnorderedStaticBalancedChunked , llvm::omp::UnorderedGuidedSimd = BaseGuidedSimd | ModifierUnordered ,
  llvm::omp::UnorderedRuntimeSimd = BaseRuntimeSimd | ModifierUnordered , llvm::omp::OrderedStaticChunked = BaseStaticChunked | ModifierOrdered , llvm::omp::OrderedStatic = BaseStatic | ModifierOrdered , llvm::omp::OrderedDynamicChunked = BaseDynamicChunked | ModifierOrdered ,
  llvm::omp::OrderedGuidedChunked = BaseGuidedChunked | ModifierOrdered , llvm::omp::OrderedRuntime = BaseRuntime | ModifierOrdered , llvm::omp::OrderedAuto = BaseAuto | ModifierOrdered , llvm::omp::OrderdTrapezoidal = BaseTrapezoidal | ModifierOrdered ,
  llvm::omp::OrderedDistributeChunked = BaseDistributeChunked | ModifierOrdered , llvm::omp::OrderedDistribute = BaseDistribute | ModifierOrdered , llvm::omp::NomergeUnorderedStaticChunked , llvm::omp::NomergeUnorderedStatic ,
  llvm::omp::NomergeUnorderedDynamicChunked , llvm::omp::NomergeUnorderedGuidedChunked , llvm::omp::NomergeUnorderedRuntime , llvm::omp::NomergeUnorderedAuto = BaseAuto | ModifierUnordered | ModifierNomerge ,
  llvm::omp::NomergeUnorderedTrapezoidal , llvm::omp::NomergeUnorderedGreedy , llvm::omp::NomergeUnorderedBalanced , llvm::omp::NomergeUnorderedGuidedIterativeChunked ,
  llvm::omp::NomergeUnorderedGuidedAnalyticalChunked , llvm::omp::NomergeUnorderedSteal , llvm::omp::NomergeOrderedStaticChunked , llvm::omp::NomergeOrderedStatic = BaseStatic | ModifierOrdered | ModifierNomerge ,
  llvm::omp::NomergeOrderedDynamicChunked , llvm::omp::NomergeOrderedGuidedChunked , llvm::omp::NomergeOrderedRuntime , llvm::omp::NomergeOrderedAuto = BaseAuto | ModifierOrdered | ModifierNomerge ,
  llvm::omp::NomergeOrderedTrapezoidal
}
enum class  llvm::omp::OpenMPOffloadMappingFlags : uint64_t {
  llvm::omp::OMP_MAP_NONE = 0x0 , llvm::omp::OMP_MAP_TO = 0x01 , llvm::omp::OMP_MAP_FROM = 0x02 , llvm::omp::OMP_MAP_ALWAYS = 0x04 ,
  llvm::omp::OMP_MAP_DELETE = 0x08 , llvm::omp::OMP_MAP_PTR_AND_OBJ = 0x10 , llvm::omp::OMP_MAP_TARGET_PARAM = 0x20 , llvm::omp::OMP_MAP_RETURN_PARAM = 0x40 ,
  llvm::omp::OMP_MAP_PRIVATE = 0x80 , llvm::omp::OMP_MAP_LITERAL = 0x100 , llvm::omp::OMP_MAP_IMPLICIT = 0x200 , llvm::omp::OMP_MAP_CLOSE = 0x400 ,
  llvm::omp::OMP_MAP_PRESENT = 0x1000 , llvm::omp::OMP_MAP_OMPX_HOLD = 0x2000 , llvm::omp::OMP_MAP_NON_CONTIG = 0x100000000000 , llvm::omp::OMP_MAP_MEMBER_OF = 0xffff000000000000
}
 Values for bit flags used to specify the mapping type for offloading. More...
enum  llvm::omp::OpenMPOffloadingReservedDeviceIDs { llvm::omp::OMP_DEVICEID_UNDEF = -1 }
enum class  llvm::omp::AddressSpace : unsigned {
  llvm::omp::Generic = 0 , llvm::omp::Global = 1 , llvm::omp::Shared = 3 , llvm::omp::Constant = 4 ,
  llvm::omp::Local = 5
}
enum class  llvm::omp::OMPInteropType { llvm::omp::Unknown , llvm::omp::Target , llvm::omp::TargetSync }
enum class  llvm::omp::OMPAtomicCompareOp : unsigned { llvm::omp::EQ , llvm::omp::MIN , llvm::omp::MAX }
 Atomic compare operations. Currently OpenMP only supports ==, >, and <. More...
enum class  llvm::omp::RTLDependInfoFields { llvm::omp::BaseAddr , llvm::omp::Len , llvm::omp::Flags }
 Fields ids in kmp_depend_info record. More...
enum class  llvm::omp::RTLDependenceKindTy {
  llvm::omp::DepUnknown = 0x0 , llvm::omp::DepIn = 0x01 , llvm::omp::DepInOut = 0x3 , llvm::omp::DepMutexInOutSet = 0x4 ,
  llvm::omp::DepInOutSet = 0x8 , llvm::omp::DepOmpAllMem = 0x80
}
 Dependence kind for RTL. More...
enum class  llvm::omp::WorksharingLoopType { llvm::omp::ForStaticLoop , llvm::omp::DistributeStaticLoop , llvm::omp::DistributeForStaticLoop }
 A type of worksharing loop construct. More...

Functions

 llvm::omp::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()

Variables

constexpr const charllvm::omp::OmpDefaultMapperName = ".omp.default.mapper"

Detailed Description

This file defines constans and helpers used when dealing with OpenMP.

Definition in file OMPConstants.h.

Macro Definition Documentation

◆ ICV_DATA_ENV [1/2]

#define ICV_DATA_ENV ( Enum,
... )
Value:
Enum,

Definition at line 27 of file OMPConstants.h.

◆ ICV_DATA_ENV [2/2]

#define ICV_DATA_ENV ( Enum,
... )
Value:
constexpr auto Enum = omp::InternalControlVar::Enum;

Definition at line 27 of file OMPConstants.h.

◆ ICV_INIT_VALUE [1/2]

#define ICV_INIT_VALUE ( Enum,
Name )
Value:
Enum,

Definition at line 36 of file OMPConstants.h.

◆ ICV_INIT_VALUE [2/2]

#define ICV_INIT_VALUE ( Enum,
Name )
Value:
constexpr auto Enum = omp::ICVInitValue::Enum;

Definition at line 36 of file OMPConstants.h.

◆ OMP_DEFAULT_KIND [1/2]

#define OMP_DEFAULT_KIND ( Enum,
Str )
Value:
Enum,

Definition at line 55 of file OMPConstants.h.

◆ OMP_DEFAULT_KIND [2/2]

#define OMP_DEFAULT_KIND ( Enum,
... )
Value:
constexpr auto Enum = omp::DefaultKind::Enum;

Definition at line 55 of file OMPConstants.h.

◆ OMP_IDENT_FLAG [1/2]

#define OMP_IDENT_FLAG ( Enum,
Str,
Value )
Value:
Enum = Value,

Definition at line 66 of file OMPConstants.h.

◆ OMP_IDENT_FLAG [2/2]

#define OMP_IDENT_FLAG ( Enum,
... )
Value:
constexpr auto Enum = omp::IdentFlag::Enum;

Definition at line 66 of file OMPConstants.h.

◆ OMP_KERNEL_ARG_MIN_VERSION_WITH_DYN_PTR

#define OMP_KERNEL_ARG_MIN_VERSION_WITH_DYN_PTR   3

Definition at line 78 of file OMPConstants.h.

◆ OMP_KERNEL_ARG_VERSION

#define OMP_KERNEL_ARG_VERSION   3

Definition at line 75 of file OMPConstants.h.

◆ OMP_RTL [1/2]

#define OMP_RTL ( Enum,
... )
Value:
Enum,

Definition at line 46 of file OMPConstants.h.

◆ OMP_RTL [2/2]

#define OMP_RTL ( Enum,
... )
Value:
constexpr auto Enum = omp::RuntimeFunction::Enum;

Definition at line 46 of file OMPConstants.h.