LLVM 22.0.0git
|
Classes | |
struct | AssumptionClauseMappingInfo |
Helper to describe assume clauses. More... | |
struct | DirectiveNameParser |
Parser class for OpenMP directive names. More... | |
struct | GV |
Defines various target-specific GPU grid values that must be consistent between host RTL (plugin), device RTL, and clang. More... | |
struct | OMPContext |
The context for a source location is made up of active property traits, e.g., device={kind(host)}, and constructs traits which describe the nesting in OpenMP constructs at the location. More... | |
struct | VariantMatchInfo |
Variant match information describes the required traits and how they are scored (via the ScoresMap). More... | |
Typedefs | |
using | Kernel = Function * |
Summary of a kernel (=entry point for target offloading). | |
using | KernelSet = SetVector< Kernel > |
Set of kernels in the module. | |
Enumerations | |
enum class | InternalControlVar { ICV_DATA_ENV } |
IDs for all Internal Control Variables (ICVs). More... | |
enum class | ICVInitValue { ICV_INIT_VALUE } |
enum class | RuntimeFunction { OMP_RTL } |
IDs for all omp runtime library (RTL) functions. More... | |
enum class | DefaultKind { OMP_DEFAULT_KIND } |
IDs for the different default kinds. More... | |
enum class | IdentFlag { OMP_IDENT_FLAG } |
IDs for all omp runtime library ident_t flag encodings (see their defintion in openmp/runtime/src/kmp.h). More... | |
enum class | OMPScheduleType { None = 0 , BaseStaticChunked = 1 , BaseStatic = 2 , BaseDynamicChunked = 3 , BaseGuidedChunked = 4 , BaseRuntime = 5 , BaseAuto = 6 , BaseTrapezoidal = 7 , BaseGreedy = 8 , BaseBalanced = 9 , BaseGuidedIterativeChunked = 10 , BaseGuidedAnalyticalChunked = 11 , BaseSteal = 12 , BaseStaticBalancedChunked = 13 , BaseGuidedSimd = 14 , BaseRuntimeSimd = 15 , BaseDistributeChunked = 27 , BaseDistribute = 28 , ModifierUnordered = (1 << 5) , ModifierOrdered = (1 << 6) , ModifierNomerge = (1 << 7) , ModifierMonotonic = (1 << 29) , ModifierNonmonotonic = (1 << 30) , OrderingMask = ModifierUnordered | ModifierOrdered | ModifierNomerge , MonotonicityMask = ModifierMonotonic | ModifierNonmonotonic , ModifierMask = OrderingMask | MonotonicityMask , UnorderedStaticChunked = BaseStaticChunked | ModifierUnordered , UnorderedStatic = BaseStatic | ModifierUnordered , UnorderedDynamicChunked = BaseDynamicChunked | ModifierUnordered , UnorderedGuidedChunked = BaseGuidedChunked | ModifierUnordered , UnorderedRuntime = BaseRuntime | ModifierUnordered , UnorderedAuto = BaseAuto | ModifierUnordered , UnorderedTrapezoidal = BaseTrapezoidal | ModifierUnordered , UnorderedGreedy = BaseGreedy | ModifierUnordered , UnorderedBalanced = BaseBalanced | ModifierUnordered , UnorderedGuidedIterativeChunked , UnorderedGuidedAnalyticalChunked , UnorderedSteal = BaseSteal | ModifierUnordered , UnorderedStaticBalancedChunked , UnorderedGuidedSimd = BaseGuidedSimd | ModifierUnordered , UnorderedRuntimeSimd = BaseRuntimeSimd | ModifierUnordered , OrderedStaticChunked = BaseStaticChunked | ModifierOrdered , OrderedStatic = BaseStatic | ModifierOrdered , OrderedDynamicChunked = BaseDynamicChunked | ModifierOrdered , OrderedGuidedChunked = BaseGuidedChunked | ModifierOrdered , OrderedRuntime = BaseRuntime | ModifierOrdered , OrderedAuto = BaseAuto | ModifierOrdered , OrderdTrapezoidal = BaseTrapezoidal | ModifierOrdered , OrderedDistributeChunked = BaseDistributeChunked | ModifierOrdered , OrderedDistribute = BaseDistribute | ModifierOrdered , NomergeUnorderedStaticChunked , NomergeUnorderedStatic , NomergeUnorderedDynamicChunked , NomergeUnorderedGuidedChunked , NomergeUnorderedRuntime , NomergeUnorderedAuto = BaseAuto | ModifierUnordered | ModifierNomerge , NomergeUnorderedTrapezoidal , NomergeUnorderedGreedy , NomergeUnorderedBalanced , NomergeUnorderedGuidedIterativeChunked , NomergeUnorderedGuidedAnalyticalChunked , NomergeUnorderedSteal , NomergeOrderedStaticChunked , NomergeOrderedStatic = BaseStatic | ModifierOrdered | ModifierNomerge , NomergeOrderedDynamicChunked , NomergeOrderedGuidedChunked , NomergeOrderedRuntime , NomergeOrderedAuto = BaseAuto | ModifierOrdered | ModifierNomerge , NomergeOrderedTrapezoidal } |
enum class | OpenMPOffloadMappingFlags : uint64_t { OMP_MAP_NONE = 0x0 , OMP_MAP_TO = 0x01 , OMP_MAP_FROM = 0x02 , OMP_MAP_ALWAYS = 0x04 , OMP_MAP_DELETE = 0x08 , OMP_MAP_PTR_AND_OBJ = 0x10 , OMP_MAP_TARGET_PARAM = 0x20 , OMP_MAP_RETURN_PARAM = 0x40 , OMP_MAP_PRIVATE = 0x80 , OMP_MAP_LITERAL = 0x100 , OMP_MAP_IMPLICIT = 0x200 , OMP_MAP_CLOSE = 0x400 , OMP_MAP_PRESENT = 0x1000 , OMP_MAP_OMPX_HOLD = 0x2000 , OMP_MAP_NON_CONTIG = 0x100000000000 , OMP_MAP_MEMBER_OF = 0xffff000000000000 } |
Values for bit flags used to specify the mapping type for offloading. More... | |
enum | OpenMPOffloadingReservedDeviceIDs { OMP_DEVICEID_UNDEF = -1 } |
enum class | AddressSpace : unsigned { Generic = 0 , Global = 1 , Shared = 3 , Constant = 4 , Local = 5 } |
enum class | OMPInteropType { Unknown , Target , TargetSync } |
enum class | OMPAtomicCompareOp : unsigned { EQ , MIN , MAX } |
Atomic compare operations. Currently OpenMP only supports ==, >, and <. More... | |
enum class | RTLDependInfoFields { BaseAddr , Len , Flags } |
Fields ids in kmp_depend_info record. More... | |
enum class | RTLDependenceKindTy { DepUnknown = 0x0 , DepIn = 0x01 , DepInOut = 0x3 , DepMutexInOutSet = 0x4 , DepInOutSet = 0x8 , DepOmpAllMem = 0x80 } |
Dependence kind for RTL. More... | |
enum class | WorksharingLoopType { ForStaticLoop , DistributeStaticLoop , DistributeForStaticLoop } |
A type of worksharing loop construct. More... | |
enum class | TraitSet { OMP_TRAIT_SET } |
OpenMP Context related IDs and helpers. More... | |
enum class | TraitSelector { OMP_TRAIT_SELECTOR } |
IDs for all OpenMP context selector trait (device={kind/isa...}/...). More... | |
enum class | TraitProperty { OMP_TRAIT_PROPERTY , OMP_LAST_TRAIT_PROPERTY } |
IDs for all OpenMP context trait properties (host/gpu/bsc/llvm/...) More... | |
enum | OMPTgtExecModeFlags : unsigned char { OMP_TGT_EXEC_MODE_BARE = 0 , OMP_TGT_EXEC_MODE_GENERIC = 1 << 0 , OMP_TGT_EXEC_MODE_SPMD = 1 << 1 , OMP_TGT_EXEC_MODE_GENERIC_SPMD , OMP_TGT_EXEC_MODE_SPMD_NO_LOOP = 1 << 2 | OMP_TGT_EXEC_MODE_SPMD } |
Functions | |
LLVM_ABI ArrayRef< Directive > | getLeafConstructs (Directive D) |
LLVM_ABI ArrayRef< Directive > | getLeafConstructsOrSelf (Directive D) |
LLVM_ABI ArrayRef< Directive > | getLeafOrCompositeConstructs (Directive D, SmallVectorImpl< Directive > &Output) |
LLVM_ABI Directive | getCompoundConstruct (ArrayRef< Directive > Parts) |
LLVM_ABI bool | isLeafConstruct (Directive D) |
LLVM_ABI bool | isCompositeConstruct (Directive D) |
LLVM_ABI bool | isCombinedConstruct (Directive D) |
static constexpr bool | canHaveIterator (Clause C) |
Can clause C have an iterator-modifier. | |
static constexpr bool | isPrivatizingClause (Clause C) |
LLVM_ABI ArrayRef< unsigned > | getOpenMPVersions () |
bool | isPrivatizingConstruct (Directive D, unsigned Version) |
Can directive D, under some circumstances, create a private copy of a variable in given OpenMP version? | |
LLVM_ABI std::string | prettifyFunctionName (StringRef FunctionName) |
Create a nicer version of a function name for humans to look at. | |
LLVM_ABI std::string | deconstructOpenMPKernelName (StringRef KernelName, unsigned &LineNo) |
Deconstruct an OpenMP kernel name into the parent function name and the line number. | |
std::string | getAllAssumeClauseOptions () |
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE () | |
LLVM_ABI TraitSet | getOpenMPContextTraitSetKind (StringRef Str) |
Parse Str and return the trait set it matches or TraitSet::invalid. | |
LLVM_ABI TraitSet | getOpenMPContextTraitSetForSelector (TraitSelector Selector) |
Return the trait set for which Selector is a selector. | |
LLVM_ABI TraitSet | getOpenMPContextTraitSetForProperty (TraitProperty Property) |
Return the trait set for which Property is a property. | |
LLVM_ABI StringRef | getOpenMPContextTraitSetName (TraitSet Kind) |
Return a textual representation of the trait set Kind . | |
LLVM_ABI TraitSelector | getOpenMPContextTraitSelectorKind (StringRef Str, TraitSet Set) |
Parse Str and return the trait set it matches or TraitSelector::invalid. | |
LLVM_ABI TraitSelector | getOpenMPContextTraitSelectorForProperty (TraitProperty Property) |
Return the trait selector for which Property is a property. | |
LLVM_ABI StringRef | getOpenMPContextTraitSelectorName (TraitSelector Kind) |
Return a textual representation of the trait selector Kind . | |
LLVM_ABI TraitProperty | getOpenMPContextTraitPropertyKind (TraitSet Set, TraitSelector Selector, StringRef Str) |
Parse Str and return the trait property it matches in the set Set and selector Selector or TraitProperty::invalid. | |
LLVM_ABI TraitProperty | getOpenMPContextTraitPropertyForSelector (TraitSelector Selector) |
Return the trait property for a singleton selector Selector . | |
LLVM_ABI StringRef | getOpenMPContextTraitPropertyName (TraitProperty Kind, StringRef RawString) |
Return a textual representation of the trait property Kind , which might be the raw string we parsed (RawString ) if we do not translate the property into a (distinct) enum. | |
LLVM_ABI StringRef | getOpenMPContextTraitPropertyFullName (TraitProperty Kind) |
Return a textual representation of the trait property Kind with selector and set name included. | |
LLVM_ABI std::string | listOpenMPContextTraitSets () |
Return a string listing all trait sets. | |
LLVM_ABI std::string | listOpenMPContextTraitSelectors (TraitSet Set) |
Return a string listing all trait selectors for Set . | |
LLVM_ABI std::string | listOpenMPContextTraitProperties (TraitSet Set, TraitSelector Selector) |
Return a string listing all trait properties for Set and Selector . | |
LLVM_ABI bool | isValidTraitSelectorForTraitSet (TraitSelector Selector, TraitSet Set, bool &AllowsTraitScore, bool &RequiresProperty) |
} | |
LLVM_ABI bool | isValidTraitPropertyForTraitSetAndSelector (TraitProperty Property, TraitSelector Selector, TraitSet Set) |
Return true if Property can be nested in Selector and Set . | |
LLVM_ABI bool | isVariantApplicableInContext (const VariantMatchInfo &VMI, const OMPContext &Ctx, bool DeviceOrImplementationSetOnly=false) |
Return true if VMI is applicable in Ctx , that is, all traits required by VMI are available in the OpenMP context Ctx . | |
LLVM_ABI int | getBestVariantMatchForContext (const SmallVectorImpl< VariantMatchInfo > &VMIs, const OMPContext &Ctx) |
Return the index (into VMIs ) of the variant with the highest score from the ones applicable in Ctx . | |
template<unsigned wavesize> | |
constexpr const GV & | getAMDGPUGridValues () |
bool | containsOpenMP (Module &M) |
Helper to determine if M contains OpenMP. | |
bool | isOpenMPDevice (Module &M) |
Helper to determine if M is a OpenMP target offloading device module. | |
bool | isOpenMPKernel (Function &Fn) |
Return true iff Fn is an OpenMP GPU kernel; Fn has the "kernel" attribute. | |
KernelSet | getDeviceKernels (Module &M) |
Get OpenMP device kernels in M . | |
Variables | |
static constexpr unsigned | FallbackVersion = 52 |
static constexpr AssumptionClauseMappingInfo | AssumptionClauseMappings [] |
All known assume clauses. | |
constexpr const char * | OmpDefaultMapperName = ".omp.default.mapper" |
static constexpr GV | AMDGPUGridValues64 |
For AMDGPU GPUs. | |
static constexpr GV | AMDGPUGridValues32 |
static constexpr GV | NVPTXGridValues |
For Nvidia GPUs. | |
static constexpr GV | SPIRVGridValues |
For generic SPIR-V GPUs. | |
using llvm::omp::Kernel = typedef Function * |
Summary of a kernel (=entry point for target offloading).
Definition at line 21 of file OpenMPOpt.h.
using llvm::omp::KernelSet = typedef SetVector<Kernel> |
Set of kernels in the module.
Definition at line 24 of file OpenMPOpt.h.
|
strong |
Enumerator | |
---|---|
Generic | |
Global | |
Shared | |
Constant | |
Local |
Definition at line 258 of file OMPConstants.h.
|
strong |
IDs for the different default kinds.
Enumerator | |
---|---|
OMP_DEFAULT_KIND |
Definition at line 54 of file OMPConstants.h.
|
strong |
Enumerator | |
---|---|
ICV_INIT_VALUE |
Definition at line 35 of file OMPConstants.h.
|
strong |
IDs for all omp runtime library ident_t flag encodings (see their defintion in openmp/runtime/src/kmp.h).
Enumerator | |
---|---|
OMP_IDENT_FLAG |
Definition at line 65 of file OMPConstants.h.
|
strong |
IDs for all Internal Control Variables (ICVs).
Enumerator | |
---|---|
ICV_DATA_ENV |
Definition at line 26 of file OMPConstants.h.
|
strong |
Atomic compare operations. Currently OpenMP only supports ==, >, and <.
Enumerator | |
---|---|
EQ | |
MIN | |
MAX |
Definition at line 270 of file OMPConstants.h.
|
strong |
Enumerator | |
---|---|
Unknown | |
Target | |
TargetSync |
Definition at line 267 of file OMPConstants.h.
|
strong |
Definition at line 82 of file OMPConstants.h.
Enumerator | |
---|---|
OMP_TGT_EXEC_MODE_BARE | |
OMP_TGT_EXEC_MODE_GENERIC | |
OMP_TGT_EXEC_MODE_SPMD | |
OMP_TGT_EXEC_MODE_GENERIC_SPMD | |
OMP_TGT_EXEC_MODE_SPMD_NO_LOOP |
Definition at line 21 of file OMPDeviceConstants.h.
Enumerator | |
---|---|
OMP_DEVICEID_UNDEF | Device ID if the device was not defined, runtime should get it from environment variables in the spec. |
Definition at line 252 of file OMPConstants.h.
|
strong |
Values for bit flags used to specify the mapping type for offloading.
Enumerator | |
---|---|
OMP_MAP_NONE | No flags. |
OMP_MAP_TO | Allocate memory on the device and move data from host to device. |
OMP_MAP_FROM | Allocate memory on the device and move data from device to host. |
OMP_MAP_ALWAYS | Always perform the requested mapping action on the element, even if it was already mapped before. |
OMP_MAP_DELETE | Delete the element from the device environment, ignoring the current reference count associated with the element. |
OMP_MAP_PTR_AND_OBJ | The element being mapped is a pointer-pointee pair; both the pointer and the pointee should be mapped. |
OMP_MAP_TARGET_PARAM | This flags signals that the base address of an entry should be passed to the target kernel as an argument. |
OMP_MAP_RETURN_PARAM | Signal that the runtime library has to return the device pointer in the current position for the data being mapped. Used when we have the use_device_ptr or use_device_addr clause. |
OMP_MAP_PRIVATE | This flag signals that the reference being passed is a pointer to private data. |
OMP_MAP_LITERAL | Pass the element to the device by value. |
OMP_MAP_IMPLICIT | Implicit map. |
OMP_MAP_CLOSE | Close is a hint to the runtime to allocate memory close to the target device. |
OMP_MAP_PRESENT | 0x800 is reserved for compatibility with XLC. Produce a runtime error if the data is not already allocated. |
OMP_MAP_OMPX_HOLD | |
OMP_MAP_NON_CONTIG | Signal that the runtime library should use args as an array of descriptor_dim pointers and use args_size as dims. Used when we have non-contiguous list items in target update directive |
OMP_MAP_MEMBER_OF | The 16 MSBs of the flags indicate whether the entry is member of some struct/class. |
Definition at line 198 of file OMPConstants.h.
|
strong |
Dependence kind for RTL.
Enumerator | |
---|---|
DepUnknown | |
DepIn | |
DepInOut | |
DepMutexInOutSet | |
DepInOutSet | |
DepOmpAllMem |
Definition at line 276 of file OMPConstants.h.
|
strong |
Fields ids in kmp_depend_info record.
Enumerator | |
---|---|
BaseAddr | |
Len | |
Flags |
Definition at line 273 of file OMPConstants.h.
|
strong |
IDs for all omp runtime library (RTL) functions.
Enumerator | |
---|---|
OMP_RTL |
Definition at line 45 of file OMPConstants.h.
|
strong |
IDs for all OpenMP context trait properties (host/gpu/bsc/llvm/...)
Enumerator | |
---|---|
OMP_TRAIT_PROPERTY | |
OMP_LAST_TRAIT_PROPERTY |
Definition at line 46 of file OMPContext.h.
|
strong |
IDs for all OpenMP context selector trait (device={kind/isa...}/...).
Enumerator | |
---|---|
OMP_TRAIT_SELECTOR |
Definition at line 40 of file OMPContext.h.
|
strong |
OpenMP Context related IDs and helpers.
{ IDs for all OpenMP context selector trait sets (construct/device/...).
Enumerator | |
---|---|
OMP_TRAIT_SET |
Definition at line 34 of file OMPContext.h.
|
strong |
A type of worksharing loop construct.
Enumerator | |
---|---|
ForStaticLoop | |
DistributeStaticLoop | |
DistributeForStaticLoop |
Definition at line 286 of file OMPConstants.h.
Can clause C have an iterator-modifier.
Definition at line 37 of file OMP.h.
References llvm::CallingConv::C.
Helper to determine if M
contains OpenMP.
Definition at line 5922 of file OpenMPOpt.cpp.
Referenced by llvm::OpenMPOptCGSCCPass::run(), and llvm::OpenMPOptPass::run().
Deconstruct an OpenMP kernel name into the parent function name and the line number.
Definition at line 245 of file OMP.cpp.
References llvm::demangle(), llvm::StringRef::drop_front(), llvm::StringRef::drop_while(), I, llvm::TargetRegionEntryInfo::KernelNamePrefix, llvm::StringRef::npos, llvm::StringRef::rfind(), and llvm::StringRef::starts_with().
Referenced by prettifyFunctionName().
|
inline |
Definition at line 44 of file OMPAssume.h.
References AssumptionClauseMappings.
Definition at line 107 of file OMPGridValues.h.
References AMDGPUGridValues32, and AMDGPUGridValues64.
int llvm::omp::getBestVariantMatchForContext | ( | const SmallVectorImpl< VariantMatchInfo > & | VMIs, |
const OMPContext & | Ctx | ||
) |
Return the index (into VMIs
) of the variant with the highest score from the ones applicable in Ctx
.
See llvm::isVariantApplicableInContext.
Definition at line 413 of file OMPContext.cpp.
References llvm::APInt::eq(), getVariantMatchScore(), isStrictSubset(), isVariantApplicableInContextHelper(), llvm::SmallVectorBase< Size_T >::size(), and llvm::APInt::ult().
Definition at line 147 of file OMP.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::ArrayRef< T >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::ArrayRef< T >::drop_front(), llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), getLeafConstructs(), P, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by getLeafOrCompositeConstructs().
Get OpenMP device kernels in M
.
Definition at line 5904 of file OpenMPOpt.cpp.
References F, and isOpenMPKernel().
Referenced by llvm::OpenMPOptPass::run().
Definition at line 101 of file OMP.cpp.
Referenced by getCompoundConstruct(), getLeafConstructsOrSelf(), isCombinedConstruct(), and isLeafConstruct().
Definition at line 109 of file OMP.cpp.
References assert(), D, getLeafConstructs(), and Idx.
Referenced by getLeafOrCompositeConstructs(), and isCompositeConstruct().
ArrayRef< Directive > llvm::omp::getLeafOrCompositeConstructs | ( | Directive | D, |
SmallVectorImpl< Directive > & | Output | ||
) |
Definition at line 120 of file OMP.cpp.
References assert(), llvm::ArrayRef< T >::begin(), D, llvm::ArrayRef< T >::end(), getCompoundConstruct(), getFirstCompositeRange(), getLeafConstructsOrSelf(), llvm::make_range(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Range.
TraitProperty llvm::omp::getOpenMPContextTraitPropertyForSelector | ( | TraitSelector | Selector | ) |
Return the trait property for a singleton selector Selector
.
Definition at line 538 of file OMPContext.cpp.
References llvm::StringSwitch< T, R >::Default(), and getOpenMPContextTraitSelectorName().
StringRef llvm::omp::getOpenMPContextTraitPropertyFullName | ( | TraitProperty | Kind | ) |
Return a textual representation of the trait property Kind
with selector and set name included.
Definition at line 562 of file OMPContext.cpp.
References llvm_unreachable.
Referenced by llvm::omp::OMPContext::OMPContext().
TraitProperty llvm::omp::getOpenMPContextTraitPropertyKind | ( | TraitSet | Set, |
TraitSelector | Selector, | ||
StringRef | Str | ||
) |
Parse Str
and return the trait property it matches in the set Set
and selector Selector
or TraitProperty::invalid.
Definition at line 522 of file OMPContext.cpp.
StringRef llvm::omp::getOpenMPContextTraitPropertyName | ( | TraitProperty | Kind, |
StringRef | RawString | ||
) |
Return a textual representation of the trait property Kind
, which might be the raw string we parsed (RawString
) if we do not translate the property into a (distinct) enum.
Definition at line 548 of file OMPContext.cpp.
References llvm_unreachable.
Referenced by isVariantApplicableInContextHelper().
TraitSelector llvm::omp::getOpenMPContextTraitSelectorForProperty | ( | TraitProperty | Property | ) |
Return the trait selector for which Property
is a property.
Definition at line 503 of file OMPContext.cpp.
References llvm_unreachable.
Referenced by getVariantMatchScore(), and isVariantApplicableInContextHelper().
TraitSelector llvm::omp::getOpenMPContextTraitSelectorKind | ( | StringRef | Str, |
TraitSet | Set | ||
) |
Parse Str
and return the trait set it matches or TraitSelector::invalid.
Definition at line 488 of file OMPContext.cpp.
References llvm::StringSwitch< T, R >::Default().
StringRef llvm::omp::getOpenMPContextTraitSelectorName | ( | TraitSelector | Kind | ) |
Return a textual representation of the trait selector Kind
.
Definition at line 512 of file OMPContext.cpp.
References llvm_unreachable.
Referenced by getOpenMPContextTraitPropertyForSelector().
TraitSet llvm::omp::getOpenMPContextTraitSetForProperty | ( | TraitProperty | Property | ) |
Return the trait set for which Property
is a property.
Definition at line 469 of file OMPContext.cpp.
References llvm_unreachable.
Referenced by llvm::omp::OMPContext::addTrait(), llvm::omp::VariantMatchInfo::addTrait(), getVariantMatchScore(), and isVariantApplicableInContextHelper().
TraitSet llvm::omp::getOpenMPContextTraitSetForSelector | ( | TraitSelector | Selector | ) |
Return the trait set for which Selector
is a selector.
Definition at line 459 of file OMPContext.cpp.
References llvm_unreachable.
Parse Str
and return the trait set it matches or TraitSet::invalid.
Definition at line 451 of file OMPContext.cpp.
References llvm::StringSwitch< T, R >::Default().
Return a textual representation of the trait set Kind
.
Definition at line 478 of file OMPContext.cpp.
References llvm_unreachable.
Definition at line 214 of file OMP.cpp.
Referenced by llvm::omp::DirectiveNameParser::DirectiveNameParser().
Definition at line 208 of file OMP.cpp.
References D, getLeafConstructs(), and isCompositeConstruct().
Definition at line 200 of file OMP.cpp.
References llvm::ArrayRef< T >::begin(), D, llvm::ArrayRef< T >::end(), getFirstCompositeRange(), getLeafConstructsOrSelf(), Range, and llvm::ArrayRef< T >::size().
Referenced by isCombinedConstruct().
Definition at line 198 of file OMP.cpp.
References D, and getLeafConstructs().
Helper to determine if M
is a OpenMP target offloading device module.
Definition at line 5930 of file OpenMPOpt.cpp.
Referenced by llvm::OpenMPOptCGSCCPass::run(), and llvm::OpenMPOptPass::run().
Return true iff Fn
is an OpenMP GPU kernel; Fn
has the "kernel" attribute.
Definition at line 5900 of file OpenMPOpt.cpp.
References llvm::Function::hasFnAttribute().
Referenced by getDeviceKernels().
Definition at line 52 of file OMP.h.
References llvm::CallingConv::C.
Referenced by collectPrivatizingConstructs().
Can directive D, under some circumstances, create a private copy of a variable in given OpenMP version?
Definition at line 219 of file OMP.cpp.
References collectPrivatizingConstructs(), D, llvm::is_contained(), and llvm::Version.
bool llvm::omp::isValidTraitPropertyForTraitSetAndSelector | ( | TraitProperty | Property, |
TraitSelector | Selector, | ||
TraitSet | Set | ||
) |
Return true if Property
can be nested in Selector
and Set
.
Definition at line 588 of file OMPContext.cpp.
References llvm_unreachable.
bool llvm::omp::isValidTraitSelectorForTraitSet | ( | TraitSelector | Selector, |
TraitSet | Set, | ||
bool & | AllowsTraitScore, | ||
bool & | RequiresProperty | ||
) |
}
Return true if Selector
can be nested in Set
. Also sets AllowsTraitScore
and RequiresProperty
to true/false if the user can specify a score for properties in Selector
and if the Selector
requires at least one property.
Definition at line 572 of file OMPContext.cpp.
References llvm_unreachable.
bool llvm::omp::isVariantApplicableInContext | ( | const VariantMatchInfo & | VMI, |
const OMPContext & | Ctx, | ||
bool | DeviceOrImplementationSetOnly = false |
||
) |
Return true if VMI
is applicable in Ctx
, that is, all traits required by VMI
are available in the OpenMP context Ctx
.
If DeviceOrImplementationSetOnly
is true, only the device and implementation selector set, if present, are checked. Note that we still honor extension traits provided by the user.
Definition at line 322 of file OMPContext.cpp.
References isVariantApplicableInContextHelper().
std::string llvm::omp::listOpenMPContextTraitProperties | ( | TraitSet | Set, |
TraitSelector | Selector | ||
) |
Return a string listing all trait properties for Set
and Selector
.
Definition at line 621 of file OMPContext.cpp.
std::string llvm::omp::listOpenMPContextTraitSelectors | ( | TraitSet | Set | ) |
Return a string listing all trait selectors for Set
.
Definition at line 610 of file OMPContext.cpp.
std::string llvm::omp::listOpenMPContextTraitSets | ( | ) |
Return a string listing all trait sets.
Definition at line 600 of file OMPContext.cpp.
llvm::omp::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE | ( | ) |
std::string llvm::omp::prettifyFunctionName | ( | StringRef | FunctionName | ) |
Create a nicer version of a function name for humans to look at.
Definition at line 231 of file OMP.cpp.
References deconstructOpenMPKernelName(), llvm::StringRef::drop_back(), llvm::StringRef::ends_with(), and llvm::StringRef::str().
|
staticconstexpr |
Definition at line 97 of file OMPGridValues.h.
Referenced by getAMDGPUGridValues().
|
staticconstexpr |
For AMDGPU GPUs.
Definition at line 87 of file OMPGridValues.h.
Referenced by getAMDGPUGridValues().
|
staticconstexpr |
All known assume clauses.
Definition at line 37 of file OMPAssume.h.
Referenced by getAllAssumeClauseOptions().
|
staticconstexpr |
|
staticconstexpr |
For Nvidia GPUs.
Definition at line 113 of file OMPGridValues.h.
Referenced by getGridValue().
Definition at line 194 of file OMPConstants.h.
|
staticconstexpr |
For generic SPIR-V GPUs.
Definition at line 124 of file OMPGridValues.h.
Referenced by getGridValue().