LLVM
15.0.0git
|
#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... | |
LLT | multiplyElements (int Factor) const |
Produce a vector type that is Factor times bigger, preserving the element type. 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 |
Definition at line 39 of file LowLevelTypeImpl.h.
|
inlineexplicit |
Definition at line 107 of file LowLevelTypeImpl.h.
References isPointer(), isScalar(), and isVector().
|
inlineexplicit |
Definition at line 111 of file LowLevelTypeImpl.h.
|
explicit |
|
inline |
Return a vector or scalar with the same element type and the new element count.
Definition at line 189 of file LowLevelTypeImpl.h.
References getScalarType(), and scalarOrVector().
Referenced by applyDupLane(), buildCopyFromRegs(), llvm::LegalizeMutations::changeElementCountTo(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), getPow2VectorType(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), and widenToNextPowerOf2().
|
inline |
If this type is a vector, return a vector with the same number of elements but the new element size.
Otherwise, return the new element type. Invalid for pointer types. For pointer types, use changeElementType.
Definition at line 180 of file LowLevelTypeImpl.h.
References assert(), getElementCount(), getScalarType(), isPointer(), isVector(), scalar(), and vector().
Referenced by llvm::CombinerHelper::buildUDivUsingMul(), llvm::SITargetLowering::getPreferredShiftAmountTy(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::LegalizerHelper::lowerAddSubSatToAddoSubo(), llvm::LegalizerHelper::lowerBitCount(), llvm::LegalizerHelper::lowerFFloor(), llvm::LegalizerHelper::lowerIntrinsicRound(), llvm::LegalizerHelper::lowerMinMax(), llvm::LegalizerHelper::lowerShlSat(), llvm::LegalizerHelper::lowerSMULH_UMULH(), llvm::CombinerHelper::matchUDivByConst(), llvm::LegalizeMutations::widenScalarOrEltToNextMultipleOf(), and llvm::LegalizeMutations::widenScalarOrEltToNextPow2().
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 173 of file LowLevelTypeImpl.h.
References getElementCount(), isVector(), and vector().
Referenced by buildCopyFromRegs(), llvm::LegalizeMutations::changeElementSizeTo(), and llvm::LegalizeMutations::changeElementTo().
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 196 of file LowLevelTypeImpl.h.
References assert(), getElementCount(), getElementType(), getScalarSizeInBits(), isScalar(), isVector(), scalar(), and scalarOrVector().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), and llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues().
|
inline |
Definition at line 259 of file LowLevelTypeImpl.h.
References llvm::dbgs(), and print().
Get a low-level fixed-width vector of some number of elements and element type.
Definition at line 80 of file LowLevelTypeImpl.h.
References llvm::LinearPolySize< ElementCount >::getFixed(), and vector().
|
inlinestatic |
Get a low-level fixed-width vector of some number of elements and element width.
Definition at line 74 of file LowLevelTypeImpl.h.
References llvm::LinearPolySize< ElementCount >::getFixed(), and vector().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizeRuleSet::alignNumElementsTo(), llvm::AArch64TargetLowering::allowsMisalignedMemoryAccesses(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), AMDGPUPreLegalizerCombinerHelper::applyClampI64ToI16(), applyDupLane(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), buildCopyFromRegs(), llvm::LegalizeRuleSet::clampMinNumElements(), convertImageAddrToPacked(), createNewIdReg(), llvm::getGCDType(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::getLCMType(), llvm::AArch64TargetLowering::getOptimalMemOpLLT(), llvm::AMDGPUFunctionArgInfo::getPreloadedValue(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPUCallLowering::handleImplicitCallArguments(), llvm::AMDGPU::hasAtomicFaddRtnForTy(), llvm::AMDGPULegalizerInfo::legalizeAtomicCmpXChg(), llvm::AMDGPULegalizerInfo::legalizeBuildVector(), llvm::AMDGPULegalizerInfo::legalizeBVHIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeShuffleVector(), llvm::LegalizerHelper::lowerBitcast(), makeDstOps(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), llvm::LegalizeMutations::moreElementsToNextPow2(), moreEltsToNext32Bit(), multiplyElements(), oneMoreElement(), packImage16bitOpsToDwords(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), and widen96To128().
|
inline |
Definition at line 238 of file LowLevelTypeImpl.h.
References assert().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), llvm::CSEMIRBuilder::buildInstr(), llvm::LegalizerHelper::coerceToScalar(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::createMemLibcall(), llvm::InstructionSelector::executeMatchTable(), getElementType(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappings(), llvm::AMDGPURegisterBankInfo::getInstrMappingForLoad(), llvm::AMDGPURegisterBankInfo::getValueMappingForPtr(), llvm::CallLowering::handleAssignments(), llvm::LegalityPredicates::isPointer(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeAtomicCmpXChg(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerMergeValues(), llvm::CombinerHelper::matchPtrAddImmedChain(), llvm::CombinerHelper::matchPtrAddZero(), print(), and vector().
|
inline |
Definition at line 143 of file LowLevelTypeImpl.h.
References assert(), llvm::LinearPolySize< ElementCount >::get(), and isScalable().
Referenced by buildCopyFromRegs(), llvm::LegalizeMutations::changeElementCountTo(), changeElementSize(), changeElementType(), divide(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), llvm::getApproximateEVTForLLT(), getHalfSizedType(), llvm::getLCMType(), getNumElements(), getSizeInBits(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), llvm::LegalizerHelper::moreElementsVector(), multiplyElements(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), print(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Returns the vector's element type. Only valid for vector types.
Definition at line 248 of file LowLevelTypeImpl.h.
References assert(), getAddressSpace(), getScalarSizeInBits(), isVector(), pointer(), and scalar().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizeRuleSet::alignNumElementsTo(), applyINS(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), llvm::MachineIRBuilder::buildBuildVectorConstant(), llvm::CSEMIRBuilder::buildConstant(), buildCopyFromRegs(), buildCopyToRegs(), llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(), llvm::CSEMIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildPadVectorWithUndefElements(), 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::fewerElementsVectorShuffle(), fewerEltsToSize64Vector(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), llvm::getApproximateEVTForLLT(), llvm::getCoverTy(), llvm::getGCDType(), getHalfSizedType(), llvm::getLCMType(), llvm::getMVTForLLT(), getScalarType(), llvm::LegalizerHelper::getVectorElementPointer(), getVectorSHLImm(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::CombinerHelper::isConstantLegalOrBeforeLegalizer(), isRegisterVectorType(), isSmallOddVector(), llvm::AMDGPULegalizerInfo::legalizeBVHIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), 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(), makeDstOps(), matchDupLane(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), llvm::LegalizeMutations::moreElementsToNextPow2(), moreEltsToNext32Bit(), multiplyElements(), oneMoreElement(), print(), shouldBitcastLoadStoreType(), splitUnequalType(), widen96To128(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Returns the number of elements in a vector LLT.
Must only be called on vector types.
Definition at line 126 of file LowLevelTypeImpl.h.
References getElementCount(), llvm::LinearPolySize< LeafTy >::getKnownMinValue(), isScalable(), and llvm::reportInvalidSizeRequest().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizeRuleSet::alignNumElementsTo(), applyDupLane(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), buildCopyFromRegs(), llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildPadVectorWithUndefElements(), llvm::MachineIRBuilder::buildShuffleSplat(), llvm::MachineIRBuilder::buildShuffleVector(), clampDynamicVectorIndex(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegalizeRuleSet::clampNumElements(), llvm::GISelKnownBits::computeNumSignBits(), llvm::LegalizerHelper::fewerElementsVector(), llvm::LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(), llvm::LegalizerHelper::fewerElementsVectorMerge(), llvm::LegalizerHelper::fewerElementsVectorMultiEltType(), llvm::LegalizerHelper::fewerElementsVectorPhi(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), fewerEltsToSize64Vector(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), llvm::getCoverTy(), llvm::getGCDType(), llvm::GISelKnownBits::getKnownBits(), llvm::getLCMType(), llvm::getMVTForLLT(), getPow2VectorType(), getTypeForLLT(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), hasSameNumEltsOnAllVectorOperands(), isRegisterVectorType(), isSmallOddVector(), isWideVec16(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::LegalizerHelper::lowerBitcast(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerInsert(), 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::moreElementsVector(), llvm::LegalizerHelper::moreElementsVectorShuffle(), mutationIsSane(), numElementsNotEven(), llvm::LegalityPredicates::numElementsNotPow2(), oneMoreElement(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateTruncExt(), and widenToNextPowerOf2().
|
inline |
Definition at line 224 of file LowLevelTypeImpl.h.
References llvm_unreachable.
Referenced by llvm::CombinerHelper::applyAshShlToSextInreg(), llvm::CombinerHelper::applyRotateOutOfRange(), llvm::CombinerHelper::applyShiftImmedChain(), llvm::CombinerHelper::applyUMulHToLShr(), llvm::MachineIRBuilder::buildConstant(), buildCopyFromRegs(), buildCopyToRegs(), llvm::CallLowering::IncomingValueHandler::buildExtensionHint(), llvm::MachineIRBuilder::buildFConstant(), buildLogBase2(), llvm::CombinerHelper::buildUDivUsingMul(), llvm::MachineIRBuilder::buildZExtInReg(), llvm::LegalizeMutations::changeElementSizeTo(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::GISelKnownBits::computeNumSignBits(), llvm::ConstantFoldExtOp(), llvm::SITargetLowering::denormalsEnabledForType(), divide(), llvm::getCoverTy(), getElementType(), getHalfSizedType(), getMemsetValue(), getNarrowTypeBreakDown(), llvm::SITargetLowering::getPreferredShiftAmountTy(), getSizeInBits(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), getTypeForLLT(), llvm::isConstantOrConstantSplatVector(), llvm::SITargetLowering::isFMADLegal(), llvm::TargetLoweringBase::isFMADLegal(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SITargetLowering::isFPExtFoldable(), llvm::isKnownToBeAPowerOfTwo(), isVShiftRImm(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerAbsToAddXor(), llvm::LegalizerHelper::lowerAddSubSatToAddoSubo(), llvm::LegalizerHelper::lowerAddSubSatToMinMax(), llvm::LegalizerHelper::lowerBswap(), llvm::LegalizerHelper::lowerFCopySign(), llvm::AArch64CallLowering::lowerFormalArguments(), 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::matchBitfieldExtractFromShrAnd(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineZextTrunc(), matchEXT(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchRedundantSExtInReg(), matchREV(), llvm::CombinerHelper::matchRotateOutOfRange(), llvm::CombinerHelper::matchSelectToLogical(), llvm::CombinerHelper::matchShiftImmedChain(), llvm::CombinerHelper::matchShiftOfShiftedLogic(), llvm::CombinerHelper::matchTruncStoreMerge(), 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::GISelKnownBits::signBitIsZero(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), tryToSimplifyUADDO(), llvm::LegalizerHelper::widenScalar(), llvm::LegalizeMutations::widenScalarOrEltToNextMultipleOf(), and llvm::LegalizeMutations::widenScalarOrEltToNextPow2().
|
inline |
Definition at line 167 of file LowLevelTypeImpl.h.
References getElementType(), and isVector().
Referenced by llvm::CombinerHelper::applyCombineInsertVecElts(), llvm::MachineIRBuilder::buildConstant(), buildCopyFromRegs(), llvm::MachineIRBuilder::buildFConstant(), llvm::CSEMIRBuilder::buildInstr(), llvm::CombinerHelper::buildUDivUsingMul(), changeElementCount(), changeElementSize(), llvm::LegalizerHelper::fewerElementsVectorMerge(), llvm::LegalizerHelper::fewerElementsVectorUnmergeValues(), getMemsetValue(), isCopyCompatibleType(), isWideVec16(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::LegalizerHelper::lowerFPTOSI(), llvm::LegalizerHelper::lowerFPTRUNC(), llvm::CombinerHelper::matchCombineConcatVectors(), llvm::CombinerHelper::matchPtrAddZero(), llvm::LegalizerHelper::moreElementsVector(), mutationIsSane(), llvm::LegalizerHelper::narrowScalarFPTOI(), and llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast().
|
inline |
Returns the total size of the type. Must only be called on sized types.
Definition at line 152 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::CombinerHelper::applyTruncStoreMerge(), 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::AMDGPURegisterBankInfo::buildReadFirstLane(), 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::fewerElementsVectorMerge(), llvm::LegalizerHelper::fewerElementsVectorUnmergeValues(), fewerEltsToSize64Vector(), findGISelOptimalMemOpLowering(), llvm::getApproximateEVTForLLT(), getBitcastRegisterType(), getBitcastWiderVectorElementOffset(), getCmpOperandFoldingProfit(), 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::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::AMDGPULegalizerInfo::legalizeBVHIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeCTLZ_CTTZ(), llvm::MipsLegalizerInfo::legalizeCustom(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::AMDGPULegalizerInfo::legalizeFrint(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::AMDGPULegalizerInfo::legalizeMul(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeSignedDIV_REM(), llvm::LegalizerHelper::libcall(), loadStoreBitcastWorkaround(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerBitCount(), llvm::LegalizerHelper::lowerBitreverse(), llvm::AArch64CallLowering::lowerCall(), llvm::LegalizerHelper::lowerDynStackAlloc(), llvm::LegalizerHelper::lowerExtract(), llvm::AArch64CallLowering::lowerFormalArguments(), 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(), llvm::LegalizerHelper::lowerVectorReduction(), matchAArch64MulConstCombine(), llvm::CombinerHelper::matchCombineExtendingLoads(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchCombineShiftToUnmerge(), llvm::CombinerHelper::matchCombineTruncOfShl(), llvm::CombinerHelper::matchCombineUnmergeConstant(), llvm::CombinerHelper::matchCombineUnmergeMergeToPlainValues(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), matchDupLane(), matchExtractVecEltPairwiseAdd(), matchFConstantToConstant(), matchFormTruncstore(), matchICmpRedundantTrunc(), llvm::CombinerHelper::matchICmpToLHSKnownBits(), llvm::CombinerHelper::matchLoadOrCombine(), llvm::CombinerHelper::matchNarrowBinopFeedingAnd(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchSextTruncSextLoad(), matchSplitStoreZero128(), llvm::CombinerHelper::matchTruncStoreMerge(), AMDGPUPostLegalizerCombinerHelper::matchUCharToFloat(), llvm::LegalizeRuleSet::maxScalar(), llvm::LegalizeRuleSet::maxScalarIf(), mergeVectorRegsToResultRegs(), llvm::LegalizeRuleSet::minScalar(), 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::InstructionSelect::runOnMachineFunction(), llvm::LegalityPredicates::scalarNarrowerThan(), llvm::LegalityPredicates::scalarWiderThan(), selectFPConvOpc(), selectMergeValues(), selectUnmergeValues(), setRegsToType(), shouldBitcastLoadStoreType(), shouldWidenLoad(), sizeIsMultipleOf32(), llvm::LegalityPredicates::sizeNotMultipleOf(), 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(), and widenToNextPowerOf2().
|
inline |
Returns the total size of the type in bytes, i.e.
number of whole bytes needed to represent the size in bits. Must only be called on sized types.
Definition at line 162 of file LowLevelTypeImpl.h.
References llvm::TypeSize::getKnownMinSize(), getSizeInBits(), and llvm::LinearPolySize< LeafTy >::isScalable().
Referenced by llvm::AArch64TargetLowering::allowsMisalignedMemoryAccesses(), findGISelOptimalMemOpLowering(), llvm::LegalizerHelper::getStackTemporaryAlignment(), llvm::CallLowering::handleAssignments(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerStore(), and llvm::LegalityPredicates::memSizeNotByteSizePow2().
|
inline |
Definition at line 385 of file LowLevelTypeImpl.h.
Referenced by llvm::GISelInstProfileBuilder::addNodeIDRegType(), and llvm::DenseMapInfo< LLT >::getHashValue().
|
inline |
Definition at line 222 of file LowLevelTypeImpl.h.
References getSizeInBits(), and llvm::LinearPolySize< LeafTy >::isKnownMultipleOf().
Referenced by llvm::LegalizerInfo::getExtOpcodeForWideningConstant(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), and llvm::LegalityPredicates::memSizeNotByteSizePow2().
|
inline |
Definition at line 120 of file LowLevelTypeImpl.h.
References isValid().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::MachineIRBuilder::buildAtomicCmpXchg(), llvm::MachineIRBuilder::buildAtomicCmpXchgWithSuccess(), llvm::MachineIRBuilder::buildAtomicRMW(), llvm::MachineIRBuilder::buildCast(), buildCopyFromRegs(), llvm::MachineIRBuilder::buildFConstant(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), llvm::MachineIRBuilder::buildInstr(), changeElementSize(), llvm::LegalizerHelper::coerceToScalar(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::createMemLibcall(), createNewIdReg(), llvm::InstructionSelector::executeMatchTable(), llvm::CallLowering::ValueHandler::extendRegister(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::X86GenRegisterBankInfo::getPartialMappingIdx(), getSizeInBits(), isCopyCompatibleType(), llvm::LegalityPredicates::isPointer(), llvm::SPIRVLegalizerInfo::legalizeCustom(), LLT(), loadStoreBitcastWorkaround(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerMergeValues(), llvm::LegalizerHelper::lowerStore(), llvm::LegalizerHelper::lowerUnmergeValues(), llvm::CombinerHelper::matchPtrAddZero(), print(), llvm::MipsRegisterBankInfo::setRegBank(), llvm::AMDGPULegalizerInfo::splitBufferOffsets(), llvm::MachineIRBuilder::validateSelectOp(), vector(), and X86SelectAddress().
|
inline |
Returns true if the LLT is a scalable vector.
Must only be called on vector types.
Definition at line 137 of file LowLevelTypeImpl.h.
References assert(), and isVector().
Referenced by getElementCount(), and getNumElements().
|
inline |
Definition at line 118 of file LowLevelTypeImpl.h.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), AMDGPUPostLegalizerCombinerHelper::applyCvtF32UByteN(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::MachineIRBuilder::buildAtomicCmpXchg(), llvm::MachineIRBuilder::buildAtomicCmpXchgWithSuccess(), llvm::MachineIRBuilder::buildAtomicRMW(), llvm::MachineIRBuilder::buildCast(), buildCopyToRegs(), llvm::MachineIRBuilder::buildInstr(), llvm::CombinerHelper::buildUDivUsingMul(), llvm::LegalizeRuleSet::clampScalar(), llvm::LegalizerHelper::coerceToScalar(), divide(), llvm::LegalizerHelper::fewerElementsVectorReductions(), getFloatTypeForLLT(), llvm::getFltSemanticForLLT(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::X86GenRegisterBankInfo::getPartialMappingIdx(), getSizeInBits(), isCopyCompatibleType(), llvm::SITargetLowering::isFMADLegal(), llvm::AMDGPULegalizerInfo::legalizeFMad(), llvm::AMDGPULegalizerInfo::legalizeFrint(), llvm::AMDGPULegalizerInfo::legalizeMul(), LLT(), llvm::LegalizerHelper::lowerExtract(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerSelect(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::LegalizerHelper::lowerVectorReduction(), llvm::CombinerHelper::matchCombineExtendingLoads(), matchICmpRedundantTrunc(), matchMutateAnyExtToZExt(), llvm::CombinerHelper::matchNarrowBinopFeedingAnd(), llvm::CombinerHelper::matchTruncStoreMerge(), llvm::MachineIRBuilder::materializePtrAdd(), llvm::LegalizeRuleSet::maxScalarIf(), llvm::LegalizerHelper::moreElementsVector(), llvm::LegalizerHelper::narrowScalarCTLZ(), llvm::LegalizerHelper::narrowScalarCTPOP(), llvm::LegalizerHelper::narrowScalarCTTZ(), print(), llvm::LegalityPredicates::scalarNarrowerThan(), llvm::LegalityPredicates::scalarWiderThan(), selectFPConvOpc(), llvm::LegalityPredicates::sizeNotMultipleOf(), llvm::LegalityPredicates::sizeNotPow2(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), tryToSimplifyUADDO(), llvm::MachineIRBuilder::validateBinaryOp(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateShiftOp(), llvm::MachineIRBuilder::validateTruncExt(), llvm::MachineIRBuilder::validateUnaryOp(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 116 of file LowLevelTypeImpl.h.
Referenced by llvm::GISelInstProfileBuilder::addNodeIDReg(), llvm::MIPatternMatch::bind_helper< LLT >::bind(), llvm::MachineIRBuilder::buildAtomicCmpXchg(), llvm::MachineIRBuilder::buildAtomicCmpXchgWithSuccess(), llvm::MachineIRBuilder::buildAtomicRMW(), llvm::MachineIRBuilder::buildExtract(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::GISelKnownBits::computeNumSignBits(), llvm::MachineRegisterInfo::constrainRegAttrs(), llvm::getFunctionLiveInPhysReg(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::TargetRegisterInfo::getMinimalPhysRegClassLLT(), getNarrowTypeBreakDown(), llvm::AMDGPURegisterBankInfo::getRegBankFromRegClass(), llvm::TargetRegisterInfo::getRegSizeInBits(), llvm::MachineInstr::getTypeToPrint(), isPointer(), isVector(), makeDstOps(), print(), llvm::MachineOperand::print(), llvm::LegalizerHelper::reduceLoadStoreWidth(), llvm::InstructionSelect::runOnMachineFunction(), unsupportedBinOp(), and llvm::SIMachineFunctionInfo::usesAGPRs().
|
inline |
Definition at line 122 of file LowLevelTypeImpl.h.
References isValid().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizeRuleSet::alignNumElementsTo(), llvm::CombinerHelper::applyCombineUnmergeWithDeadLanesToTrunc(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), applySplitStoreZero128(), llvm::LegalizerHelper::bitcast(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), llvm::CSEMIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildConstant(), buildCopyFromRegs(), buildCopyToRegs(), llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(), llvm::CSEMIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildFConstant(), llvm::CSEMIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildPadVectorWithUndefElements(), llvm::CombinerHelper::buildUDivUsingMul(), llvm::LegalizationArtifactCombiner::canFoldMergeOpcode(), llvm::LegalizeMutations::changeElementCountTo(), changeElementSize(), changeElementType(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegalizerHelper::coerceToScalar(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::GISelKnownBits::computeNumSignBits(), llvm::ConstantFoldCTLZ(), createNewIdReg(), divide(), llvm::LegalityPredicates::elementTypeIs(), elementTypeIsLegal(), llvm::LegalizerHelper::fewerElementsVector(), llvm::LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(), llvm::LegalizerHelper::fewerElementsVectorMerge(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorUnmergeValues(), findGISelOptimalMemOpLowering(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), llvm::getApproximateEVTForLLT(), getCmpOperandFoldingProfit(), llvm::getCoverTy(), 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(), hasSameNumEltsOnAllVectorOperands(), llvm::CombinerHelper::isConstantLegalOrBeforeLegalizer(), 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(), makeDstOps(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchCombineShiftToUnmerge(), llvm::CombinerHelper::matchCombineShuffleVector(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchExtendThroughPhis(), matchFormTruncstore(), llvm::CombinerHelper::matchICmpToLHSKnownBits(), 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(), matchSplitStoreZero128(), llvm::CombinerHelper::matchUDivByConst(), matchVAshrLshrImm(), llvm::LegalizerHelper::moreElementsVector(), multiplyElements(), 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(), 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().
Produce a vector type that is Factor
times bigger, preserving the element type.
For a scalar or pointer, this will produce a new vector with Factor
elements.
Definition at line 213 of file LowLevelTypeImpl.h.
References fixed_vector(), getElementCount(), getElementType(), isVector(), and scalarOrVector().
Definition at line 270 of file LowLevelTypeImpl.h.
References RHS.
Definition at line 265 of file LowLevelTypeImpl.h.
References RHS.
|
inlinestatic |
Get a low-level pointer in the given address space.
Definition at line 49 of file LowLevelTypeImpl.h.
References assert(), and llvm::LinearPolySize< ElementCount >::getFixed().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), addCallTargetOperands(), allocateHSAUserSGPRs(), llvm::SITargetLowering::allocateHSAUserSGPRs(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::ARMLegalizerInfo::ARMLegalizerInfo(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), llvm::AMDGPULegalizerInfo::buildPCRelGlobalAddress(), createNewIdReg(), llvm::LegalizerHelper::createStackTemporary(), getElementType(), llvm::AMDGPULegalizerInfo::getKernargParameterPtr(), llvm::getLLTForType(), llvm::AMDGPUFunctionArgInfo::getPreloadedValue(), llvm::AMDGPULegalizerInfo::getSegmentAperture(), M68kOutgoingArgHandler::getStackAddress(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), llvm::CallLowering::insertSRetIncomingArgument(), llvm::CallLowering::insertSRetOutgoingArgument(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::MipsLegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::AMDGPULegalizerInfo::legalizeTrapHsaQueuePtr(), llvm::MipsCallLowering::lowerCall(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), llvm::M68kLegalizerInfo::M68kLegalizerInfo(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), and llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo().
void LLT::print | ( | raw_ostream & | OS | ) | const |
Definition at line 37 of file LowLevelType.cpp.
References assert(), getAddressSpace(), getElementCount(), getElementType(), getScalarSizeInBits(), isPointer(), isScalar(), isValid(), and isVector().
Referenced by dump(), and llvm::operator<<().
Get a low-level scalable vector of some number of elements and element type.
Definition at line 93 of file LowLevelTypeImpl.h.
References llvm::LinearPolySize< ElementCount >::getScalable(), and vector().
|
inlinestatic |
Get a low-level scalable vector of some number of elements and element width.
Definition at line 86 of file LowLevelTypeImpl.h.
References llvm::LinearPolySize< ElementCount >::getScalable(), and vector().
|
inlinestatic |
Get a low-level scalar or aggregate "bag of bits".
Definition at line 42 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::applyMappingMAD_64_32(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), applySplitStoreZero128(), AMDGPUPostLegalizerCombinerHelper::applyUCharToFloat(), applyVAshrLshrImm(), llvm::ARMLegalizerInfo::ARMLegalizerInfo(), buildAnyextOrCopy(), llvm::SPIRVGlobalRegistry::buildConstantFP(), llvm::SPIRVGlobalRegistry::buildConstantInt(), buildCopyFromRegs(), buildCopyToRegs(), llvm::MachineIRBuilder::buildLoadFromOffset(), llvm::MachineIRBuilder::buildMaskLowPtrBits(), llvm::AMDGPULegalizerInfo::buildMultiply(), llvm::AMDGPURegisterBankInfo::buildReadFirstLane(), llvm::MachineIRBuilder::buildShuffleSplat(), llvm::CombinerHelper::buildUDivUsingMul(), changeElementSize(), llvm::LegalizeMutations::changeElementSizeTo(), llvm::LegalizerHelper::coerceToScalar(), convertImageAddrToPacked(), llvm::CallLowering::ValueHandler::copyArgumentMemory(), createNewIdReg(), createTypeVReg(), 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::AMDGPULegalizerInfo::getKernargParameterPtr(), 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(), M68kOutgoingArgHandler::getStackAddress(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPU::hasAtomicFaddRtnForTy(), llvm::AMDGPUTargetLowering::isConstantUnsignedBitfieldExtractLegal(), 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::SPIRVLegalizerInfo::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::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeIntrinsicTrunc(), llvm::AMDGPULegalizerInfo::legalizeIsAddrSpace(), llvm::AMDGPULegalizerInfo::legalizeITOFP(), llvm::AMDGPULegalizerInfo::legalizeKernargMemParameter(), llvm::AMDGPULegalizerInfo::legalizeMul(), llvm::AMDGPULegalizerInfo::legalizeRsqClampIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeSignedDIV_REM(), llvm::AMDGPULegalizerInfo::legalizeTrapHsaQueuePtr(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM32Impl(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM64Impl(), llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), llvm::AMDGPULegalizerInfo::loadInputValue(), llvm::AArch64CallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerCall(), llvm::LegalizerHelper::lowerDynStackAlloc(), llvm::LegalizerHelper::lowerExtract(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::AArch64CallLowering::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::lowerSelect(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::LegalizerHelper::lowerSITOFP(), llvm::LegalizerHelper::lowerStore(), llvm::LegalizerHelper::lowerU64ToF32BitOps(), llvm::LegalizerHelper::lowerUITOFP(), llvm::M68kLegalizerInfo::M68kLegalizerInfo(), matchAArch64MulConstCombine(), AMDGPUPreLegalizerCombinerHelper::matchClampI64ToI16(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), AMDGPUPostLegalizerCombinerHelper::matchFMinFMaxLegacy(), matchFoldMergeToZext(), AMDGPURegBankCombinerHelper::matchFPMinMaxToMed3(), llvm::CombinerHelper::matchNarrowBinopFeedingAnd(), llvm::CombinerHelper::matchSextInRegOfLoad(), AMDGPUPostLegalizerCombinerHelper::matchUCharToFloat(), llvm::CombinerHelper::matchUDivByConst(), 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(), reinsertVectorIndexAdd(), scalarOrVector(), setBufferOffsets(), llvm::MipsRegisterBankInfo::setRegBank(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), llvm::AMDGPURegisterBankInfo::splitBufferOffsets(), llvm::AMDGPULegalizerInfo::splitBufferOffsets(), splitUnequalType(), tryToSimplifyUADDO(), unpackV2S16ToS32(), widen96To128(), widenToNextPowerOf2(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
|
inlinestatic |
Definition at line 97 of file LowLevelTypeImpl.h.
References vector().
Referenced by llvm::LegalizerHelper::bitcastExtractVectorElt(), bitcastToVectorElement32(), changeElementCount(), llvm::LegalizeRuleSet::clampMaxNumElements(), divide(), fewerEltsToSize64Vector(), getBitcastRegisterType(), llvm::getCoverTy(), llvm::getGCDType(), getHalfSizedType(), llvm::getLLTForMVT(), getNarrowTypeBreakDown(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), multiplyElements(), scalarOrVector(), and splitUnequalType().
|
inlinestatic |
Definition at line 101 of file LowLevelTypeImpl.h.
References assert(), llvm::max(), scalar(), and scalarOrVector().
|
inlinestatic |
Get a low-level vector of some number of elements and element type.
Definition at line 63 of file LowLevelTypeImpl.h.
References assert(), getAddressSpace(), llvm::TypeSize::getFixedSize(), getSizeInBits(), isPointer(), and isVector().
|
inlinestatic |
Get a low-level vector of some number of elements and element width.
Definition at line 56 of file LowLevelTypeImpl.h.
References assert().
Referenced by changeElementSize(), changeElementType(), fixed_vector(), llvm::getLCMType(), llvm::getLLTForType(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), llvm::LegalizerHelper::narrowScalar(), scalable_vector(), scalarOrVector(), and llvm::LegalizerHelper::widenScalar().
|
friend |
Definition at line 272 of file LowLevelTypeImpl.h.
|
friend |
Definition at line 273 of file LowLevelTypeImpl.h.