LLVM  15.0.0git
Public Member Functions | List of all members
llvm::ElementCount Class Reference

#include "llvm/Support/TypeSize.h"

Inheritance diagram for llvm::ElementCount:
Inheritance graph
Collaboration diagram for llvm::ElementCount:
Collaboration graph

Public Member Functions

 ElementCount ()
 ElementCount (const LinearPolySize< ElementCount > &V)
bool isScalar () const
 Counting predicates. More...
bool isVector () const
 One or more elements. More...
- Public Member Functions inherited from llvm::LinearPolySize< ElementCount >
ScalarTy getKnownMinValue () const
 Returns the minimum value this size can represent. More...
bool isScalable () const
 Returns whether the size is scaled by a runtime quantity (vscale). More...
bool isKnownEven () const
 A return value of true indicates we know at compile time that the number of elements (vscale * Min) is definitely even. More...
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. More...
ScalarTy getFixedValue () const
ElementCount 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. More...
ElementCount multiplyCoefficientBy (ScalarTy RHS) const
ElementCount coefficientNextPowerOf2 () const
void print (raw_ostream &OS) const
 Printing function. More...
- Public Member Functions inherited from llvm::UnivariateLinearPolyBase< ElementCount >
bool operator== (const UnivariateLinearPolyBase &RHS) const
bool operator!= (const UnivariateLinearPolyBase &RHS) const
bool isZero () const
bool isNonZero () const
 operator bool () const
ScalarTy getValue (unsigned Dim) const
ElementCount getWithIncrement (ScalarTy RHS) const
 Add RHS to the value at the univariate dimension. More...
ElementCount getWithDecrement (ScalarTy RHS) const
 Subtract RHS from the value at the univariate dimension. More...

Additional Inherited Members

- Public Types inherited from llvm::LinearPolySize< ElementCount >
enum  Dims
using ScalarTy = typename UnivariateLinearPolyBase< ElementCount >::ScalarTy
- Public Types inherited from llvm::UnivariateLinearPolyBase< ElementCount >
using ScalarTy = typename LinearPolyBaseTypeTraits< ElementCount >::ScalarTy
- Static Public Member Functions inherited from llvm::LinearPolySize< ElementCount >
static ElementCount getFixed (ScalarTy MinVal)
static ElementCount getScalable (ScalarTy MinVal)
static ElementCount get (ScalarTy MinVal, bool Scalable)
static ElementCount getNull ()
static bool isKnownLT (const LinearPolySize &LHS, const LinearPolySize &RHS)
static bool isKnownGT (const LinearPolySize &LHS, const LinearPolySize &RHS)
static bool isKnownLE (const LinearPolySize &LHS, const LinearPolySize &RHS)
static bool isKnownGE (const LinearPolySize &LHS, const LinearPolySize &RHS)
- Static Public Attributes inherited from llvm::UnivariateLinearPolyBase< ElementCount >
static constexpr auto Dimensions
- Protected Member Functions inherited from llvm::LinearPolySize< ElementCount >
 LinearPolySize (ScalarTy MinVal, Dims D)
 LinearPolySize (const UnivariateLinearPolyBase< ElementCount > &V)
- Protected Member Functions inherited from llvm::UnivariateLinearPolyBase< ElementCount >
 UnivariateLinearPolyBase (ScalarTy Val, unsigned UnivariateDim)
- Protected Attributes inherited from llvm::UnivariateLinearPolyBase< ElementCount >
ScalarTy Value
unsigned UnivariateDim

Detailed Description

Definition at line 390 of file TypeSize.h.

Constructor & Destructor Documentation

◆ ElementCount() [1/2]

llvm::ElementCount::ElementCount ( )

Definition at line 392 of file TypeSize.h.

◆ ElementCount() [2/2]

llvm::ElementCount::ElementCount ( const LinearPolySize< ElementCount > &  V)

Definition at line 394 of file TypeSize.h.

Member Function Documentation

◆ isScalar()

bool llvm::ElementCount::isScalar ( ) const

◆ isVector()

bool llvm::ElementCount::isVector ( ) const

One or more elements.

Definition at line 402 of file TypeSize.h.

References llvm::LinearPolySize< ElementCount >::getKnownMinValue(), and llvm::LinearPolySize< ElementCount >::isScalable().

Referenced by buildScalarSteps(), llvm::LoopVectorizationCostModel::canTruncateToMinimalBitwidth(), llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::VPWidenGEPRecipe::execute(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPReductionRecipe::execute(), llvm::VPReplicateRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), llvm::InnerLoopVectorizer::fixReduction(), llvm::InnerLoopVectorizer::fixVectorizedLoop(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), getStepVector(), llvm::LoopVectorizationCostModel::getWideningCost(), llvm::LoopVectorizationCostModel::getWideningDecision(), llvm::FixedScalableVFPair::hasVector(), llvm::hasVectorizeTransformation(), llvm::LoopVectorizationCostModel::isLegalGatherOrScatter(), llvm::LoopVectorizationCostModel::isProfitableToScalarize(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizePass::processLoop(), llvm::LoopVectorizationCostModel::requiresScalarEpilogue(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::LoopVectorizationCostModel::setWideningDecision(), warnAboutLeftoverTransformations(), and llvm::InnerLoopVectorizer::widenCallInstruction().

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