LLVM: llvm::TypeSize Class Reference (original) (raw)
#include "[llvm/Support/TypeSize.h](TypeSize%5F8h%5Fsource.html)"
Inheritance diagram for llvm::TypeSize:
| 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 | multiplyCoefficientBy (ScalarTy RHS) const |
| constexpr TypeSize | 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 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) |
| 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) |
| 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 |
Detailed Description
Constructor & Destructor Documentation
| llvm::TypeSize::TypeSize ( ScalarTy Quantity, bool Scalable ) | inlineconstexpr |
|---|
Member Function Documentation
◆ get()
◆ getFixed()
| constexpr TypeSize llvm::TypeSize::getFixed ( ScalarTy ExactSize) | inlinestaticconstexpr |
|---|
Definition at line 343 of file TypeSize.h.
Referenced by llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), canConvertValue(), combineLoad(), combineStore(), combineTargetShuffle(), llvm::ComputeValueVTs(), llvm::AArch64PrologueEpilogueCommon::convertCalleeSaveRestoreToSPPrePostIncDec(), 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(), getRegClassesForCopy(), 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::SystemZTTIImpl::getRegisterBitWidth(), llvm::TargetTransformInfoImplBase::getRegisterBitWidth(), llvm::VETTIImpl::getRegisterBitWidth(), llvm::WebAssemblyTTIImpl::getRegisterBitWidth(), llvm::X86TTIImpl::getRegisterBitWidth(), llvm::TargetRegisterInfo::getRegSizeInBits(), llvm::LLT::getSizeInBits(), llvm::DataLayout::getTypeAllocSize(), llvm::DataLayout::getTypeSizeInBits(), llvm::VNCoercion::getValueForLoad(), HasAddressTaken(), isFrameLoadOpcode(), isFrameStoreOpcode(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::isSafeToLoadUnconditionally(), llvm::RISCVInstrInfo::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(), 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(), solveDIType(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), splitVectorStore(), and valueCoversEntireFragment().
◆ getScalable()
| constexpr TypeSize llvm::TypeSize::getScalable ( ScalarTy MinimumSize) | inlinestaticconstexpr |
|---|
Definition at line 346 of file TypeSize.h.
Referenced by llvm::AArch64InstrInfo::getMemOpInfo(), getMinClassForRegBank(), llvm::AArch64TTIImpl::getPartialReductionCost(), llvm::AArch64TTIImpl::getRegisterBitWidth(), llvm::ARMTTIImpl::getRegisterBitWidth(), llvm::GCNTTIImpl::getRegisterBitWidth(), llvm::HexagonTTIImpl::getRegisterBitWidth(), llvm::PPCTTIImpl::getRegisterBitWidth(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::SystemZTTIImpl::getRegisterBitWidth(), llvm::VETTIImpl::getRegisterBitWidth(), llvm::WebAssemblyTTIImpl::getRegisterBitWidth(), llvm::X86TTIImpl::getRegisterBitWidth(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::RISCVDAGToDAGISel::Select(), and llvm::RISCVInstrInfo::storeRegToStackSlot().
◆ getZero()
| constexpr TypeSize llvm::TypeSize::getZero ( ) | inlinestaticconstexpr |
|---|
Definition at line 349 of file TypeSize.h.
Referenced by llvm::ComputeValueTypes(), llvm::getBaseObjectSize(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::TargetInstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isLoadFromStackSlotPostFE(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::TargetInstrInfo::isStoreToStackSlot(), llvm::X86InstrInfo::isStoreToStackSlot(), llvm::X86InstrInfo::isStoreToStackSlotPostFE(), unpackLoadToAggregate(), and unpackStoreToAggregate().
◆ operator ScalarTy()
| llvm::TypeSize::operator ScalarTy ( ) const | inline |
|---|
Friends And Related Symbol Documentation
◆ operator* [1/7]
◆ operator* [2/7]
◆ operator* [3/7]
◆ operator* [4/7]
◆ operator* [5/7]
◆ operator* [6/7]
◆ operator* [7/7]
The documentation for this class was generated from the following file:
- include/llvm/Support/TypeSize.h