LLVM  14.0.0git
Public Member Functions | Static Public Member Functions | Friends | List of all members
llvm::LLT Class Reference

#include "llvm/Support/LowLevelTypeImpl.h"

Public Member Functions

 LLT (bool isPointer, bool isVector, bool isScalar, ElementCount EC, uint64_t SizeInBits, unsigned AddressSpace)
 
 LLT ()
 
 LLT (MVT VT)
 
bool isValid () const
 
bool isScalar () const
 
bool isPointer () const
 
bool isVector () const
 
uint16_t getNumElements () const
 Returns the number of elements in a vector LLT. More...
 
bool isScalable () const
 Returns true if the LLT is a scalable vector. More...
 
ElementCount getElementCount () const
 
TypeSize getSizeInBits () const
 Returns the total size of the type. Must only be called on sized types. More...
 
TypeSize getSizeInBytes () const
 Returns the total size of the type in bytes, i.e. More...
 
LLT getScalarType () const
 
LLT changeElementType (LLT NewEltTy) const
 If this type is a vector, return a vector with the same number of elements but the new element type. More...
 
LLT changeElementSize (unsigned NewEltSize) const
 If this type is a vector, return a vector with the same number of elements but the new element size. More...
 
LLT changeElementCount (ElementCount EC) const
 Return a vector or scalar with the same element type and the new element count. More...
 
LLT divide (int Factor) const
 Return a type that is Factor times smaller. More...
 
bool isByteSized () const
 
unsigned getScalarSizeInBits () const
 
unsigned getAddressSpace () const
 
LLT getElementType () const
 Returns the vector's element type. Only valid for vector types. More...
 
void print (raw_ostream &OS) const
 
LLVM_DUMP_METHOD void dump () const
 
bool operator== (const LLT &RHS) const
 
bool operator!= (const LLT &RHS) const
 
uint64_t getUniqueRAWLLTData () const
 

Static Public Member Functions

static LLT scalar (unsigned SizeInBits)
 Get a low-level scalar or aggregate "bag of bits". More...
 
static LLT pointer (unsigned AddressSpace, unsigned SizeInBits)
 Get a low-level pointer in the given address space. More...
 
static LLT vector (ElementCount EC, unsigned ScalarSizeInBits)
 Get a low-level vector of some number of elements and element width. More...
 
static LLT vector (ElementCount EC, LLT ScalarTy)
 Get a low-level vector of some number of elements and element type. More...
 
static LLT fixed_vector (unsigned NumElements, unsigned ScalarSizeInBits)
 Get a low-level fixed-width vector of some number of elements and element width. More...
 
static LLT fixed_vector (unsigned NumElements, LLT ScalarTy)
 Get a low-level fixed-width vector of some number of elements and element type. More...
 
static LLT scalable_vector (unsigned MinNumElements, unsigned ScalarSizeInBits)
 Get a low-level scalable vector of some number of elements and element width. More...
 
static LLT scalable_vector (unsigned MinNumElements, LLT ScalarTy)
 Get a low-level scalable vector of some number of elements and element type. More...
 
static LLT scalarOrVector (ElementCount EC, LLT ScalarTy)
 
static LLT scalarOrVector (ElementCount EC, uint64_t ScalarSize)
 

Friends

struct DenseMapInfo< LLT >
 
class GISelInstProfileBuilder
 

Detailed Description

Definition at line 40 of file LowLevelTypeImpl.h.

Constructor & Destructor Documentation

◆ LLT() [1/3]

llvm::LLT::LLT ( bool  isPointer,
bool  isVector,
bool  isScalar,
ElementCount  EC,
uint64_t  SizeInBits,
unsigned  AddressSpace 
)
inlineexplicit

Definition at line 108 of file LowLevelTypeImpl.h.

References isPointer(), isScalar(), and isVector().

◆ LLT() [2/3]

llvm::LLT::LLT ( )
inlineexplicit

Definition at line 112 of file LowLevelTypeImpl.h.

◆ LLT() [3/3]

LLT::LLT ( MVT  VT)
explicit

Member Function Documentation

◆ changeElementCount()

LLT llvm::LLT::changeElementCount ( ElementCount  EC) const
inline

◆ changeElementSize()

LLT llvm::LLT::changeElementSize ( unsigned  NewEltSize) const
inline

◆ changeElementType()

LLT llvm::LLT::changeElementType ( LLT  NewEltTy) const
inline

If this type is a vector, return a vector with the same number of elements but the new element type.

