LLVM 22.0.0git
|
Classes | |
struct | TypePairAndMemDesc |
Functions | |
template<typename Predicate> | |
Predicate | predNot (Predicate P) |
True iff P is false. | |
template<typename Predicate> | |
Predicate | all (Predicate P0, Predicate P1) |
True iff P0 and P1 are true. | |
template<typename Predicate, typename... Args> | |
Predicate | all (Predicate P0, Predicate P1, Args... args) |
True iff all given predicates are true. | |
template<typename Predicate> | |
Predicate | any (Predicate P0, Predicate P1) |
True iff P0 or P1 are true. | |
template<typename Predicate, typename... Args> | |
Predicate | any (Predicate P0, Predicate P1, Args... args) |
True iff any given predicates are true. | |
LLVM_ABI LegalityPredicate | typeIs (unsigned TypeIdx, LLT TypesInit) |
True iff the given type index is the specified type. | |
LLVM_ABI LegalityPredicate | typeInSet (unsigned TypeIdx, std::initializer_list< LLT > TypesInit) |
True iff the given type index is one of the specified types. | |
LegalityPredicate | typeIsNot (unsigned TypeIdx, LLT Type) |
True iff the given type index is not the specified type. | |
LLVM_ABI LegalityPredicate | typePairInSet (unsigned TypeIdx0, unsigned TypeIdx1, std::initializer_list< std::pair< LLT, LLT > > TypesInit) |
True iff the given types for the given pair of type indexes is one of the specified type pairs. | |
LLVM_ABI LegalityPredicate | typeTupleInSet (unsigned TypeIdx0, unsigned TypeIdx1, unsigned Type2, std::initializer_list< std::tuple< LLT, LLT, LLT > > TypesInit) |
True iff the given types for the given tuple of type indexes is one of the specified type tuple. | |
LLVM_ABI LegalityPredicate | typePairAndMemDescInSet (unsigned TypeIdx0, unsigned TypeIdx1, unsigned MMOIdx, std::initializer_list< TypePairAndMemDesc > TypesAndMemDescInit) |
True iff the given types for the given pair of type indexes is one of the specified type pairs. | |
LLVM_ABI LegalityPredicate | isScalar (unsigned TypeIdx) |
True iff the specified type index is a scalar. | |
LLVM_ABI LegalityPredicate | isVector (unsigned TypeIdx) |
True iff the specified type index is a vector. | |
LLVM_ABI LegalityPredicate | isPointer (unsigned TypeIdx) |
True iff the specified type index is a pointer (with any address space). | |
LLVM_ABI LegalityPredicate | isPointer (unsigned TypeIdx, unsigned AddrSpace) |
True iff the specified type index is a pointer with the specified address space. | |
LLVM_ABI LegalityPredicate | isPointerVector (unsigned TypeIdx) |
True iff the specified type index is a vector of pointers (with any address space). | |
LLVM_ABI LegalityPredicate | elementTypeIs (unsigned TypeIdx, LLT EltTy) |
True if the type index is a vector with element type EltTy . | |
LLVM_ABI LegalityPredicate | scalarNarrowerThan (unsigned TypeIdx, unsigned Size) |
True iff the specified type index is a scalar that's narrower than the given size. | |
LLVM_ABI LegalityPredicate | scalarWiderThan (unsigned TypeIdx, unsigned Size) |
True iff the specified type index is a scalar that's wider than the given size. | |
LLVM_ABI LegalityPredicate | scalarOrEltNarrowerThan (unsigned TypeIdx, unsigned Size) |
True iff the specified type index is a scalar or vector with an element type that's narrower than the given size. | |
LLVM_ABI LegalityPredicate | scalarOrEltWiderThan (unsigned TypeIdx, unsigned Size) |
True iff the specified type index is a scalar or a vector with an element type that's wider than the given size. | |
LLVM_ABI LegalityPredicate | sizeNotMultipleOf (unsigned TypeIdx, unsigned Size) |
True iff the specified type index is a scalar whose size is not a multiple of Size. | |
LLVM_ABI LegalityPredicate | sizeNotPow2 (unsigned TypeIdx) |
True iff the specified type index is a scalar whose size is not a power of. | |
LLVM_ABI LegalityPredicate | scalarOrEltSizeNotPow2 (unsigned TypeIdx) |
True iff the specified type index is a scalar or vector whose element size is not a power of 2. | |
LLVM_ABI LegalityPredicate | sizeIs (unsigned TypeIdx, unsigned Size) |
True if the total bitwidth of the specified type index is Size bits. | |
LLVM_ABI LegalityPredicate | sameSize (unsigned TypeIdx0, unsigned TypeIdx1) |
True iff the specified type indices are both the same bit size. | |
LLVM_ABI LegalityPredicate | largerThan (unsigned TypeIdx0, unsigned TypeIdx1) |
True iff the first type index has a larger total bit size than second type index. | |
LLVM_ABI LegalityPredicate | smallerThan (unsigned TypeIdx0, unsigned TypeIdx1) |
True iff the first type index has a smaller total bit size than second type index. | |
LLVM_ABI LegalityPredicate | memSizeInBytesNotPow2 (unsigned MMOIdx) |
True iff the specified MMO index has a size (rounded to bytes) that is not a power of 2. | |
LLVM_ABI LegalityPredicate | memSizeNotByteSizePow2 (unsigned MMOIdx) |
True iff the specified MMO index has a size that is not an even byte size, or that even byte size is not a power of 2. | |
LLVM_ABI LegalityPredicate | numElementsNotPow2 (unsigned TypeIdx) |
True iff the specified type index is a vector whose element count is not a power of 2. | |
LLVM_ABI LegalityPredicate | atomicOrderingAtLeastOrStrongerThan (unsigned MMOIdx, AtomicOrdering Ordering) |
True iff the specified MMO index has at an atomic ordering of at Ordering or stronger. |
True iff P0 and P1 are true.
Definition at line 233 of file LegalizerInfo.h.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), all(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::PPCLegalizerInfo::PPCLegalizerInfo(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), typeIsLegalBoolVec(), typeIsLegalIntOrFPVec(), and typeIsLegalPtrVec().
Predicate llvm::LegalityPredicates::all | ( | Predicate | P0, |
Predicate | P1, | ||
Args... | args ) |
True iff all given predicates are true.
Definition at line 240 of file LegalizerInfo.h.
True iff P0 or P1 are true.
Definition at line 246 of file LegalizerInfo.h.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), and any().
Predicate llvm::LegalityPredicates::any | ( | Predicate | P0, |
Predicate | P1, | ||
Args... | args ) |
True iff any given predicates are true.
Definition at line 253 of file LegalizerInfo.h.
LegalityPredicate llvm::LegalityPredicates::atomicOrderingAtLeastOrStrongerThan | ( | unsigned | MMOIdx, |
AtomicOrdering | Ordering ) |
True iff the specified MMO index has at an atomic ordering of at Ordering or stronger.
Definition at line 226 of file LegalityPredicates.cpp.
References llvm::isAtLeastOrStrongerThan().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::elementTypeIs | ( | unsigned | TypeIdx, |
LLT | EltTy ) |
True if the type index is a vector with element type EltTy
.
Definition at line 110 of file LegalityPredicates.cpp.
References llvm::LLT::getElementType(), and llvm::LLT::isVector().
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::isPointer | ( | unsigned | TypeIdx | ) |
True iff the specified type index is a pointer (with any address space).
Definition at line 90 of file LegalityPredicates.cpp.
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::isPointer | ( | unsigned | TypeIdx, |
unsigned | AddrSpace ) |
True iff the specified type index is a pointer with the specified address space.
Definition at line 96 of file LegalityPredicates.cpp.
References llvm::LLT::isPointer().
LegalityPredicate llvm::LegalityPredicates::isPointerVector | ( | unsigned | TypeIdx | ) |
True iff the specified type index is a vector of pointers (with any address space).
Definition at line 104 of file LegalityPredicates.cpp.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::isScalar | ( | unsigned | TypeIdx | ) |
True iff the specified type index is a scalar.
Definition at line 78 of file LegalityPredicates.cpp.
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::isVector | ( | unsigned | TypeIdx | ) |
True iff the specified type index is a vector.
Definition at line 84 of file LegalityPredicates.cpp.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::largerThan | ( | unsigned | TypeIdx0, |
unsigned | TypeIdx1 ) |
True iff the first type index has a larger total bit size than second type index.
Definition at line 142 of file LegalityPredicates.cpp.
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::memSizeInBytesNotPow2 | ( | unsigned | MMOIdx | ) |
True iff the specified MMO index has a size (rounded to bytes) that is not a power of 2.
Definition at line 203 of file LegalityPredicates.cpp.
References llvm::has_single_bit().
Referenced by llvm::LegalizeRuleSet::lowerIfMemSizeNotPow2(), and llvm::LegalizeRuleSet::unsupportedIfMemSizeNotPow2().
LegalityPredicate llvm::LegalityPredicates::memSizeNotByteSizePow2 | ( | unsigned | MMOIdx | ) |
True iff the specified MMO index has a size that is not an even byte size, or that even byte size is not a power of 2.
Definition at line 210 of file LegalityPredicates.cpp.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::LLT::getSizeInBytes(), llvm::has_single_bit(), and llvm::LLT::isByteSized().
Referenced by llvm::LegalizeRuleSet::lowerIfMemSizeNotByteSizePow2().
LegalityPredicate llvm::LegalityPredicates::numElementsNotPow2 | ( | unsigned | TypeIdx | ) |
True iff the specified type index is a vector whose element count is not a power of 2.
Definition at line 219 of file LegalityPredicates.cpp.
References llvm::LLT::getNumElements(), llvm::LLT::isFixedVector(), and llvm::isPowerOf2_32().
LegalityPredicate llvm::LegalityPredicates::sameSize | ( | unsigned | TypeIdx0, |
unsigned | TypeIdx1 ) |
True iff the specified type indices are both the same bit size.
Definition at line 195 of file LegalityPredicates.cpp.
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::scalarNarrowerThan | ( | unsigned | TypeIdx, |
unsigned | Size ) |
True iff the specified type index is a scalar that's narrower than the given size.
Definition at line 118 of file LegalityPredicates.cpp.
References llvm::LLT::getSizeInBits(), llvm::LLT::isScalar(), and Size.
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::scalarOrEltNarrowerThan | ( | unsigned | TypeIdx, |
unsigned | Size ) |
True iff the specified type index is a scalar or vector with an element type that's narrower than the given size.
Definition at line 150 of file LegalityPredicates.cpp.
References llvm::LLT::getScalarSizeInBits(), and Size.
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::scalarOrEltSizeNotPow2 | ( | unsigned | TypeIdx | ) |
True iff the specified type index is a scalar or vector whose element size is not a power of 2.
Definition at line 166 of file LegalityPredicates.cpp.
References llvm::LLT::getScalarSizeInBits(), and llvm::isPowerOf2_32().
LegalityPredicate llvm::LegalityPredicates::scalarOrEltWiderThan | ( | unsigned | TypeIdx, |
unsigned | Size ) |
True iff the specified type index is a scalar or a vector with an element type that's wider than the given size.
Definition at line 158 of file LegalityPredicates.cpp.
References llvm::LLT::getScalarSizeInBits(), and Size.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), and llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::scalarWiderThan | ( | unsigned | TypeIdx, |
unsigned | Size ) |
True iff the specified type index is a scalar that's wider than the given size.
Definition at line 126 of file LegalityPredicates.cpp.
References llvm::LLT::getSizeInBits(), llvm::LLT::isScalar(), and Size.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::sizeIs | ( | unsigned | TypeIdx, |
unsigned | Size ) |
True if the total bitwidth of the specified type index is Size
bits.
Definition at line 189 of file LegalityPredicates.cpp.
References Size.
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::sizeNotMultipleOf | ( | unsigned | TypeIdx, |
unsigned | Size ) |
True iff the specified type index is a scalar whose size is not a multiple of Size.
Definition at line 173 of file LegalityPredicates.cpp.
References llvm::LLT::getSizeInBits(), llvm::LLT::isScalar(), and Size.
LegalityPredicate llvm::LegalityPredicates::sizeNotPow2 | ( | unsigned | TypeIdx | ) |
True iff the specified type index is a scalar whose size is not a power of.
Definition at line 181 of file LegalityPredicates.cpp.
References llvm::LLT::getSizeInBits(), llvm::has_single_bit(), and llvm::LLT::isScalar().
LegalityPredicate llvm::LegalityPredicates::smallerThan | ( | unsigned | TypeIdx0, |
unsigned | TypeIdx1 ) |
True iff the first type index has a smaller total bit size than second type index.
Definition at line 134 of file LegalityPredicates.cpp.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), and llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::typeInSet | ( | unsigned | TypeIdx, |
std::initializer_list< LLT > | TypesInit ) |
True iff the given type index is one of the specified types.
Definition at line 34 of file LegalityPredicates.cpp.
References llvm::is_contained().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), typeIsLegalBoolVec(), typeIsLegalIntOrFPVec(), typeIsLegalPtrVec(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::typeIs | ( | unsigned | TypeIdx, |
LLT | TypesInit ) |
True iff the given type index is the specified type.
Definition at line 28 of file LegalityPredicates.cpp.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
|
inline |
True iff the given type index is not the specified type.
Definition at line 264 of file LegalizerInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), and llvm::PPCLegalizerInfo::PPCLegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::typePairAndMemDescInSet | ( | unsigned | TypeIdx0, |
unsigned | TypeIdx1, | ||
unsigned | MMOIdx, | ||
std::initializer_list< TypePairAndMemDesc > | TypesAndMemDescInit ) |
True iff the given types for the given pair of type indexes is one of the specified type pairs.
Definition at line 63 of file LegalityPredicates.cpp.
References llvm::any_of(), and llvm::LegalityPredicates::TypePairAndMemDesc::isCompatible().
Referenced by llvm::LegalizeRuleSet::legalForTypesWithMemDesc().
LegalityPredicate llvm::LegalityPredicates::typePairInSet | ( | unsigned | TypeIdx0, |
unsigned | TypeIdx1, | ||
std::initializer_list< std::pair< LLT, LLT > > | TypesInit ) |
True iff the given types for the given pair of type indexes is one of the specified type pairs.
Definition at line 42 of file LegalityPredicates.cpp.
References llvm::is_contained().
Referenced by llvm::X86LegalizerInfo::X86LegalizerInfo().
LegalityPredicate llvm::LegalityPredicates::typeTupleInSet | ( | unsigned | TypeIdx0, |
unsigned | TypeIdx1, | ||
unsigned | Type2, | ||
std::initializer_list< std::tuple< LLT, LLT, LLT > > | TypesInit ) |
True iff the given types for the given tuple of type indexes is one of the specified type tuple.
Definition at line 52 of file LegalityPredicates.cpp.
References llvm::is_contained().