LLVM
15.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 | multiplyCoefficientBy (ScalarTy RHS) const |
ElementCount | coefficientNextPowerOf2 () const |
bool | hasKnownScalarFactor (const LinearPolySize &RHS) const |
Returns true if there exists a value X where RHS.multiplyCoefficientBy(X) will result in a value whose size matches our own. More... | |
ScalarTy | getKnownScalarFactor (const LinearPolySize &RHS) const |
Returns a value X where RHS.multiplyCoefficientBy(X) will result in a value whose size matches our own. More... | |
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 (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 404 of file TypeSize.h.
|
inline |
Definition at line 406 of file TypeSize.h.
|
inline |
Definition at line 408 of file TypeSize.h.
|
inline |
Counting predicates.
Number of elements.. Exactly one element.
Definition at line 414 of file TypeSize.h.
References llvm::LinearPolySize< ElementCount >::getKnownMinValue(), and llvm::LinearPolySize< ElementCount >::isScalable().
Referenced by llvm::LoopVectorizationCostModel::collectInstsToScalarize(), llvm::LoopVectorizationCostModel::collectUniformsAndScalars(), llvm::VPWidenRecipe::execute(), llvm::VPWidenGEPRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPTransformState::get(), getCopyToPartsVector(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::TargetLoweringBase::getPreferredVectorAction(), llvm::LoopVectorizationCostModel::getVectorCallCost(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::hasVectorizeTransformation(), llvm::LoopVectorizationCostModel::isScalarAfterVectorization(), llvm::LoopVectorizationCostModel::isUniformAfterVectorization(), MaybeVectorizeType(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), llvm::VPlan::prepareToExecute(), llvm::LoopVectorizePass::processLoop(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::LoopVectorizationCostModel::selectVectorizationFactor(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), and llvm::VPRecipeBuilder::tryToCreateWidenRecipe().
|
inline |
One or more elements.
Definition at line 416 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().