Otherwise, return the new element type.

Definition at line 174 of file LowLevelTypeImpl.h.

References getElementCount(), isVector(), and vector().

Referenced by buildCopyFromRegs(), llvm::LegalizeMutations::changeElementSizeTo(), and llvm::LegalizeMutations::changeElementTo().

◆ divide()

LLT llvm::LLT::divide ( int  Factor) const
inline

Return a type that is Factor times smaller.

Reduces the number of elements if this is a vector, or the bitwidth for scalar/pointers. Does not attempt to handle cases that aren't evenly divisible.

Definition at line 197 of file LowLevelTypeImpl.h.

References assert(), getElementCount(), getElementType(), getScalarSizeInBits(), isScalar(), isVector(), scalar(), and scalarOrVector().

Referenced by llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), and llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues().

◆ dump()

LLVM_DUMP_METHOD void llvm::LLT::dump ( ) const
inline

Definition at line 248 of file LowLevelTypeImpl.h.

References llvm::dbgs(), and print().

◆ fixed_vector() [1/2]

static LLT llvm::LLT::fixed_vector ( unsigned  NumElements,
LLT  ScalarTy 
)
inlinestatic

Get a low-level fixed-width vector of some number of elements and element type.

Definition at line 81 of file LowLevelTypeImpl.h.

References llvm::LinearPolySize< ElementCount >::getFixed(), and vector().

◆ fixed_vector() [2/2]

static LLT llvm::LLT::fixed_vector ( unsigned  NumElements,
unsigned  ScalarSizeInBits 
)
inlinestatic

◆ getAddressSpace()

unsigned llvm::LLT::getAddressSpace ( ) const
inline

◆ getElementCount()

ElementCount llvm::LLT::getElementCount ( ) const
inline

◆ getElementType()

LLT llvm::LLT::getElementType ( ) const
inline

Returns the vector's element type. Only valid for vector types.

Definition at line 237 of file LowLevelTypeImpl.h.

