LLVM 20.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. | |
LegalityPredicate | typeIs (unsigned TypeIdx, LLT TypesInit) |
True iff the given type index is the specified type. | |
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. | |
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. | |
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. | |
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. | |
LegalityPredicate | isScalar (unsigned TypeIdx) |
True iff the specified type index is a scalar. | |
LegalityPredicate | isVector (unsigned TypeIdx) |
True iff the specified type index is a vector. | |
LegalityPredicate | isPointer (unsigned TypeIdx) |
True iff the specified type index is a pointer (with any address space). | |
LegalityPredicate | isPointer (unsigned TypeIdx, unsigned AddrSpace) |
True iff the specified type index is a pointer with the specified address space. | |
LegalityPredicate | isPointerVector (unsigned TypeIdx) |
True iff the specified type index is a vector of pointers (with any address space). | |
LegalityPredicate | elementTypeIs (unsigned TypeIdx, LLT EltTy) |
True if the type index is a vector with element type EltTy . | |
LegalityPredicate | scalarNarrowerThan (unsigned TypeIdx, unsigned Size) |
True iff the specified type index is a scalar that's narrower than the given size. | |
LegalityPredicate | scalarWiderThan (unsigned TypeIdx, unsigned Size) |
True iff the specified type index is a scalar that's wider than the given size. | |
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. | |
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. | |
LegalityPredicate | sizeNotMultipleOf (unsigned TypeIdx, unsigned Size) |
True iff the specified type index is a scalar whose size is not a multiple of Size. | |
LegalityPredicate | sizeNotPow2 (unsigned TypeIdx) |
True iff the specified type index is a scalar whose size is not a power of. | |
LegalityPredicate | scalarOrEltSizeNotPow2 (unsigned TypeIdx) |
True iff the specified type index is a scalar or vector whose element size is not a power of 2. | |
LegalityPredicate | sizeIs (unsigned TypeIdx, unsigned Size) |
True if the total bitwidth of the specified type index is Size bits. | |
LegalityPredicate | sameSize (unsigned TypeIdx0, unsigned TypeIdx1) |
True iff the specified type indices are both the same bit size. | |
LegalityPredicate | largerThan (unsigned TypeIdx0, unsigned TypeIdx1) |
True iff the first type index has a larger total bit size than second type index. | |
LegalityPredicate | smallerThan (unsigned TypeIdx0, unsigned TypeIdx1) |
True iff the first type index has a smaller total bit size than second type index. | |
LegalityPredicate | memSizeInBytesNotPow2 (unsigned MMOIdx) |
True iff the specified MMO index has a size (rounded to bytes) that is not a power of 2. | |
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. | |
LegalityPredicate | numElementsNotPow2 (unsigned TypeIdx) |
True iff the specified type index is a vector whose element count is not a power of 2. | |
LegalityPredicate | atomicOrderingAtLeastOrStrongerThan (unsigned MMOIdx, AtomicOrdering Ordering) |
True iff the specified MMO index has at an atomic ordering of at Ordering or stronger. | |
Predicate llvm::LegalityPredicates::all | ( | Predicate | P0, |
Predicate | P1 | ||
) |
True iff P0 and P1 are true.
Definition at line 234 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 241 of file LegalizerInfo.h.
Predicate llvm::LegalityPredicates::any | ( | Predicate | P0, |
Predicate | P1 | ||
) |
True iff P0 or P1 are true.
Definition at line 247 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 254 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().
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::getAddressSpace(), and 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.
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.
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(), 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().
Predicate llvm::LegalityPredicates::predNot | ( | Predicate | P | ) |
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.
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::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.
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().
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.
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(), 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().
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::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 265 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::Match.
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(), and llvm::Match.
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(), and llvm::Match.