LLVM 20.0.0git
|
#include "llvm/Support/TypeSize.h"
Public Types | |
using | ScalarTy = ValueTy |
Public Member Functions | |
constexpr bool | operator== (const FixedOrScalableQuantity &RHS) const |
constexpr bool | operator!= (const FixedOrScalableQuantity &RHS) const |
constexpr bool | isZero () const |
constexpr bool | isNonZero () const |
operator bool () const | |
constexpr LeafTy | getWithIncrement (ScalarTy RHS) const |
Add RHS to the underlying quantity. | |
constexpr ScalarTy | getKnownMinValue () const |
Returns the minimum value this quantity can represent. | |
constexpr bool | isScalable () const |
Returns whether the quantity is scaled by a runtime quantity (vscale). | |
constexpr bool | isFixed () const |
Returns true if the quantity is not scaled by vscale. | |
constexpr bool | isKnownEven () const |
A return value of true indicates we know at compile time that the number of elements (vscale * Min) is definitely even. | |
constexpr 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. | |
constexpr bool | isKnownMultipleOf (const FixedOrScalableQuantity &RHS) const |
Returns whether or not the callee is known to be a multiple of RHS. | |
constexpr ScalarTy | getFixedValue () const |
constexpr LeafTy | 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. | |
constexpr LeafTy | multiplyCoefficientBy (ScalarTy RHS) const |
constexpr LeafTy | coefficientNextPowerOf2 () const |
constexpr bool | hasKnownScalarFactor (const FixedOrScalableQuantity &RHS) const |
Returns true if there exists a value X where RHS.multiplyCoefficientBy(X) will result in a value whose quantity matches our own. | |
constexpr ScalarTy | getKnownScalarFactor (const FixedOrScalableQuantity &RHS) const |
Returns a value X where RHS.multiplyCoefficientBy(X) will result in a value whose quantity matches our own. | |
void | print (raw_ostream &OS) const |
Printing function. | |
Static Public Member Functions | |
static constexpr bool | isKnownLT (const FixedOrScalableQuantity &LHS, const FixedOrScalableQuantity &RHS) |
static constexpr bool | isKnownGT (const FixedOrScalableQuantity &LHS, const FixedOrScalableQuantity &RHS) |
static constexpr bool | isKnownLE (const FixedOrScalableQuantity &LHS, const FixedOrScalableQuantity &RHS) |
static constexpr bool | isKnownGE (const FixedOrScalableQuantity &LHS, const FixedOrScalableQuantity &RHS) |
Protected Member Functions | |
constexpr | FixedOrScalableQuantity ()=default |
constexpr | FixedOrScalableQuantity (ScalarTy Quantity, bool Scalable) |
Protected Attributes | |
ScalarTy | Quantity = 0 |
bool | Scalable = false |
Friends | |
constexpr LeafTy & | operator+= (LeafTy &LHS, const LeafTy &RHS) |
constexpr LeafTy & | operator-= (LeafTy &LHS, const LeafTy &RHS) |
constexpr LeafTy & | operator*= (LeafTy &LHS, ScalarTy RHS) |
constexpr LeafTy | operator+ (const LeafTy &LHS, const LeafTy &RHS) |
constexpr LeafTy | operator- (const LeafTy &LHS, const LeafTy &RHS) |
constexpr LeafTy | operator* (const LeafTy &LHS, ScalarTy RHS) |
template<typename U = ScalarTy> | |
constexpr std::enable_if_t< std::is_signed_v< U >, LeafTy > | operator- (const LeafTy &LHS) |
Definition at line 88 of file TypeSize.h.
using llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::ScalarTy = ValueTy |
Definition at line 90 of file TypeSize.h.
|
constexprprotecteddefault |
|
inlineconstexprprotected |
Definition at line 97 of file TypeSize.h.
|
inlineconstexpr |
Definition at line 262 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and llvm::NextPowerOf2().
Referenced by llvm::TargetLoweringBase::getTypeConversion(), and llvm::TargetLoweringBase::getVectorTypeBreakdown().
|
inlineconstexpr |
We do not provide the '/' operator here because division for polynomial types does not work in the same way as for normal integer types.
We can only divide the minimum value (or coefficient) by RHS, which is not the same as (Min * Vscale) / RHS The caller is recommended to use this function in combination with isKnownMultipleOf(RHS), which lets the caller know if it's possible to perform a lossless divide by RHS.
Definition at line 254 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and RHS.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizerHelper::bitcastExtractSubvector(), llvm::LegalizerHelper::bitcastInsertSubvector(), getDeinterleaveShiftAndTrunc(), getHalfSizedType(), llvm::TargetLoweringBase::getTypeConversion(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::LegalizerHelper::lowerEXT(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), and llvm::LegalizerHelper::lowerTRUNC().
|
inlineconstexpr |
Definition at line 202 of file TypeSize.h.
References assert(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isZero().
Referenced by areExtractShuffleVectors(), llvm::slpvectorizer::BoUpSLP::BoUpSLP(), buildCopyFromRegs(), buildFrameDebugInfo(), llvm::ARMTargetLowering::canCombineStoreAndExtract(), llvm::BaseIndexOffset::computeAliasing(), llvm::LoopVectorizationCostModel::computeMaxVF(), convertCalleeSaveRestoreToSPPrePostIncDec(), doInstrumentAddress(), llvm::LoopVectorizationCostModel::expectedCost(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::InstCombinerImpl::foldGEPICmp(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), getAvailableLoadStore(), getBufferRsrcRegisterType(), llvm::TargetTransformInfoImplBase::getCastInstrCost(), getFauxShuffleMask(), llvm::EVT::getFixedSizeInBits(), llvm::MVT::getFixedSizeInBits(), llvm::getGCDType(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::ARMTTIImpl::getInterleavedMemoryOpCost(), llvm::getLCMType(), llvm::X86TTIImpl::getLoadStoreVecRegBitWidth(), llvm::RISCVTTIImpl::getMaximumVF(), llvm::AArch64TTIImpl::getMaxNumElements(), llvm::HexagonTTIImpl::getMemoryOpCost(), llvm::getPtrStride(), llvm::EVT::getScalarSizeInBits(), llvm::MVT::getScalarSizeInBits(), llvm::EVT::getScalarStoreSize(), llvm::MVT::getScalarStoreSize(), llvm::DataLayout::getTypeSizeInBits(), getUniformBase(), llvm::SystemZTTIImpl::getVectorTruncCost(), llvm::AArch64TargetLowering::hasAndNot(), llvm::InlineFunction(), llvm::AMDGPU::instrumentAddress(), isFPIntrinsic(), isKnownNonZeroFromOperator(), llvm::AArch64TTIImpl::isLegalBroadcastLoad(), llvm::X86TTIImpl::isLegalBroadcastLoad(), isLoadInvariantInLoop(), isObjectSizeLessThanOrEq(), llvm::isSafeToLoadUnconditionally(), llvm::SystemZTargetLowering::isTruncateFree(), llvm::AArch64TargetLowering::isTruncateFree(), llvm::MSP430TargetLowering::isTruncateFree(), llvm::LoopAccessInfo::LoopAccessInfo(), lowerShuffleViaVRegSplitting(), MatchingStackOffset(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::slpvectorizer::BoUpSLP::transformNodes(), TypeSizeToSizeIndex(), upgradeMaskedLoad(), upgradeX86IntrinsicCall(), llvm::LLT::vector(), llvm::InstCombinerImpl::visitGetElementPtrInst(), and widenSubVector().
|
inlineconstexpr |
Returns the minimum value this quantity can represent.
Definition at line 168 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Quantity.
Referenced by llvm::AArch64InstrInfo::areMemAccessesTriviallyDisjoint(), llvm::LegalizerHelper::bitcastExtractSubvector(), llvm::LegalizerHelper::bitcastInsertSubvector(), canCreateUndefOrPoison(), canSkipClobberingStore(), clampDynamicVectorIndex(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::coefficientNextPowerOf2(), llvm::VPFirstOrderRecurrencePHIRecipe::computeCost(), computeKnownBitsFromOperator(), llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::TargetLoweringBase::computeRegisterProperties(), llvm::RISCVTargetLowering::computeVLMAXBounds(), llvm::AArch64TargetLowering::createComplexDeinterleavingIR(), llvm::SelectionDAG::CreateStackTemporary(), llvm::RISCVTargetLowering::decomposeSubvectorInsertExtractToSubRegs(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::divideCoefficientBy(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::VFRange::end(), llvm::VPInstruction::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPReplicateRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::VPRegionBlock::execute(), llvm::LoopVectorizationPlanner::executePlan(), llvm::TargetLowering::expandVectorSplice(), findMemType(), llvm::InnerLoopVectorizer::fixVectorizedLoop(), llvm::AArch64TargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::VPTransformState::get(), getAddressForMemoryInput(), llvm::VPLane::getAsRuntimeExpr(), getCopyFromPartsVector(), llvm::getCoverTy(), llvm::SelectionDAG::GetDependentSplitDestVTs(), llvm::LoopVectorizationCostModel::getDivRemSpeculationCost(), getEstimatedRuntimeVF(), llvm::EVT::getEVTString(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::getGCDType(), llvm::DenseMapInfo< ElementCount, void >::getHashValue(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::RISCVRegisterBankInfo::getInstrMapping(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownScalarFactor(), llvm::VPLane::getLaneFromEnd(), llvm::getLCMType(), llvm::RISCVTargetLowering::getLMUL(), llvm::AArch64TTIImpl::getMaxNumElements(), llvm::AArch64InstrInfo::getMemOperandWithOffsetWidth(), getMinimalExtentFrom(), llvm::VPLane::getNumCachedLanes(), llvm::LLT::getNumElements(), llvm::AArch64TargetLowering::getNumInterleavedAccesses(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), llvm::MVT::getPow2VectorType(), llvm::EVT::getPow2VectorType(), llvm::RISCVTargetLowering::getRegClassIDForVecVT(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::LLT::getSizeInBytes(), llvm::EVT::getStoreSize(), llvm::MVT::getStoreSize(), llvm::DataLayout::getTypeStoreSize(), llvm::DataLayout::getTypeStoreSizeInBits(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::EVT::getVectorMinNumElements(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), HasAddressTaken(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::hasKnownScalarFactor(), llvm::BasicTTIImplBase< T >::improveShuffleKindFromMask(), llvm::TargetLowering::IncrementMemoryAddress(), llvm::GISelAddressing::instMayAlias(), llvm::CastInst::isBitCastable(), llvm::VFRange::isEmpty(), isIndvarOverflowCheckKnownFalse(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isKnownEven(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isKnownMultipleOf(), isPackedVectorType(), llvm::LoopVectorizationLegality::isUniform(), isUnpackedVectorVT(), isValidEGW(), llvm::LocationSize::isZero(), llvm::RISCVTargetLowering::joinRegisterPartsIntoValue(), lowerBUILD_VECTOR(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), llvm::RISCVTargetLowering::LowerOperation(), LowerSVEIntrinsicEXT(), llvm::VPLane::mapToCacheIndex(), MemOperandsHaveAlias(), llvm::LegalityPredicates::memSizeNotByteSizePow2(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::multiplyCoefficientBy(), llvm::RISCVTargetLowering::PerformDAGCombine(), performGatherLoadCombine(), performLastTrueTestVectorCombine(), performLD1Combine(), performScatterStoreCombine(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::print(), llvm::LoopVectorizationPlanner::selectEpilogueVectorizationFactor(), llvm::FunctionLoweringInfo::set(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::VPTransformState::setDebugLocFrom(), llvm::LoopVectorizationCostModel::setVectorizedCallDecision(), simplifyShuffleVectorInst(), llvm::RISCVTargetLowering::splitValueIntoRegisterParts(), llvm::VFRange::VFRange(), llvm::InstCombinerImpl::visitAllocaInst(), llvm::ObjectSizeOffsetVisitor::visitAllocaInst(), and willGenerateVectors().
|
inlineconstexpr |
Returns a value X where RHS.multiplyCoefficientBy(X) will result in a value whose quantity matches our own.
Definition at line 279 of file TypeSize.h.
References assert(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::hasKnownScalarFactor(), and RHS.
|
inlineconstexpr |
Add RHS
to the underlying quantity.
Definition at line 163 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Quantity, RHS, and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Scalable.
|
inlineconstexpr |
Returns true if there exists a value X where RHS.multiplyCoefficientBy(X) will result in a value whose quantity matches our own.
Definition at line 271 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and RHS.
Referenced by llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownScalarFactor().
|
inlineconstexpr |
Returns true if the quantity is not scaled by vscale.
Definition at line 174 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Scalable.
Referenced by llvm::LoopVectorizationCostModel::expectedCost(), and llvm::LoopVectorizationCostModel::isEpilogueVectorizationProfitable().
|
inlineconstexpr |
A return value of true indicates we know at compile time that the number of elements (vscale * Min) is definitely even.
However, returning false does not guarantee that the total number of elements is odd.
Definition at line 179 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue().
Referenced by llvm::SelectionDAG::SplitEVL().
|
inlinestaticconstexpr |
Definition at line 239 of file TypeSize.h.
|
inlinestaticconstexpr |
Definition at line 225 of file TypeSize.h.
|
inlinestaticconstexpr |
Definition at line 232 of file TypeSize.h.
|
inlinestaticconstexpr |
Definition at line 218 of file TypeSize.h.
|
inlineconstexpr |
Returns whether or not the callee is known to be a multiple of RHS.
Definition at line 188 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and RHS.
|
inlineconstexpr |
This function tells the caller whether the element count is known at compile time to be a multiple of the scalar value RHS.
Definition at line 183 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), and RHS.
Referenced by llvm::TargetLowering::expandVectorNaryOpBySplitting(), getHalfSizedType(), llvm::EVT::isByteSized(), llvm::LLT::isByteSized(), llvm::MVT::isByteSized(), isSupportedAccessType(), llvm::CombinerHelper::matchUseVectorTruncate(), and promoteAllocaUserToVector().
|
inlineconstexpr |
Definition at line 158 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Quantity.
Referenced by llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::LoopAccessInfo::LoopAccessInfo(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::operator bool().
|
inlineconstexpr |
Returns whether the quantity is scaled by a runtime quantity (vscale).
Definition at line 171 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Scalable.
Referenced by llvm::AArch64InstrInfo::areMemAccessesTriviallyDisjoint(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), clampDynamicVectorIndex(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::coefficientNextPowerOf2(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), llvm::VPFirstOrderRecurrencePHIRecipe::computeCost(), computeKnownBitsFromOperator(), llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::ComputeValueVTs(), llvm::VPRegionBlock::cost(), llvm::SelectionDAG::CreateStackTemporary(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::divideCoefficientBy(), doInstrumentAddress(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::VPReverseVectorPointerRecipe::execute(), llvm::VPVectorPointerRecipe::execute(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPReplicateRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::VPlan::execute(), llvm::VPRegionBlock::execute(), llvm::FixedScalableVFPair::FixedScalableVFPair(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::AArch64TargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::VPTransformState::get(), getAddressForMemoryInput(), getAssignmentInfoImpl(), getAvailableLoadStore(), llvm::TargetTransformInfoImplBase::getCastInstrCost(), getCopyFromPartsVector(), llvm::SelectionDAG::GetDependentSplitDestVTs(), llvm::LoopVectorizationCostModel::getDivRemSpeculationCost(), llvm::StructLayout::getElementContainingOffset(), getElementIndex(), getEstimatedRuntimeVF(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::DenseMapInfo< ElementCount, void >::getHashValue(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::BasicTTIImplBase< T >::getIntrinsicInstrCost(), llvm::VPLane::getLaneFromEnd(), llvm::getLCMType(), llvm::RISCVTTIImpl::getMaxInterleaveFactor(), llvm::AArch64TTIImpl::getMaxNumElements(), llvm::AArch64InstrInfo::getMemOperandWithOffsetWidth(), getMinClassForRegBank(), llvm::VPLane::getNumCachedLanes(), llvm::ScalarEvolution::getOffsetOfExpr(), llvm::MVT::getPow2VectorType(), llvm::EVT::getPow2VectorType(), llvm::LLT::getSizeInBytes(), llvm::EVT::getStoreSize(), llvm::MVT::getStoreSize(), llvm::TargetLoweringBase::getTypeConversion(), getTypePartition(), llvm::DataLayout::getTypeStoreSize(), llvm::DataLayout::getTypeStoreSizeInBits(), getUniformBase(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::AArch64TargetLowering::hasAndNot(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::hasKnownScalarFactor(), llvm::VPlan::hasScalableVF(), llvm::InlineFunction(), llvm::AMDGPU::instrumentAddress(), llvm::LoopVectorizationCostModel::interleavedAccessCanBeWidened(), isIndvarOverflowCheckKnownFalse(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isKnownMultipleOf(), llvm::AArch64TTIImpl::isLegalBroadcastLoad(), llvm::X86TTIImpl::isLegalBroadcastLoad(), llvm::AArch64TTIImpl::isLegalToVectorizeReduction(), llvm::RISCVTTIImpl::isLegalToVectorizeReduction(), isLoadInvariantInLoop(), isObjectSizeLessThanOrEq(), llvm::isSafeToLoadUnconditionally(), llvm::LoopVectorizationLegality::isUniform(), llvm::VPLane::mapToCacheIndex(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::multiplyCoefficientBy(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::print(), llvm::LoopVectorizationPlanner::selectEpilogueVectorizationFactor(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyShuffleVectorInst(), TypeSizeToSizeIndex(), llvm::RegisterBankInfo::ValueMapping::verify(), llvm::VFRange::VFRange(), llvm::ObjectSizeOffsetVisitor::visitAllocaInst(), widenVectorToPartType(), and willGenerateVectors().
|
inlineconstexpr |
Definition at line 156 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Quantity.
Referenced by llvm::LoopVectorizationCostModel::collectInstsToScalarize(), llvm::ComputeValueVTs(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::isTLIScalarize(), llvm::EVT::isZeroSized(), llvm::SPIRVCallLowering::lowerCall(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), and llvm::InstCombinerImpl::visitGetElementPtrInst().
|
inlineconstexpr |
Definition at line 258 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and RHS.
Referenced by llvm::createStepForVF(), llvm::getLCMType(), getWideningInterleave(), and llvm::VPlanTransforms::optimizeForVFAndUF().
|
inlineexplicit |
Definition at line 160 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isNonZero().
|
inlineconstexpr |
Definition at line 152 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Quantity, RHS, and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Scalable.
|
inlineconstexpr |
Definition at line 148 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Quantity, RHS, and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::Scalable.
|
inline |
Printing function.
Definition at line 285 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and OS.
Referenced by llvm::operator<<().
|
friend |
Definition at line 135 of file TypeSize.h.
|
friend |
Definition at line 120 of file TypeSize.h.
|
friend |
Definition at line 125 of file TypeSize.h.
|
friend |
Definition at line 100 of file TypeSize.h.
|
friend |
Definition at line 142 of file TypeSize.h.
|
friend |
Definition at line 130 of file TypeSize.h.
|
friend |
Definition at line 110 of file TypeSize.h.
|
protected |
Definition at line 93 of file TypeSize.h.
Referenced by llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getWithIncrement(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isNonZero(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isZero(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::operator!=(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::operator==().
|
protected |
Definition at line 94 of file TypeSize.h.
Referenced by llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getWithIncrement(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isFixed(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::operator!=(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::operator==().