References assert(), getAddressSpace(), getScalarSizeInBits(), isVector(), pointer(), and scalar().

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), applyINS(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), llvm::CSEMIRBuilder::buildConstant(), buildCopyFromRegs(), buildCopyToRegs(), llvm::CSEMIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildShuffleSplat(), llvm::MachineIRBuilder::buildShuffleVector(), llvm::LegalizationArtifactCombiner::canFoldMergeOpcode(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegalizeRuleSet::clampNumElements(), llvm::LegalizerHelper::coerceToScalar(), divide(), llvm::LegalityPredicates::elementTypeIs(), elementTypeIsLegal(), llvm::LegalizerHelper::fewerElementsVectorCasts(), llvm::LegalizerHelper::fewerElementsVectorCmp(), llvm::LegalizerHelper::fewerElementsVectorMulo(), llvm::LegalizerHelper::fewerElementsVectorSelect(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), fewerEltsToSize64Vector(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), llvm::getGCDType(), getHalfSizedType(), llvm::getLCMType(), llvm::getMVTForLLT(), getScalarType(), llvm::LegalizerHelper::getVectorElementPointer(), getVectorSHLImm(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), isRegisterVectorType(), isSmallOddVector(), llvm::AMDGPULegalizerInfo::legalizeBVHIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), loadStoreBitcastWorkaround(), llvm::LegalizerHelper::lowerBitcast(), llvm::LegalizerHelper::lowerExtract(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerSelect(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::LegalizerHelper::lowerStore(), matchDupLane(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), llvm::LegalizeMutations::moreElementsToNextPow2(), moreEltsToNext32Bit(), oneMoreElement(), print(), shouldBitcastLoadStoreType(), splitUnequalType(), widen96To128(), and llvm::LegalizerHelper::widenScalar().

◆ getNumElements()

uint16_t llvm::LLT::getNumElements ( ) const
inline

Returns the number of elements in a vector LLT.

Must only be called on vector types.

Definition at line 127 of file LowLevelTypeImpl.h.

References getElementCount(), llvm::LinearPolySize< LeafTy >::getKnownMinValue(), isScalable(), and llvm::reportInvalidSizeRequest().

Referenced by applyDupLane(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), buildCopyFromRegs(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildShuffleSplat(), llvm::MachineIRBuilder::buildShuffleVector(), clampDynamicVectorIndex(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegalizeRuleSet::clampNumElements(), llvm::GISelKnownBits::computeNumSignBits(), llvm::LegalizerHelper::fewerElementsVectorCasts(), llvm::LegalizerHelper::fewerElementsVectorCmp(), llvm::LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorSelect(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), fewerEltsToSize64Vector(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), llvm::getGCDType(), llvm::GISelKnownBits::getKnownBits(), llvm::getLCMType(), llvm::getMVTForLLT(), getPow2VectorType(), getTypeForLLT(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), isRegisterVectorType(), isSmallOddVector(), isWideVec16(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::LegalizerHelper::lowerBitcast(), llvm::AArch64CallLowering::lowerReturn(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::CombinerHelper::matchCombineConcatVectors(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineShuffleVector(), matchDupLane(), matchEXT(), llvm::CombinerHelper::matchExtractAllEltsFromBuildVector(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), matchINS(), matchREV(), matchTRN(), matchUZP(), matchZip(), llvm::LegalizeMutations::moreElementsToNextPow2(), llvm::LegalizerHelper::moreElementsVectorShuffle(), llvm::LegalizerHelper::moreElementsVectorSrc(), mutationIsSane(), numElementsNotEven(), llvm::LegalityPredicates::numElementsNotPow2(), oneMoreElement(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateTruncExt(), and widenToNextPowerOf2().

◆ getScalarSizeInBits()

unsigned llvm::LLT::getScalarSizeInBits ( ) const
inline

Definition at line 213 of file LowLevelTypeImpl.h.

References llvm_unreachable.

Referenced by llvm::CombinerHelper::applyAshShlToSextInreg(), llvm::CombinerHelper::applyRotateOutOfRange(), llvm::CombinerHelper::applyShiftImmedChain(), llvm::MachineIRBuilder::buildConstant(), buildCopyFromRegs(), buildCopyToRegs(), llvm::CallLowering::IncomingValueHandler::buildExtensionHint(), llvm::MachineIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildZExtInReg(), llvm::LegalizeMutations::changeElementSizeTo(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::GISelKnownBits::computeNumSignBits(), llvm::ConstantFoldExtOp(), llvm::SITargetLowering::denormalsEnabledForType(), divide(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::LegalizerHelper::fewerElementsVectorCmp(), llvm::LegalizerHelper::fewerElementsVectorSelect(), getElementType(), getHalfSizedType(), getMemsetValue(), getNarrowTypeBreakDown(), llvm::SITargetLowering::getPreferredShiftAmountTy(), getSizeInBits(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), getTypeForLLT(), llvm::isKnownToBeAPowerOfTwo(), isVShiftRImm(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerAbsToAddXor(), llvm::LegalizerHelper::lowerAddSubSatToAddoSubo(), llvm::LegalizerHelper::lowerAddSubSatToMinMax(), llvm::LegalizerHelper::lowerBswap(), llvm::LegalizerHelper::lowerFCopySign(), llvm::LegalizerHelper::lowerFPTOSI(), llvm::LegalizerHelper::lowerFunnelShiftAsShifts(), llvm::LegalizerHelper::lowerFunnelShiftWithInverse(), llvm::LegalizerHelper::lowerRotate(), llvm::LegalizerHelper::lowerSelect(), llvm::LegalizerHelper::lowerShlSat(), llvm::LegalizerHelper::lowerSMULH_UMULH(), lowerVectorFCMP(), llvm::CombinerHelper::matchBitfieldExtractFromAnd(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineZextTrunc(), matchEXT(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchRedundantSExtInReg(), matchREV(), llvm::CombinerHelper::matchRotateOutOfRange(), llvm::CombinerHelper::matchShiftImmedChain(), llvm::CombinerHelper::matchShiftOfShiftedLogic(), llvm::LegalizeRuleSet::maxScalarOrElt(), llvm::LegalizeRuleSet::minScalarOrElt(), llvm::LegalizeRuleSet::minScalarOrEltIf(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarFPTOI(), llvm::LegalizerHelper::narrowScalarShift(), print(), llvm::LegalityPredicates::scalarOrEltNarrowerThan(), llvm::LegalityPredicates::scalarOrEltSizeNotPow2(), llvm::LegalityPredicates::scalarOrEltWiderThan(), llvm::AMDGPURegisterBankInfo::selectStoreIntrinsic(), llvm::GISelKnownBits::signBitIsZero(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), llvm::LegalizerHelper::widenScalar(), and llvm::LegalizeMutations::widenScalarOrEltToNextPow2().

◆ getScalarType()

LLT llvm::LLT::getScalarType ( ) const
inline

◆ getSizeInBits()

TypeSize llvm::LLT::getSizeInBits ( ) const
inline

Returns the total size of the type. Must only be called on sized types.

Definition at line 153 of file LowLevelTypeImpl.h.

References llvm::TypeSize::Fixed(), getElementCount(), getScalarSizeInBits(), isPointer(), and isScalar().

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::SITargetLowering::allowsMisalignedMemoryAccesses(), llvm::CombinerHelper::applyCombineExtendingLoads(), llvm::CombinerHelper::applyCombineShiftToUnmerge(), llvm::CombinerHelper::applyCombineTruncOfExt(), llvm::CombinerHelper::applyCombineUnmergeWithDeadLanesToTrunc(), llvm::CombinerHelper::applyCombineUnmergeZExtToZExt(), AMDGPUPostLegalizerCombinerHelper::applyCvtF32UByteN(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::CombinerHelper::applyExtractVecEltBuildVec(), llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), llvm::LegalizerHelper::bitcast(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), bitcastToVectorElement32(), buildBitFieldInsert(), buildCopyFromRegs(), buildCopyToRegs(), llvm::MachineIRBuilder::buildExtract(), llvm::MachineIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildLoadFromOffset(), llvm::MachineIRBuilder::buildMaskLowPtrBits(), llvm::AMDGPULegalizerInfo::buildPCRelGlobalAddress(), llvm::MachineIRBuilder::buildSequence(), llvm::MachineIRBuilder::buildUnmerge(), llvm::AMDGPURegisterBankInfo::buildVCopy(), llvm::LegalizationArtifactCombiner::canFoldMergeOpcode(), clampDynamicVectorIndex(), llvm::LegalizerHelper::coerceToScalar(), llvm::SITargetLowering::computeKnownBitsForTargetInstr(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::CallLowering::ValueHandler::copyArgumentMemory(), llvm::createMemLibcall(), elementTypeIsLegal(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::InstructionSelector::executeMatchTable(), llvm::CallLowering::ValueHandler::extendRegister(), llvm::LegalizerHelper::fewerElementsVectorImplicitDef(), llvm::LegalizerHelper::fewerElementsVectorSelect(), fewerEltsToSize64Vector(), findGISelOptimalMemOpLowering(), getBitcastRegisterType(), getBitcastWiderVectorElementOffset(), getCmpOperandFoldingProfit(), llvm::getConstantVRegValWithLookThrough(), getFloatTypeForLLT(), llvm::getFltSemanticForLLT(), llvm::getGCDType(), llvm::AMDGPULegalizerInfo::getImplicitArgPtr(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappings(), llvm::ARMRegisterBankInfo::getInstrMapping(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::X86RegisterBankInfo::getInstrMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMappingForLoad(), llvm::getLCMType(), llvm::getMVTForLLT(), getNarrowTypeBreakDown(), llvm::X86GenRegisterBankInfo::getPartialMappingIdx(), getPow2ScalarType(), llvm::SIRegisterInfo::getRegClassForTypeOnBank(), llvm::SITargetLowering::getRegisterByName(), llvm::TargetRegisterInfo::getRegSizeInBits(), getSizeInBytes(), getTestBitReg(), getTypeForLLT(), llvm::AMDGPURegisterBankInfo::getValueMappingForPtr(), llvm::LegalizerHelper::getVectorElementPointer(), getVectorSHLImm(), isByteSized(), llvm::LegalityPredicates::TypePairAndMemDesc::isCompatible(), isCopyCompatibleType(), isLoadStoreSizeLegal(), isRegisterType(), isRegisterVectorElementType(), isRegisterVectorType(), isSmallOddVector(), isWideScalarExtLoadTruncStore(), isWideVec16(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::AMDGPULegalizerInfo::legalizeBVHIntrinsic(), llvm::MipsLegalizerInfo::legalizeCustom(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeFrint(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeSignedDIV_REM(), llvm::LegalizerHelper::libcall(), loadStoreBitcastWorkaround(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerBitCount(), llvm::LegalizerHelper::lowerBitreverse(), llvm::LegalizerHelper::lowerDynStackAlloc(), llvm::LegalizerHelper::lowerExtract(), llvm::LegalizerHelper::lowerFPTOUI(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerMergeValues(), llvm::AArch64CallLowering::lowerReturn(), llvm::LegalizerHelper::lowerSelect(), llvm::LegalizerHelper::lowerStore(), llvm::LegalizerHelper::lowerUnmergeValues(), matchAArch64MulConstCombine(), llvm::CombinerHelper::matchCombineExtendingLoads(), llvm::CombinerHelper::matchCombineShiftToUnmerge(), llvm::CombinerHelper::matchCombineTruncOfShl(), llvm::CombinerHelper::matchCombineUnmergeConstant(), llvm::CombinerHelper::matchCombineUnmergeMergeToPlainValues(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), matchDupLane(), matchExtractVecEltPairwiseAdd(), matchFConstantToConstant(), matchFormTruncstore(), matchICmpRedundantTrunc(), llvm::CombinerHelper::matchLoadOrCombine(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchSextTruncSextLoad(), AMDGPUPostLegalizerCombinerHelper::matchUCharToFloat(), llvm::LegalizeRuleSet::maxScalar(), llvm::LegalizeRuleSet::maxScalarIf(), mergeVectorRegsToResultRegs(), llvm::LegalizeRuleSet::minScalar(), llvm::LegalizerHelper::moreElementsVector(), moreEltsToNext32Bit(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarCTLZ(), llvm::LegalizerHelper::narrowScalarCTPOP(), llvm::LegalizerHelper::narrowScalarCTTZ(), llvm::LegalizerHelper::narrowScalarExtract(), llvm::LegalizerHelper::narrowScalarInsert(), llvm::LegalizerHelper::narrowScalarMul(), llvm::LegalizerHelper::narrowScalarShiftByConstant(), llvm::LegalizerHelper::reduceLoadStoreWidth(), llvm::LegalizerHelper::reduceOperationWidth(), llvm::InstructionSelect::runOnMachineFunction(), llvm::LegalityPredicates::scalarNarrowerThan(), llvm::LegalityPredicates::scalarWiderThan(), selectFPConvOpc(), selectMergeValues(), llvm::AMDGPURegisterBankInfo::selectStoreIntrinsic(), selectUnmergeValues(), setRegsToType(), shouldBitcastLoadStoreType(), shouldWidenLoad(), sizeIsMultipleOf32(), llvm::LegalityPredicates::sizeNotPow2(), llvm::AMDGPURegisterBankInfo::split64BitValueForMapping(), splitUnequalType(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineExtract(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::ArtifactValueFinder::tryCombineUnmergeDefs(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateTruncExt(), vector(), vectorSmallerThan(), vectorWiderThan(), widen96To128(), llvm::LegalizerHelper::widenScalar(), widenToNextPowerOf2(), and llvm::LegalizerHelper::widenWithUnmerge().

◆ getSizeInBytes()

TypeSize llvm::LLT::getSizeInBytes ( ) const
inline

◆ getUniqueRAWLLTData()

uint64_t llvm::LLT::getUniqueRAWLLTData ( ) const
inline

◆ isByteSized()

bool llvm::LLT::isByteSized ( ) const
inline

◆ isPointer()

bool llvm::LLT::isPointer ( ) const
inline

◆ isScalable()

bool llvm::LLT::isScalable ( ) const
inline

Returns true if the LLT is a scalable vector.

Must only be called on vector types.

Definition at line 138 of file LowLevelTypeImpl.h.

References assert(), and isVector().

Referenced by getElementCount(), and getNumElements().

◆ isScalar()

bool llvm::LLT::isScalar ( ) const
inline

Definition at line 119 of file LowLevelTypeImpl.h.

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), AMDGPUPostLegalizerCombinerHelper::applyCvtF32UByteN(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::MachineIRBuilder::buildAtomicCmpXchg(), llvm::MachineIRBuilder::buildAtomicCmpXchgWithSuccess(), llvm::MachineIRBuilder::buildAtomicRMW(), llvm::MachineIRBuilder::buildCast(), buildCopyToRegs(), llvm::MachineIRBuilder::buildInstr(), llvm::LegalizeRuleSet::clampScalar(), llvm::LegalizerHelper::coerceToScalar(), divide(), getFloatTypeForLLT(), llvm::getFltSemanticForLLT(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::X86GenRegisterBankInfo::getPartialMappingIdx(), getSizeInBits(), isCopyCompatibleType(), llvm::AMDGPULegalizerInfo::legalizeFMad(), llvm::AMDGPULegalizerInfo::legalizeFrint(), LLT(), llvm::LegalizerHelper::lowerExtract(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerSelect(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::CombinerHelper::matchCombineExtendingLoads(), matchICmpRedundantTrunc(), llvm::MachineIRBuilder::materializePtrAdd(), llvm::LegalizeRuleSet::maxScalarIf(), llvm::LegalizerHelper::narrowScalarCTLZ(), llvm::LegalizerHelper::narrowScalarCTPOP(), llvm::LegalizerHelper::narrowScalarCTTZ(), print(), llvm::LegalityPredicates::scalarNarrowerThan(), llvm::LegalityPredicates::scalarWiderThan(), selectFPConvOpc(), llvm::LegalityPredicates::sizeNotPow2(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateBinaryOp(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateShiftOp(), llvm::MachineIRBuilder::validateTruncExt(), llvm::MachineIRBuilder::validateUnaryOp(), and llvm::LegalizerHelper::widenScalar().

◆ isValid()

bool llvm::LLT::isValid ( ) const
inline

◆ isVector()

bool llvm::LLT::isVector ( ) const
inline

Definition at line 123 of file LowLevelTypeImpl.h.

References isValid().

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::CombinerHelper::applyCombineUnmergeWithDeadLanesToTrunc(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), llvm::LegalizerHelper::bitcast(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), llvm::CSEMIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildConstant(), buildCopyFromRegs(), buildCopyToRegs(), llvm::CSEMIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildInstr(), llvm::LegalizationArtifactCombiner::canFoldMergeOpcode(), changeElementSize(), changeElementType(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegalizerHelper::coerceToScalar(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::GISelKnownBits::computeNumSignBits(), divide(), llvm::LegalityPredicates::elementTypeIs(), elementTypeIsLegal(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::LegalizerHelper::fewerElementsVectorCasts(), llvm::LegalizerHelper::fewerElementsVectorCmp(), llvm::LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(), llvm::LegalizerHelper::fewerElementsVectorMulo(), llvm::LegalizerHelper::fewerElementsVectorMultiEltType(), llvm::LegalizerHelper::fewerElementsVectorSelect(), findGISelOptimalMemOpLowering(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), getCmpOperandFoldingProfit(), getElementType(), llvm::getGCDType(), getHalfSizedType(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::GISelKnownBits::getKnownBits(), llvm::getLCMType(), getMemsetValue(), llvm::getMVTForLLT(), getNarrowTypeBreakDown(), getScalarType(), getTypeForLLT(), getVectorFCMP(), getVectorShiftImm(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), isLoadStoreSizeLegal(), isRegisterType(), isScalable(), isSmallOddVector(), isVShiftRImm(), isWideScalarExtLoadTruncStore(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), LLT(), loadStoreBitcastWorkaround(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerBitcast(), llvm::LegalizerHelper::lowerExtract(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_F16(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::AArch64CallLowering::lowerReturn(), llvm::LegalizerHelper::lowerSelect(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::LegalizerHelper::lowerStore(), lowerVectorFCMP(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineShiftToUnmerge(), llvm::CombinerHelper::matchCombineShuffleVector(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchExtendThroughPhis(), matchFormTruncstore(), llvm::CombinerHelper::matchICmpToTrueFalseKnownBits(), AMDGPURegBankCombinerHelper::matchIntMinMaxToMed3(), llvm::CombinerHelper::matchLoadOrCombine(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchPtrAddZero(), llvm::CombinerHelper::matchRedundantAnd(), llvm::CombinerHelper::matchRedundantOr(), llvm::CombinerHelper::matchSextInRegOfLoad(), llvm::CombinerHelper::matchSextTruncSextLoad(), matchVAshrLshrImm(), llvm::LegalizerHelper::moreElementsVector(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarAddSub(), llvm::LegalizerHelper::narrowScalarExt(), llvm::LegalizerHelper::narrowScalarExtract(), llvm::LegalizerHelper::narrowScalarMul(), llvm::LegalizerHelper::narrowScalarSelect(), llvm::LegalizerHelper::narrowScalarShift(), numElementsNotEven(), llvm::LegalityPredicates::numElementsNotPow2(), print(), llvm::LegalizerHelper::reduceOperationWidth(), shouldBitcastLoadStoreType(), splitUnequalType(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateBinaryOp(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateShiftOp(), llvm::MachineIRBuilder::validateTruncExt(), llvm::MachineIRBuilder::validateUnaryOp(), vector(), vectorSmallerThan(), vectorWiderThan(), widen96To128(), llvm::LegalizerHelper::widenScalar(), and widenToNextPowerOf2().

◆ operator!=()

bool llvm::LLT::operator!= ( const LLT RHS) const
inline

Definition at line 259 of file LowLevelTypeImpl.h.

◆ operator==()

bool llvm::LLT::operator== ( const LLT RHS) const
inline

Definition at line 254 of file LowLevelTypeImpl.h.

◆ pointer()

static LLT llvm::LLT::pointer ( unsigned  AddressSpace,
unsigned  SizeInBits 
)
inlinestatic

◆ print()

void LLT::print ( raw_ostream OS) const

◆ scalable_vector() [1/2]

static LLT llvm::LLT::scalable_vector ( unsigned  MinNumElements,
LLT  ScalarTy 
)
inlinestatic

Get a low-level scalable vector of some number of elements and element type.

Definition at line 94 of file LowLevelTypeImpl.h.

References llvm::LinearPolySize< ElementCount >::getScalable(), and vector().

◆ scalable_vector() [2/2]

static LLT llvm::LLT::scalable_vector ( unsigned  MinNumElements,
unsigned  ScalarSizeInBits 
)
inlinestatic

Get a low-level scalable vector of some number of elements and element width.

Definition at line 87 of file LowLevelTypeImpl.h.

References llvm::LinearPolySize< ElementCount >::getScalable(), and vector().

◆ scalar()

static LLT llvm::LLT::scalar ( unsigned  SizeInBits)
inlinestatic

Get a low-level scalar or aggregate "bag of bits".

Definition at line 43 of file LowLevelTypeImpl.h.

References llvm::LinearPolySize< ElementCount >::getFixed().

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::SITargetLowering::allocateSpecialEntryInputVGPRs(), allocateVGPR32Input(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), AMDGPUPreLegalizerCombinerHelper::applyClampI64ToI16(), llvm::CombinerHelper::applyCombineShiftToUnmerge(), llvm::CombinerHelper::applyCombineUnmergeWithDeadLanesToTrunc(), AMDGPUPostLegalizerCombinerHelper::applyCvtF32UByteN(), applyDupLane(), applyEXT(), applyExtractVecEltPairwiseAdd(), applyFoldGlobalOffset(), applyINS(), llvm::AMDGPURegisterBankInfo::applyMappingBFE(), llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), llvm::MipsRegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), AMDGPUPostLegalizerCombinerHelper::applyUCharToFloat(), applyVAshrLshrImm(), llvm::ARMLegalizerInfo::ARMLegalizerInfo(), buildAnyextOrCopy(), buildCopyFromRegs(), buildCopyToRegs(), llvm::MachineIRBuilder::buildLoadFromOffset(), llvm::MachineIRBuilder::buildMaskLowPtrBits(), llvm::MachineIRBuilder::buildShuffleSplat(), changeElementSize(), llvm::LegalizeMutations::changeElementSizeTo(), llvm::LegalizerHelper::coerceToScalar(), convertImageAddrToPacked(), llvm::CallLowering::ValueHandler::copyArgumentMemory(), llvm::RegisterBankInfo::OperandsMapper::createVRegs(), divide(), elementTypeIsLegal(), emitReciprocalU64(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), extendLow32IntoHigh32(), llvm::CallLowering::ValueHandler::extendRegister(), extractF64Exponent(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), findGISelOptimalMemOpLowering(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), getBitcastRegisterType(), getElementType(), llvm::getGCDType(), getHalfSizedType(), llvm::AMDGPULegalizerInfo::getImplicitArgPtr(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::getLCMType(), llvm::getLLTForMVT(), llvm::getLLTForType(), llvm::MachineFunction::getMachineMemOperand(), getNarrowTypeBreakDown(), llvm::AArch64TargetLowering::getOptimalMemOpLLT(), getPow2ScalarType(), llvm::AMDGPUFunctionArgInfo::getPreloadedValue(), llvm::AMDGPURegisterBankInfo::getRegBankFromRegClass(), llvm::AVRTargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::AMDGPULegalizerInfo::getSegmentAperture(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPUTargetLowering::isConstantUnsignedBitfieldExtactLegal(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeBufferAtomic(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::AMDGPULegalizerInfo::legalizeBuildVector(), llvm::AMDGPULegalizerInfo::legalizeBVHIntrinsic(), llvm::MipsLegalizerInfo::legalizeCustom(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::AMDGPULegalizerInfo::legalizeFceil(), llvm::AMDGPULegalizerInfo::legalizeFDIV(), llvm::AMDGPULegalizerInfo::legalizeFDIV16(), llvm::AMDGPULegalizerInfo::legalizeFDIV32(), llvm::AMDGPULegalizerInfo::legalizeFDIV64(), llvm::AMDGPULegalizerInfo::legalizeFDIVFastIntrin(), llvm::AMDGPULegalizerInfo::legalizeFFloor(), llvm::AMDGPULegalizerInfo::legalizeFMad(), llvm::AMDGPULegalizerInfo::legalizeFPow(), llvm::AMDGPULegalizerInfo::legalizeFPTOI(), llvm::AMDGPULegalizerInfo::legalizeFrint(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeIntrinsicTrunc(), llvm::AMDGPULegalizerInfo::legalizeIsAddrSpace(), llvm::AMDGPULegalizerInfo::legalizeITOFP(), llvm::AMDGPULegalizerInfo::legalizeRsqClampIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeSignedDIV_REM(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM32Impl(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM64Impl(), llvm::AMDGPULegalizerInfo::loadInputValue(), llvm::LegalizerHelper::lowerDynStackAlloc(), llvm::LegalizerHelper::lowerExtract(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::LegalizerHelper::lowerFPTOSI(), llvm::LegalizerHelper::lowerFPTOUI(), llvm::LegalizerHelper::lowerFPTRUNC(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_F16(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerMergeValues(), llvm::AArch64CallLowering::lowerReturn(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::LegalizerHelper::lowerSITOFP(), llvm::LegalizerHelper::lowerStore(), llvm::LegalizerHelper::lowerU64ToF32BitOps(), llvm::LegalizerHelper::lowerUITOFP(), llvm::M68kLegalizerInfo::M68kLegalizerInfo(), matchAArch64MulConstCombine(), AMDGPUPreLegalizerCombinerHelper::matchClampI64ToI16(), AMDGPUPostLegalizerCombinerHelper::matchFMinFMaxLegacy(), matchFoldMergeToZext(), AMDGPUPostLegalizerCombinerHelper::matchUCharToFloat(), matchZeroExtendFromS32(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarAddSub(), llvm::LegalizerHelper::narrowScalarCTLZ(), llvm::LegalizerHelper::narrowScalarCTTZ(), llvm::LegalizerHelper::narrowScalarExtract(), llvm::LegalizerHelper::narrowScalarFPTOI(), llvm::LegalizerHelper::narrowScalarInsert(), llvm::LegalizerHelper::narrowScalarShift(), packImage16bitOpsToDwords(), llvm::AMDGPUCallLowering::passSpecialInputs(), llvm::LegalizerHelper::reduceLoadStoreWidth(), llvm::LegalizerHelper::reduceOperationWidth(), reinsertVectorIndexAdd(), scalarOrVector(), setBufferOffsets(), llvm::MipsRegisterBankInfo::setRegBank(), llvm::AMDGPURegisterBankInfo::splitBufferOffsets(), llvm::AMDGPULegalizerInfo::splitBufferOffsets(), splitUnequalType(), unpackV2S16ToS32(), widen96To128(), widenToNextPowerOf2(), and llvm::X86LegalizerInfo::X86LegalizerInfo().

◆ scalarOrVector() [1/2]

static LLT llvm::LLT::scalarOrVector ( ElementCount  EC,
LLT  ScalarTy 
)
inlinestatic

◆ scalarOrVector() [2/2]

static LLT llvm::LLT::scalarOrVector ( ElementCount  EC,
uint64_t  ScalarSize 
)
inlinestatic

Definition at line 102 of file LowLevelTypeImpl.h.

References assert(), llvm::max(), scalar(), and scalarOrVector().

◆ vector() [1/2]

static LLT llvm::LLT::vector ( ElementCount  EC,
LLT  ScalarTy 
)
inlinestatic

Get a low-level vector of some number of elements and element type.

Definition at line 64 of file LowLevelTypeImpl.h.

References assert(), getAddressSpace(), llvm::TypeSize::getFixedSize(), getSizeInBits(), isPointer(), and isVector().

◆ vector() [2/2]

static LLT llvm::LLT::vector ( ElementCount  EC,
unsigned  ScalarSizeInBits 
)
inlinestatic

Friends And Related Function Documentation

◆ DenseMapInfo< LLT >

friend struct DenseMapInfo< LLT >
friend

Definition at line 261 of file LowLevelTypeImpl.h.

◆ GISelInstProfileBuilder

friend class GISelInstProfileBuilder
friend

Definition at line 262 of file LowLevelTypeImpl.h.


The documentation for this class was generated from the following files: