LLVM 24.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   5
#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::OMPDynGroupprivateFallbackType : uint64_t { llvm::omp::Abort = 0 , llvm::omp::Null = 1 , llvm::omp::DefaultMem = 2 }
 The fallback types for the dyn_groupprivate clause. More...
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_ATTACH = 0x4000 , llvm::omp::OMP_MAP_FB_NULLIFY = 0x8000 ,
  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::OMPSyncHint : uint64_t {
  llvm::omp::None = 0 , llvm::omp::Uncontended = 1 << 0 , llvm::omp::Contended = 1 << 1 , llvm::omp::Nonspeculative = 1 << 2 ,
  llvm::omp::Speculative = 1 << 3 , llvm::omp::KmpHLE = 1 << 16 , llvm::omp::KmpRTM = 1 << 17 , llvm::omp::KmpAdaptive = 1 << 18 ,
  llvm::omp::OMPXFastFPAtomics = 1 << 19 , llvm::omp::OMPXSafeFPAtomics = 1 << 20
}
 Values of omp_sync_hint_t, including the kmp_ and ompx_ extensions. 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 char * llvm::omp::OmpDefaultMapperName = "_omp_default_mapper"
constexpr unsigned llvm::omp::DefaultPartialUnrollFactor = 2
 Unroll factor for a partial unroll without an explicit factor, when the unrolled loop must be materialized.

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   5

Definition at line 75 of file OMPConstants.h.

Referenced by llvm::OpenMPIRBuilder::getKernelArgsVector().

◆ 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.