Interface for Targets to specify which operations they can successfully select and how the others should be expanded most efficiently.
More...
|
raw_ostream & | llvm::operator<< (raw_ostream &OS, LegalizeActions::LegalizeAction Action) |
|
template<typename Predicate > |
Predicate | llvm::LegalityPredicates::predNot (Predicate P) |
| True iff P is false.
|
|
template<typename Predicate > |
Predicate | llvm::LegalityPredicates::all (Predicate P0, Predicate P1) |
| True iff P0 and P1 are true.
|
|
template<typename Predicate , typename... Args> |
Predicate | llvm::LegalityPredicates::all (Predicate P0, Predicate P1, Args... args) |
| True iff all given predicates are true.
|
|
template<typename Predicate > |
Predicate | llvm::LegalityPredicates::any (Predicate P0, Predicate P1) |
| True iff P0 or P1 are true.
|
|
template<typename Predicate , typename... Args> |
Predicate | llvm::LegalityPredicates::any (Predicate P0, Predicate P1, Args... args) |
| True iff any given predicates are true.
|
|
LegalityPredicate | llvm::LegalityPredicates::typeIs (unsigned TypeIdx, LLT TypesInit) |
| True iff the given type index is the specified type.
|
|
LegalityPredicate | llvm::LegalityPredicates::typeInSet (unsigned TypeIdx, std::initializer_list< LLT > TypesInit) |
| True iff the given type index is one of the specified types.
|
|
LegalityPredicate | llvm::LegalityPredicates::typeIsNot (unsigned TypeIdx, LLT Type) |
| True iff the given type index is not the specified type.
|
|
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.
|
|
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.
|
|
LegalityPredicate | llvm::LegalityPredicates::isScalar (unsigned TypeIdx) |
| True iff the specified type index is a scalar.
|
|
LegalityPredicate | llvm::LegalityPredicates::isVector (unsigned TypeIdx) |
| True iff the specified type index is a vector.
|
|
LegalityPredicate | llvm::LegalityPredicates::isPointer (unsigned TypeIdx) |
| True iff the specified type index is a pointer (with any address space).
|
|
LegalityPredicate | llvm::LegalityPredicates::isPointer (unsigned TypeIdx, unsigned AddrSpace) |
| True iff the specified type index is a pointer with the specified address space.
|
|
LegalityPredicate | llvm::LegalityPredicates::elementTypeIs (unsigned TypeIdx, LLT EltTy) |
| True if the type index is a vector with element type EltTy .
|
|
LegalityPredicate | llvm::LegalityPredicates::scalarNarrowerThan (unsigned TypeIdx, unsigned Size) |
| True iff the specified type index is a scalar that's narrower than the given size.
|
|
LegalityPredicate | llvm::LegalityPredicates::scalarWiderThan (unsigned TypeIdx, unsigned Size) |
| True iff the specified type index is a scalar that's wider than the given size.
|
|
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.
|
|
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.
|
|
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.
|
|
LegalityPredicate | llvm::LegalityPredicates::sizeNotPow2 (unsigned TypeIdx) |
| True iff the specified type index is a scalar whose size is not a power of.
|
|
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.
|
|
LegalityPredicate | llvm::LegalityPredicates::sizeIs (unsigned TypeIdx, unsigned Size) |
| True if the total bitwidth of the specified type index is Size bits.
|
|
LegalityPredicate | llvm::LegalityPredicates::sameSize (unsigned TypeIdx0, unsigned TypeIdx1) |
| True iff the specified type indices are both the same bit size.
|
|
LegalityPredicate | llvm::LegalityPredicates::largerThan (unsigned TypeIdx0, unsigned TypeIdx1) |
| True iff the first type index has a larger total bit size than second type index.
|
|
LegalityPredicate | llvm::LegalityPredicates::smallerThan (unsigned TypeIdx0, unsigned TypeIdx1) |
| True iff the first type index has a smaller total bit size than second type index.
|
|
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.
|
|
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.
|
|
LegalityPredicate | llvm::LegalityPredicates::numElementsNotPow2 (unsigned TypeIdx) |
| True iff the specified type index is a vector whose element count is not a power of 2.
|
|
LegalityPredicate | llvm::LegalityPredicates::atomicOrderingAtLeastOrStrongerThan (unsigned MMOIdx, AtomicOrdering Ordering) |
| True iff the specified MMO index has at an atomic ordering of at Ordering or stronger.
|
|
LegalizeMutation | llvm::LegalizeMutations::changeTo (unsigned TypeIdx, LLT Ty) |
| Select this specific type for the given type index.
|
|
LegalizeMutation | llvm::LegalizeMutations::changeTo (unsigned TypeIdx, unsigned FromTypeIdx) |
| Keep the same type as the given type index.
|
|
LegalizeMutation | llvm::LegalizeMutations::changeElementTo (unsigned TypeIdx, unsigned FromTypeIdx) |
| Keep the same scalar or element type as the given type index.
|
|
LegalizeMutation | llvm::LegalizeMutations::changeElementTo (unsigned TypeIdx, LLT Ty) |
| Keep the same scalar or element type as the given type.
|
|
LegalizeMutation | llvm::LegalizeMutations::changeElementCountTo (unsigned TypeIdx, unsigned FromTypeIdx) |
| Keep the same scalar or element type as TypeIdx , but take the number of elements from FromTypeIdx .
|
|
LegalizeMutation | llvm::LegalizeMutations::changeElementCountTo (unsigned TypeIdx, LLT Ty) |
| Keep the same scalar or element type as TypeIdx , but take the number of elements from Ty .
|
|
LegalizeMutation | llvm::LegalizeMutations::changeElementSizeTo (unsigned TypeIdx, unsigned FromTypeIdx) |
| Change the scalar size or element size to have the same scalar size as type index FromIndex .
|
|
LegalizeMutation | llvm::LegalizeMutations::widenScalarOrEltToNextPow2 (unsigned TypeIdx, unsigned Min=0) |
| Widen the scalar type or vector element type for the given type index to the next power of 2.
|
|
LegalizeMutation | llvm::LegalizeMutations::widenScalarOrEltToNextMultipleOf (unsigned TypeIdx, unsigned Size) |
| Widen the scalar type or vector element type for the given type index to next multiple of Size .
|
|
LegalizeMutation | llvm::LegalizeMutations::moreElementsToNextPow2 (unsigned TypeIdx, unsigned Min=0) |
| Add more elements to the type for the given type index to the next power of.
|
|
LegalizeMutation | llvm::LegalizeMutations::scalarize (unsigned TypeIdx) |
| Break up the vector type for the given type index into the element type.
|
|
const MachineInstr * | llvm::machineFunctionIsIllegal (const MachineFunction &MF) |
| Checks that MIR is fully legal, returns an illegal instruction if it's not, nullptr otherwise.
|
|
Interface for Targets to specify which operations they can successfully select and how the others should be expanded most efficiently.
Definition in file LegalizerInfo.h.