LLVM
15.0.0git
|
#include "llvm/Support/TypeSize.h"
Public Member Functions | |
TypeSize (const LinearPolySize< TypeSize > &V) | |
TypeSize (ScalarTy MinVal, bool IsScalable) | |
ScalarTy | getFixedSize () const |
ScalarTy | getKnownMinSize () const |
operator ScalarTy () const | |
![]() | |
ScalarTy | getKnownMinValue () const |
Returns the minimum value this size can represent. More... | |
bool | isScalable () const |
Returns whether the size is scaled by a runtime quantity (vscale). More... | |
bool | isKnownEven () const |
A return value of true indicates we know at compile time that the number of elements (vscale * Min) is definitely even. More... | |
bool | isKnownMultipleOf (ScalarTy RHS) const |
This function tells the caller whether the element count is known at compile time to be a multiple of the scalar value RHS. More... | |
ScalarTy | getFixedValue () const |
TypeSize | divideCoefficientBy (ScalarTy RHS) const |
We do not provide the '/' operator here because division for polynomial types does not work in the same way as for normal integer types. More... | |
TypeSize | multiplyCoefficientBy (ScalarTy RHS) const |
TypeSize | coefficientNextPowerOf2 () const |
bool | hasKnownScalarFactor (const LinearPolySize &RHS) const |
Returns true if there exists a value X where RHS.multiplyCoefficientBy(X) will result in a value whose size matches our own. More... | |
ScalarTy | getKnownScalarFactor (const LinearPolySize &RHS) const |
Returns a value X where RHS.multiplyCoefficientBy(X) will result in a value whose size matches our own. More... | |
void | print (raw_ostream &OS) const |
Printing function. More... | |
![]() | |
bool | operator== (const UnivariateLinearPolyBase &RHS) const |
bool | operator!= (const UnivariateLinearPolyBase &RHS) const |
bool | isZero () const |
bool | isNonZero () const |
operator bool () const | |
ScalarTy | getValue (unsigned Dim) const |
TypeSize | getWithIncrement (ScalarTy RHS) const |
Add RHS to the value at the univariate dimension. More... | |
TypeSize | getWithDecrement (ScalarTy RHS) const |
Subtract RHS from the value at the univariate dimension. More... | |
Static Public Member Functions | |
static TypeSize | Fixed (ScalarTy MinVal) |
static TypeSize | Scalable (ScalarTy MinVal) |
![]() | |
static TypeSize | getFixed (ScalarTy MinVal) |
static TypeSize | getScalable (ScalarTy MinVal) |
static TypeSize | get (ScalarTy MinVal, bool Scalable) |
static TypeSize | getNull () |
static bool | isKnownLT (const LinearPolySize &LHS, const LinearPolySize &RHS) |
static bool | isKnownGT (const LinearPolySize &LHS, const LinearPolySize &RHS) |
static bool | isKnownLE (const LinearPolySize &LHS, const LinearPolySize &RHS) |
static bool | isKnownGE (const LinearPolySize &LHS, const LinearPolySize &RHS) |
Friends | |
TypeSize | operator* (const TypeSize &LHS, const int RHS) |
TypeSize | operator* (const TypeSize &LHS, const unsigned RHS) |
TypeSize | operator* (const TypeSize &LHS, const int64_t RHS) |
TypeSize | operator* (const int LHS, const TypeSize &RHS) |
TypeSize | operator* (const unsigned LHS, const TypeSize &RHS) |
TypeSize | operator* (const int64_t LHS, const TypeSize &RHS) |
TypeSize | operator* (const uint64_t LHS, const TypeSize &RHS) |
Additional Inherited Members | |
![]() | |
enum | Dims |
using | ScalarTy = typename UnivariateLinearPolyBase< TypeSize >::ScalarTy |
![]() | |
using | ScalarTy = typename LinearPolyBaseTypeTraits< TypeSize >::ScalarTy |
![]() | |
static constexpr auto | Dimensions |
![]() | |
LinearPolySize (ScalarTy MinVal, Dims D) | |
LinearPolySize (const UnivariateLinearPolyBase< TypeSize > &V) | |
![]() | |
UnivariateLinearPolyBase (ScalarTy Val, unsigned UnivariateDim) | |
![]() | |
ScalarTy | Value |
unsigned | UnivariateDim |
Definition at line 435 of file TypeSize.h.
|
inline |
Definition at line 437 of file TypeSize.h.
Referenced by Fixed(), and Scalable().
|
inline |
Definition at line 438 of file TypeSize.h.
Definition at line 441 of file TypeSize.h.
References TypeSize().
Referenced by combineLoad(), combineStore(), combineTargetShuffle(), convertCalleeSaveRestoreToSPPrePostIncDec(), EmitUnrolledSetTag(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), getBROADCAST_LOAD(), llvm::DataLayout::getGEPIndexForOffset(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), llvm::AArch64InstrInfo::getMemOpInfo(), getMemsetStores(), getParamsForOneTrueMaskedElt(), llvm::Type::getPrimitiveSizeInBits(), llvm::LLT::getSizeInBits(), llvm::MVT::getSizeInBits(), llvm::DataLayout::getTypeSizeInBits(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), lowerShuffleAsBroadcast(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), lowerVECTOR_SHUFFLE(), llvm::ARMTargetLowering::PerformMVEExtCombine(), llvm::ARMTargetLowering::PerformMVETruncCombine(), PerformSplittingMVEEXTToWideningLoad(), PerformSplittingMVETruncToNarrowingStores(), PerformSplittingToNarrowingStores(), PerformSplittingToWideningLoad(), llvm::RISCVDAGToDAGISel::PreprocessISelDAG(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), scalarizeVectorStore(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and splitVectorStore().
|
inline |
Definition at line 444 of file TypeSize.h.
References llvm::LinearPolySize< TypeSize >::getFixedValue().
Referenced by areExtractShuffleVectors(), llvm::slpvectorizer::BoUpSLP::BoUpSLP(), buildCopyFromRegs(), buildFrameDebugInfo(), llvm::ARMTargetLowering::canCombineStoreAndExtract(), llvm::Type::canLosslesslyBitCastTo(), evaluateGEPOffsetExpression(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::InstCombinerImpl::foldGEPICmp(), llvm::TargetTransformInfoImplBase::getCastInstrCost(), getFauxShuffleMask(), llvm::EVT::getFixedSizeInBits(), llvm::MVT::getFixedSizeInBits(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::DataLayout::getGEPIndexForOffset(), llvm::ARMTTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getLoadStoreVecRegBitWidth(), llvm::HexagonTTIImpl::getMemoryOpCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::getPtrStride(), llvm::Type::getScalarSizeInBits(), llvm::EVT::getScalarSizeInBits(), llvm::MVT::getScalarSizeInBits(), llvm::EVT::getScalarStoreSize(), llvm::MVT::getScalarStoreSize(), llvm::DataLayout::getTypeSizeInBits(), llvm::SystemZTTIImpl::getVectorTruncCost(), llvm::InlineFunction(), llvm::InductionDescriptor::isInductionPHI(), llvm::RISCVTTIImpl::isLegalMaskedGatherScatter(), llvm::RISCVTTIImpl::isLegalMaskedLoadStore(), isLoadInvariantInLoop(), llvm::MSP430TargetLowering::isTruncateFree(), llvm::SystemZTargetLowering::isTruncateFree(), llvm::AArch64TargetLowering::isTruncateFree(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), llvm::SCEVExpander::replaceCongruentIVs(), UpgradeMaskedLoad(), valueCoversEntireFragment(), llvm::LLT::vector(), and widenSubVector().
|
inline |
Definition at line 445 of file TypeSize.h.
References llvm::LinearPolySize< TypeSize >::getKnownMinValue().
Referenced by computeKnownBitsFromOperator(), llvm::SelectionDAG::CreateStackTemporary(), extractSubReg(), findMemType(), llvm::AArch64TargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::AArch64InstrInfo::getMemOperandWithOffsetWidth(), llvm::LLT::getSizeInBytes(), llvm::EVT::getStoreSize(), llvm::MVT::getStoreSize(), llvm::DataLayout::getTypeStoreSize(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::TargetLowering::IncrementMemoryAddress(), insertSubReg(), llvm::isAArch64FrameOffsetLegal(), llvm::CastInst::isBitCastable(), isPackedVectorType(), llvm::RISCVTargetLowering::joinRegisterPartsIntoValue(), LowerSVEIntrinsicEXT(), llvm::PatternMatch::VScaleVal_match::match(), llvm::MemSDNode::MemSDNode(), performGatherLoadCombine(), performLD1Combine(), performScatterStoreCombine(), llvm::FunctionLoweringInfo::set(), llvm::RISCVTargetLowering::splitValueIntoRegisterParts(), and llvm::ObjectSizeOffsetVisitor::visitAllocaInst().
TypeSize::operator TypeSize::ScalarTy | ( | ) | const |
Definition at line 49 of file TypeSize.cpp.
References llvm::LinearPolySize< TypeSize >::getFixedValue(), llvm::LinearPolySize< TypeSize >::getKnownMinValue(), llvm::LinearPolySize< TypeSize >::isScalable(), and llvm::reportInvalidSizeRequest().
Definition at line 442 of file TypeSize.h.
References TypeSize().
Referenced by llvm::AArch64InstrInfo::getMemOpInfo(), and llvm::MVT::getSizeInBits().
Definition at line 484 of file TypeSize.h.
Definition at line 490 of file TypeSize.h.
Definition at line 475 of file TypeSize.h.
Definition at line 481 of file TypeSize.h.
Definition at line 478 of file TypeSize.h.
Definition at line 493 of file TypeSize.h.
Definition at line 487 of file TypeSize.h.