LLVM 22.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 | 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 |
Definition at line 332 of file TypeSize.h.
Definition at line 340 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().
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::TargetLowering::LowerCallTo(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::LowerFormalArguments(), 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().
Definition at line 346 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::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().
|
inlinestaticconstexpr |
Definition at line 349 of file TypeSize.h.
Referenced by llvm::ComputeValueTypes(), llvm::ComputeValueVTs(), 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().
|
inline |
Definition at line 375 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 395 of file TypeSize.h.
Definition at line 401 of file TypeSize.h.
Definition at line 386 of file TypeSize.h.
Definition at line 392 of file TypeSize.h.
Definition at line 389 of file TypeSize.h.
Definition at line 404 of file TypeSize.h.
Definition at line 398 of file TypeSize.h.