LLVM  13.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, uint16_t NumElements, unsigned 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...
 
unsigned getSizeInBits () const
 Returns the total size of the type. Must only be called on sized types. More...
 
unsigned 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 changeNumElements (unsigned NewNumElts) const
 Return a vector or scalar with the same element type and the new number of elements. 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
 

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 (uint16_t NumElements, unsigned ScalarSizeInBits)
 Get a low-level vector of some number of elements and element width. More...
 
static LLT vector (uint16_t NumElements, LLT ScalarTy)
 Get a low-level vector of some number of elements and element type. More...
 
static LLT scalarOrVector (uint16_t NumElements, LLT ScalarTy)
 
static LLT scalarOrVector (uint16_t NumElements, unsigned 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,
uint16_t  NumElements,
unsigned  SizeInBits,
unsigned  AddressSpace 
)
inlineexplicit

Definition at line 82 of file LowLevelTypeImpl.h.

References isPointer(), and isVector().

◆ LLT() [2/3]

llvm::LLT::LLT ( )
inlineexplicit

Definition at line 86 of file LowLevelTypeImpl.h.

◆ LLT() [3/3]

LLT::LLT ( MVT  VT)
explicit

Member Function Documentation

◆ 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 127 of file LowLevelTypeImpl.h.

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

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

◆ changeNumElements()

LLT llvm::LLT::changeNumElements ( unsigned  NewNumElts) const
inline

Return a vector or scalar with the same element type and the new number of elements.

Definition at line 143 of file LowLevelTypeImpl.h.

References getScalarType(), and scalarOrVector().

Referenced by applyDupLane(), getPow2VectorType(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), and widenToNextPowerOf2().

◆ 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 150 of file LowLevelTypeImpl.h.

References assert(), getElementType(), getNumElements(), getSizeInBits(), 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 199 of file LowLevelTypeImpl.h.

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

◆ getAddressSpace()

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

◆ getElementType()

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

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

Definition at line 188 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(), 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::lowerSelect(), llvm::LegalizerHelper::lowerShuffleVector(), 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 100 of file LowLevelTypeImpl.h.

References assert().

