LLVM 20.0.0git
Functions
llvm::LegalizeMutations Namespace Reference

Functions

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

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

◆ widenScalarOrEltToNextPow2()

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