|
LLVM 24.0.0git
|
#include "llvm/Support/TypeSize.h"
Public Member Functions | |
| constexpr | TypeSize (ScalarTy Quantity, bool Scalable) |
| operator ScalarTy () const | |
| Public Member Functions inherited from llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t > | |
| 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 TypeSize | 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 ScalarTy | getFixedValue () const |
| constexpr 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. | |
| constexpr TypeSize | coefficientNextPowerOf2 () const |
| constexpr bool | hasKnownScalarFactor (const FixedOrScalableQuantity &RHS) const |
| Returns true if there exists a value X where RHS*X will result in a value whose quantity matches our own. | |
| constexpr ScalarTy | getKnownScalarFactor (const FixedOrScalableQuantity &RHS) const |
| Returns a value X where RHS*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 TypeSize | get (ScalarTy Quantity, bool Scalable) |
| static constexpr TypeSize | getFixed (ScalarTy ExactSize) |
| static constexpr TypeSize | getScalable (ScalarTy MinimumSize) |
| static constexpr TypeSize | getZero () |
| Static Public Member Functions inherited from llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t > | |
| 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) |
Friends | |
| constexpr TypeSize | operator* (const TypeSize &LHS, const int RHS) |
| constexpr TypeSize | operator* (const TypeSize &LHS, const unsigned RHS) |
| template<typename U = ScalarTy> | |
| constexpr std::enable_if_t<!std::is_same_v< U, unsigned long >, TypeSize > | operator* (const TypeSize &LHS, const unsigned long RHS) |
| constexpr TypeSize | operator* (const TypeSize &LHS, const int64_t RHS) |
| constexpr TypeSize | operator* (const int LHS, const TypeSize &RHS) |
| constexpr TypeSize | operator* (const unsigned LHS, const TypeSize &RHS) |
| constexpr TypeSize | operator* (const int64_t LHS, const TypeSize &RHS) |
| template<typename U = ScalarTy> | |
| constexpr std::enable_if_t<!std::is_same_v< U, unsigned long >, TypeSize > | operator* (const unsigned long LHS, const TypeSize &RHS) |
| constexpr TypeSize | operator* (const uint64_t LHS, const TypeSize &RHS) |
Additional Inherited Members | |
| Public Types inherited from llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t > | |
| using | ScalarTy |
| Protected Member Functions inherited from llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t > | |
| constexpr | FixedOrScalableQuantity ()=default |
| Protected Attributes inherited from llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t > | |
| ScalarTy | Quantity |
| bool | Scalable |
Definition at line 328 of file TypeSize.h.
Definition at line 336 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::Quantity, and llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::Scalable.
Referenced by llvm::AllocaInst::getAllocationSizeInBits(), and llvm::TargetTransformInfoImplBase::getRegisterBitWidth().
Definition at line 339 of file TypeSize.h.
Referenced by llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), canConvertValue(), combineLoad(), combineStore(), combineTargetShuffle(), llvm::computeValueLLTs(), llvm::ComputeValueVTs(), llvm::AArch64PrologueEpilogueCommon::convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::IRBuilderBase::CreatePtrDiff(), createStackTemporaryForVector(), EltsFromConsecutiveLoads(), llvm::emitGEPOffset(), EmitUnrolledSetTag(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), llvm::AllocaInst::getAllocationSize(), llvm::at::getAssignmentInfo(), llvm::getBaseObjectSize(), getBROADCAST_LOAD(), llvm::StructLayout::getElementContainingOffset(), llvm::AArch64RegisterBankInfo::getInstrAlternativeMappings(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), llvm::SIInstrInfo::getMemOperandsWithOffsetWidth(), llvm::AArch64InstrInfo::getMemOpInfo(), getMemsetStores(), getMinimalExtentFrom(), getParamsForOneTrueMaskedElt(), getPointerSize(), llvm::AArch64TTIImpl::getRegisterBitWidth(), llvm::ARMTTIImpl::getRegisterBitWidth(), llvm::BasicTTIImplBase< BasicTTIImpl >::getRegisterBitWidth(), llvm::GCNTTIImpl::getRegisterBitWidth(), llvm::HexagonTTIImpl::getRegisterBitWidth(), llvm::LoongArchTTIImpl::getRegisterBitWidth(), llvm::NVPTXTTIImpl::getRegisterBitWidth(), llvm::PPCTTIImpl::getRegisterBitWidth(), llvm::R600TTIImpl::getRegisterBitWidth(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::SparcTTIImpl::getRegisterBitWidth(), llvm::SystemZTTIImpl::getRegisterBitWidth(), llvm::VETTIImpl::getRegisterBitWidth(), llvm::WebAssemblyTTIImpl::getRegisterBitWidth(), llvm::X86TTIImpl::getRegisterBitWidth(), llvm::TargetRegisterInfo::getRegSizeInBits(), llvm::GCNTTIImpl::getScalingFactorCost(), llvm::LLT::getSizeInBits(), llvm::DataLayout::getTypeAllocSize(), llvm::DataLayout::getTypeSizeInBits(), llvm::VNCoercion::getValueForLoad(), HasAddressTaken(), isFrameLoadOpcode(), isFrameStoreOpcode(), llvm::LoongArchInstrInfo::isLoadFromStackSlot(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::isSafeToLoadUnconditionally(), llvm::SIInstrInfo::isSGPRStackAccess(), llvm::SIInstrInfo::isStackAccess(), llvm::LoongArchInstrInfo::isStoreToStackSlot(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::TargetLowering::LowerCallTo(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::RISCVTargetLowering::LowerOperation(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::AArch64CallLowering::lowerReturn(), lowerShuffleAsBroadcast(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::ARMTargetLowering::PerformMVEExtCombine(), llvm::ARMTargetLowering::PerformMVETruncCombine(), PerformSplittingMVEEXTToWideningLoad(), PerformSplittingMVETruncToNarrowingStores(), PerformSplittingToNarrowingStores(), PerformSplittingToWideningLoad(), llvm::RISCVDAGToDAGISel::PreprocessISelDAG(), llvm::AArch64TargetLowering::ReconstructShuffle(), replaceFrameSizeAndAlignment(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), scalarizeVectorStore(), selectCopy(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), solveDIType(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), splitVectorStore(), and valueCoversEntireFragment().
Definition at line 342 of file TypeSize.h.
Referenced by llvm::AArch64InstrInfo::getMemOpInfo(), getMinClassForRegBank(), llvm::AArch64TTIImpl::getRegisterBitWidth(), llvm::ARMTTIImpl::getRegisterBitWidth(), llvm::GCNTTIImpl::getRegisterBitWidth(), llvm::HexagonTTIImpl::getRegisterBitWidth(), llvm::PPCTTIImpl::getRegisterBitWidth(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::SparcTTIImpl::getRegisterBitWidth(), llvm::SystemZTTIImpl::getRegisterBitWidth(), llvm::VETTIImpl::getRegisterBitWidth(), llvm::WebAssemblyTTIImpl::getRegisterBitWidth(), llvm::X86TTIImpl::getRegisterBitWidth(), getSVEMultiVectorInfo(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::RISCVDAGToDAGISel::Select(), and llvm::RISCVInstrInfo::storeRegToStackSlot().
|
inlinestaticconstexpr |
Definition at line 345 of file TypeSize.h.
Referenced by llvm::ComputeValueTypes(), llvm::getBaseObjectSize(), llvm::LoongArchInstrInfo::isLoadFromStackSlot(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::SIInstrInfo::isLoadFromStackSlot(), llvm::TargetInstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isLoadFromStackSlotPostFE(), llvm::LoongArchInstrInfo::isStoreToStackSlot(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::SIInstrInfo::isStoreToStackSlot(), llvm::TargetInstrInfo::isStoreToStackSlot(), llvm::X86InstrInfo::isStoreToStackSlot(), llvm::X86InstrInfo::isStoreToStackSlotPostFE(), llvm::FunctionLoweringInfo::set(), unpackLoadToAggregate(), and unpackStoreToAggregate().
|
inline |
Definition at line 371 of file TypeSize.h.
References llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::getFixedValue(), llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::isScalable(), and llvm::reportFatalInternalError().
Definition at line 396 of file TypeSize.h.
Definition at line 402 of file TypeSize.h.
Definition at line 382 of file TypeSize.h.
Definition at line 393 of file TypeSize.h.
|
friend |
Definition at line 390 of file TypeSize.h.
Definition at line 385 of file TypeSize.h.
Definition at line 410 of file TypeSize.h.
Definition at line 399 of file TypeSize.h.
|
friend |
Definition at line 407 of file TypeSize.h.