Referenced by applyDupLane(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), buildCopyFromRegs(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildShuffleSplat(), llvm::MachineIRBuilder::buildShuffleVector(), changeElementSize(), changeElementType(), clampDynamicVectorIndex(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegalizeRuleSet::clampNumElements(), llvm::GISelKnownBits::computeNumSignBits(), divide(), llvm::LegalizerHelper::fewerElementsVectorCasts(), llvm::LegalizerHelper::fewerElementsVectorCmp(), llvm::LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(), llvm::LegalizerHelper::fewerElementsVectorMulo(), llvm::LegalizerHelper::fewerElementsVectorMultiEltType(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorSelect(), fewerEltsToSize64Vector(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), llvm::getGCDType(), getHalfSizedType(), llvm::GISelKnownBits::getKnownBits(), llvm::getLCMType(), llvm::getLLTForType(), llvm::getMVTForLLT(), getPow2VectorType(), getSizeInBits(), 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::moreElementsVectorSrc(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), numElementsNotEven(), llvm::LegalityPredicates::numElementsNotPow2(), oneMoreElement(), print(), llvm::LegalizerHelper::reduceOperationWidth(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateTruncExt(), llvm::LegalizerHelper::widenScalar(), and widenToNextPowerOf2().

◆ getScalarSizeInBits()

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

Definition at line 163 of file LowLevelTypeImpl.h.

References assert().

Referenced by llvm::CombinerHelper::applyAshShlToSextInreg(), 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::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::LegalizerHelper::fewerElementsVectorCmp(), llvm::LegalizerHelper::fewerElementsVectorSelect(), getElementType(), getMemsetValue(), getNarrowTypeBreakDown(), llvm::SITargetLowering::getPreferredShiftAmountTy(), getSizeInBits(), getTypeForLLT(), llvm::isKnownToBeAPowerOfTwo(), isVShiftRImm(), llvm::LegalizerHelper::lower(), 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(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineZextTrunc(), matchEXT(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchRedundantSExtInReg(), matchREV(), llvm::CombinerHelper::matchShiftImmedChain(), llvm::CombinerHelper::matchShiftOfShiftedLogic(), llvm::LegalizeRuleSet::maxScalarOrElt(), llvm::LegalizeRuleSet::minScalarOrElt(), llvm::LegalizeRuleSet::minScalarOrEltIf(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), 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()

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

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

Definition at line 109 of file LowLevelTypeImpl.h.

References getNumElements(), 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::CallLowering::IncomingValueHandler::assignValueToReg(), 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(), divide(), 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(), getHalfSizedType(), 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(), isLoadStoreSizeLegal(), isRegisterType(), isRegisterVectorElementType(), isRegisterVectorType(), isSmallOddVector(), isWideScalarTruncStore(), 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::legalizeSDIV_SREM(), 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(), matchBitfieldExtractFromSExtInReg(), llvm::CombinerHelper::matchCombineExtendingLoads(), llvm::CombinerHelper::matchCombineShiftToUnmerge(), llvm::CombinerHelper::matchCombineTruncOfShl(), llvm::CombinerHelper::matchCombineUnmergeConstant(), llvm::CombinerHelper::matchCombineUnmergeMergeToPlainValues(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), matchDupLane(), matchExtractVecEltPairwiseAdd(), matchFConstantToConstant(), 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::narrowScalarAddSub(), 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(), sizeIsMultipleOf32(), llvm::LegalityPredicates::sizeNotPow2(), llvm::AMDGPURegisterBankInfo::split64BitValueForMapping(), splitUnequalType(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineExtract(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateTruncExt(), vector(), vectorSmallerThan(), vectorWiderThan(), widen96To128(), llvm::LegalizerHelper::widenScalar(), widenToNextPowerOf2(), and llvm::LegalizerHelper::widenWithUnmerge().

◆ getSizeInBytes()

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

◆ isByteSized()

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

◆ isPointer()

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

◆ isScalar()

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

Definition at line 92 of file LowLevelTypeImpl.h.

References isValid().

Referenced by AMDGPUPostLegalizerCombinerHelper::applyCvtF32UByteN(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::MachineIRBuilder::buildAtomicCmpXchg(), llvm::MachineIRBuilder::buildAtomicCmpXchgWithSuccess(), llvm::MachineIRBuilder::buildAtomicRMW(), llvm::MachineIRBuilder::buildCast(), llvm::MachineIRBuilder::buildInstr(), llvm::LegalizeRuleSet::clampScalar(), llvm::LegalizerHelper::coerceToScalar(), getFloatTypeForLLT(), llvm::getFltSemanticForLLT(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::X86GenRegisterBankInfo::getPartialMappingIdx(), getSizeInBits(), llvm::AMDGPULegalizerInfo::legalizeFMad(), llvm::AMDGPULegalizerInfo::legalizeFrint(), llvm::LegalizerHelper::lowerExtract(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), 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 96 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(), getVectorShiftImm(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), isRegisterType(), isSmallOddVector(), isVShiftRImm(), isWideScalarTruncStore(), 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(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineShiftToUnmerge(), llvm::CombinerHelper::matchCombineShuffleVector(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchExtendThroughPhis(), 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::narrowScalarInsert(), 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 210 of file LowLevelTypeImpl.h.

◆ operator==()

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

Definition at line 205 of file LowLevelTypeImpl.h.

◆ pointer()

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

◆ print()

void LLT::print ( raw_ostream OS) const

◆ 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 assert().

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::applyMappingBFEIntrinsic(), llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), llvm::MipsRegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), AMDGPUPostLegalizerCombinerHelper::applyUCharToFloat(), applyVAshrLshrImm(), llvm::ARMLegalizerInfo::ARMLegalizerInfo(), buildAnyextOrCopy(), buildCopyFromRegs(), 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(), findGISelOptimalMemOpLowering(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), getBitcastRegisterType(), getElementType(), llvm::getGCDType(), getHalfSizedType(), llvm::AMDGPULegalizerInfo::getImplicitArgPtr(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::getLCMType(), llvm::getLLTForMVT(), llvm::getLLTForType(), 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::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::legalizeSDIV_SREM(), llvm::AMDGPULegalizerInfo::legalizeUDIV_UREM(), llvm::AMDGPULegalizerInfo::legalizeUDIV_UREM32Impl(), llvm::AMDGPULegalizerInfo::legalizeUDIV_UREM64Impl(), 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(), matchAArch64MulConstCombine(), matchBitfieldExtractFromSExtInReg(), AMDGPUPreLegalizerCombinerHelper::matchClampI64ToI16(), AMDGPUPostLegalizerCombinerHelper::matchFMinFMaxLegacy(), AMDGPUPostLegalizerCombinerHelper::matchUCharToFloat(), matchZeroExtendFromS32(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarAddSub(), llvm::LegalizerHelper::narrowScalarCTLZ(), llvm::LegalizerHelper::narrowScalarCTTZ(), llvm::LegalizerHelper::narrowScalarExtract(), llvm::LegalizerHelper::narrowScalarInsert(), llvm::LegalizerHelper::narrowScalarShift(), packImageA16AddressToDwords(), 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 ( uint16_t  NumElements,
LLT  ScalarTy 
)
inlinestatic

◆ scalarOrVector() [2/2]

static LLT llvm::LLT::scalarOrVector ( uint16_t  NumElements,
unsigned  ScalarSize 
)
inlinestatic

Definition at line 78 of file LowLevelTypeImpl.h.

References scalar(), and scalarOrVector().

◆ vector() [1/2]

static LLT llvm::LLT::vector ( uint16_t  NumElements,
LLT  ScalarTy 
)
inlinestatic

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

Definition at line 66 of file LowLevelTypeImpl.h.

References assert(), getAddressSpace(), getSizeInBits(), isPointer(), and isVector().

◆ vector() [2/2]

static LLT llvm::LLT::vector ( uint16_t  NumElements,
unsigned  ScalarSizeInBits 
)
inlinestatic

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

NumElements must be at least 2.

Definition at line 58 of file LowLevelTypeImpl.h.

References assert().

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AArch64TargetLowering::allowsMisalignedMemoryAccesses(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), AMDGPUPreLegalizerCombinerHelper::applyClampI64ToI16(), applyDupLane(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), buildCopyFromRegs(), changeElementSize(), changeElementType(), llvm::LegalizeRuleSet::clampMinNumElements(), convertImageAddrToPacked(), llvm::LegalizerHelper::fewerElementsVectorCasts(), llvm::LegalizerHelper::fewerElementsVectorCmp(), llvm::LegalizerHelper::fewerElementsVectorSelect(), llvm::getGCDType(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::getLCMType(), llvm::getLLTForMVT(), llvm::getLLTForType(), llvm::AArch64TargetLowering::getOptimalMemOpLLT(), llvm::AMDGPUFunctionArgInfo::getPreloadedValue(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::legalizeAtomicCmpXChg(), llvm::AMDGPULegalizerInfo::legalizeBuildVector(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeShuffleVector(), llvm::LegalizerHelper::lowerBitcast(), llvm::AMDGPUCallLowering::lowerCall(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), llvm::LegalizeMutations::moreElementsToNextPow2(), moreEltsToNext32Bit(), llvm::LegalizerHelper::narrowScalar(), oneMoreElement(), packImageA16AddressToDwords(), scalarOrVector(), widen96To128(), and llvm::LegalizerHelper::widenScalar().

Friends And Related Function Documentation

◆ DenseMapInfo< LLT >

friend struct DenseMapInfo< LLT >
friend

Definition at line 212 of file LowLevelTypeImpl.h.

◆ GISelInstProfileBuilder

friend class GISelInstProfileBuilder
friend

Definition at line 213 of file LowLevelTypeImpl.h.


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