LLVM
13.0.0git
|
#include "llvm/Support/TypeSize.h"
Public Member Functions | |
ElementCount () | |
ElementCount (const LinearPolySize< ElementCount > &V) | |
bool | isScalar () const |
Counting predicates. More... | |
bool | isVector () const |
One or more elements. More... | |
![]() | |
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 | coefficientNextPowerOf2 () const |
void | print (raw_ostream &OS) const |
Printing function. More... | |
![]() | |
bool | operator== (const UnivariateLinearPolyBase &RHS) const |
bool | operator!= (const UnivariateLinearPolyBase &RHS) const |
bool | isZero () const |
bool | isNonZero () const |
operator bool () const | |
ScalarTy | getValue () 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... | |
Definition at line 386 of file TypeSize.h.
|
inline |
Definition at line 388 of file TypeSize.h.
|
inline |
Definition at line 390 of file TypeSize.h.
|
inline |
Counting predicates.
Number of elements.. Exactly one element.
Definition at line 396 of file TypeSize.h.
References llvm::LinearPolySize< ElementCount >::getKnownMinValue(), and llvm::LinearPolySize< ElementCount >::isScalable().
Referenced by llvm::LoopVectorizationCostModel::collectInstsToScalarize(), llvm::LoopVectorizationCostModel::collectUniformsAndScalars(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPTransformState::get(), getCopyToPartsVector(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::TargetLoweringBase::getPreferredVectorAction(), llvm::LoopVectorizationCostModel::getVectorCallCost(), llvm::hasVectorizeTransformation(), llvm::LoopVectorizationCostModel::isScalarAfterVectorization(), llvm::LoopVectorizationCostModel::isUniformAfterVectorization(), MaybeVectorizeType(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), llvm::LoopVectorizePass::processLoop(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::InnerLoopVectorizer::widenGEP(), llvm::InnerLoopVectorizer::widenInstruction(), and llvm::InnerLoopVectorizer::widenPHIInstruction().
|
inline |
One or more elements.
Definition at line 398 of file TypeSize.h.
References llvm::LinearPolySize< ElementCount >::getKnownMinValue(), and llvm::LinearPolySize< ElementCount >::isScalable().
Referenced by llvm::InnerLoopVectorizer::buildScalarSteps(), llvm::LoopVectorizationCostModel::canTruncateToMinimalBitwidth(), llvm::VPReplicateRecipe::execute(), llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), llvm::InnerLoopVectorizer::fixReduction(), llvm::InnerLoopVectorizer::fixVectorizedLoop(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), llvm::LoopVectorizationCostModel::getWideningCost(), llvm::LoopVectorizationCostModel::getWideningDecision(), llvm::hasVectorizeTransformation(), llvm::LoopVectorizationCostModel::isProfitableToScalarize(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizePass::processLoop(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::LoopVectorizationCostModel::selectVectorizationFactor(), llvm::LoopVectorizationCostModel::setWideningDecision(), warnAboutLeftoverTransformations(), llvm::InnerLoopVectorizer::widenCallInstruction(), and llvm::InnerLoopVectorizer::widenGEP().