LLVM 22.0.0git
llvm::LegalizeMutations Namespace Reference

Functions

LLVM_ABI LegalizeMutation changeTo (unsigned TypeIdx, LLT Ty)
 Select this specific type for the given type index.
LLVM_ABI LegalizeMutation changeTo (unsigned TypeIdx, unsigned FromTypeIdx)
 Keep the same type as the given type index.
LLVM_ABI LegalizeMutation changeElementTo (unsigned TypeIdx, unsigned FromTypeIdx)
 Keep the same scalar or element type as the given type index.
LLVM_ABI LegalizeMutation changeElementTo (unsigned TypeIdx, LLT Ty)
 Keep the same scalar or element type as the given type.
LLVM_ABI LegalizeMutation changeElementCountTo (unsigned TypeIdx, unsigned FromTypeIdx)
 Keep the same scalar or element type as TypeIdx, but take the number of elements from FromTypeIdx.
LLVM_ABI LegalizeMutation changeElementCountTo (unsigned TypeIdx, LLT Ty)
 Keep the same scalar or element type as TypeIdx, but take the number of elements from Ty.
LLVM_ABI LegalizeMutation changeElementSizeTo (unsigned TypeIdx, unsigned FromTypeIdx)
 Change the scalar size or element size to have the same scalar size as type index FromIndex.
LLVM_ABI LegalizeMutation 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.
LLVM_ABI LegalizeMutation widenScalarOrEltToNextMultipleOf (unsigned TypeIdx, unsigned Size)
 Widen the scalar type or vector element type for the given type index to next multiple of Size.
LLVM_ABI LegalizeMutation moreElementsToNextPow2 (unsigned TypeIdx, unsigned Min=0)
 Add more elements to the type for the given type index to the next power of.
LLVM_ABI LegalizeMutation scalarize (unsigned TypeIdx)
 Break up the vector type for the given type index into the element type.

Function Documentation

◆ changeElementCountTo() [1/2]

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.

Definition at line 57 of file LegalizeMutations.cpp.

References llvm::LLT::changeElementCount(), llvm::LLT::getElementCount(), llvm::ElementCount::getFixed(), and llvm::LLT::isVector().

◆ changeElementCountTo() [2/2]

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.

Definition at line 46 of file LegalizeMutations.cpp.

References llvm::LLT::changeElementCount(), llvm::LLT::getElementCount(), llvm::ElementCount::getFixed(), and llvm::LLT::isVector().

◆ changeElementSizeTo()

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.

Unlike changeElementTo, this discards pointer types and only changes the size.

Definition at line 67 of file LegalizeMutations.cpp.

References llvm::LLT::changeElementType(), llvm::LLT::getScalarSizeInBits(), and llvm::LLT::scalar().

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizeRuleSet::maxScalarSameAs(), and llvm::LegalizeRuleSet::minScalarSameAs().

◆ changeElementTo() [1/2]

LegalizeMutation llvm::LegalizeMutations::changeElementTo ( unsigned TypeIdx,
LLT Ty )

Keep the same scalar or element type as the given type.

Definition at line 38 of file LegalizeMutations.cpp.

References llvm::LLT::changeElementType().

◆ changeElementTo() [2/2]

LegalizeMutation llvm::LegalizeMutations::changeElementTo ( unsigned TypeIdx,
unsigned FromTypeIdx )

Keep the same scalar or element type as the given type index.

Definition at line 29 of file LegalizeMutations.cpp.

References llvm::LLT::changeElementType().

◆ changeTo() [1/2]

LegalizeMutation llvm::LegalizeMutations::changeTo ( unsigned TypeIdx,
LLT Ty )

◆ changeTo() [2/2]

LegalizeMutation llvm::LegalizeMutations::changeTo ( unsigned TypeIdx,
unsigned FromTypeIdx )

Keep the same type as the given type index.

Definition at line 22 of file LegalizeMutations.cpp.

◆ moreElementsToNextPow2()

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.

Definition at line 97 of file LegalizeMutations.cpp.

References llvm::LLT::fixed_vector(), llvm::LLT::getElementType(), llvm::LLT::getNumElements(), and llvm::Log2_32_Ceil().

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), and llvm::LegalizeRuleSet::moreElementsToNextPow2().

◆ scalarize()

LegalizeMutation llvm::LegalizeMutations::scalarize ( unsigned TypeIdx)

Break up the vector type for the given type index into the element type.

Definition at line 108 of file LegalizeMutations.cpp.

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::LegalizeRuleSet::scalarize(), and llvm::LegalizeRuleSet::scalarizeIf().

◆ widenScalarOrEltToNextMultipleOf()

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.

Definition at line 88 of file LegalizeMutations.cpp.

References llvm::alignTo(), and Size.

Referenced by llvm::LegalizeRuleSet::widenScalarToNextMultipleOf().

◆ widenScalarOrEltToNextPow2()

LegalizeMutation llvm::LegalizeMutations::widenScalarOrEltToNextPow2 ( unsigned TypeIdx,
unsigned Min = 0 )