LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | Friends | List of all members
llvm::TypeSize Class Reference

#include "llvm/Support/TypeSize.h"

Inheritance diagram for llvm::TypeSize:
Inheritance graph
[legend]

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 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 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 = uint64_t
 
- Protected Member Functions inherited from llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >
constexpr FixedOrScalableQuantity ()=default
 
constexpr FixedOrScalableQuantity (ScalarTy Quantity, bool Scalable)
 
- Protected Attributes inherited from llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >
ScalarTy Quantity
 
bool Scalable
 

Detailed Description

Definition at line 334 of file TypeSize.h.

Constructor & Destructor Documentation

◆ TypeSize()

constexpr llvm::TypeSize::TypeSize ( ScalarTy  Quantity,
bool  Scalable 
)
inlineconstexpr

Definition at line 339 of file TypeSize.h.

Member Function Documentation

◆ get()

static constexpr TypeSize llvm::TypeSize::get ( ScalarTy  Quantity,
bool  Scalable 
)
inlinestaticconstexpr

◆ getFixed()

static constexpr TypeSize llvm::TypeSize::getFixed ( ScalarTy  ExactSize)
inlinestaticconstexpr

Definition at line 345 of file TypeSize.h.

Referenced by combineI8TruncStore(), combineLoad(), combineStore(), combineTargetShuffle(), combineV3I8LoadExt(), llvm::ComputeValueVTs(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::emitGEPOffset(), EmitUnrolledSetTag(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), llvm::AllocaInst::getAllocationSize(), llvm::at::getAssignmentInfo(), getBROADCAST_LOAD(), llvm::StructLayout::getElementContainingOffset(), llvm::AArch64RegisterBankInfo::getInstrAlternativeMappings(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), llvm::AArch64InstrInfo::getMemOpInfo(), getMemsetStores(), getMinimalExtentFrom(), getObjectSize(), getParamsForOneTrueMaskedElt(), getPointerSize(), getRegClassesForCopy(), llvm::TargetTransformInfoImplBase::getRegisterBitWidth(), llvm::BasicTTIImplBase< T >::getRegisterBitWidth(), llvm::AArch64TTIImpl::getRegisterBitWidth(), llvm::ARMTTIImpl::getRegisterBitWidth(), llvm::HexagonTTIImpl::getRegisterBitWidth(), llvm::LoongArchTTIImpl::getRegisterBitWidth(), llvm::NVPTXTTIImpl::getRegisterBitWidth(), llvm::PPCTTIImpl::getRegisterBitWidth(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::SystemZTTIImpl::getRegisterBitWidth(), llvm::VETTIImpl::getRegisterBitWidth(), llvm::WebAssemblyTTIImpl::getRegisterBitWidth(), llvm::X86TTIImpl::getRegisterBitWidth(), llvm::GCNTTIImpl::getRegisterBitWidth(), llvm::R600TTIImpl::getRegisterBitWidth(), llvm::TargetRegisterInfo::getRegSizeInBits(), llvm::LLT::getSizeInBits(), llvm::DataLayout::getTypeSizeInBits(), HasAddressTaken(), llvm::isSafeToLoadUnconditionally(), llvm::TargetLowering::LowerCallTo(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::RISCVTargetLowering::LowerFormalArguments(), lowerShuffleAsBroadcast(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), lowerVECTOR_SHUFFLE(), performLOADCombine(), 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()

static constexpr TypeSize llvm::TypeSize::getScalable ( ScalarTy  MinimumSize)
inlinestaticconstexpr

◆ getZero()

static constexpr TypeSize llvm::TypeSize::getZero ( )
inlinestaticconstexpr

◆ operator ScalarTy()

TypeSize::operator TypeSize::ScalarTy ( ) const

Friends And Related Function Documentation

◆ operator* [1/7]

constexpr TypeSize operator* ( const int  LHS,
const TypeSize RHS 
)
friend

Definition at line 390 of file TypeSize.h.

◆ operator* [2/7]

constexpr TypeSize operator* ( const int64_t  LHS,
const TypeSize RHS 
)
friend

Definition at line 396 of file TypeSize.h.

◆ operator* [3/7]

constexpr TypeSize operator* ( const TypeSize LHS,
const int  RHS 
)
friend

Definition at line 381 of file TypeSize.h.

◆ operator* [4/7]

constexpr TypeSize operator* ( const TypeSize LHS,
const int64_t  RHS 
)
friend

Definition at line 387 of file TypeSize.h.

◆ operator* [5/7]

constexpr TypeSize operator* ( const TypeSize LHS,
const unsigned  RHS 
)
friend

Definition at line 384 of file TypeSize.h.

◆ operator* [6/7]

constexpr TypeSize operator* ( const uint64_t  LHS,
const TypeSize RHS 
)
friend

Definition at line 399 of file TypeSize.h.

◆ operator* [7/7]

constexpr TypeSize operator* ( const unsigned  LHS,
const TypeSize RHS 
)
friend

Definition at line 393 of file TypeSize.h.


The documentation for this class was generated from the following files: