LLVM
13.0.0git
|
UnivariateLinearPolyBase is a base class for ElementCount and TypeSize. More...
#include "llvm/Support/TypeSize.h"
Public Types | |
using | ScalarTy = typename LinearPolyBaseTypeTraits< LeafTy >::ScalarTy |
Public Member Functions | |
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 |
LeafTy | getWithIncrement (ScalarTy RHS) const |
Add RHS to the value at the univariate dimension. More... | |
LeafTy | getWithDecrement (ScalarTy RHS) const |
Subtract RHS from the value at the univariate dimension. More... | |
Static Public Attributes | |
static constexpr auto | Dimensions = LinearPolyBaseTypeTraits<LeafTy>::Dimensions |
Protected Member Functions | |
UnivariateLinearPolyBase (ScalarTy Val, unsigned UnivariateDim) | |
Protected Attributes | |
ScalarTy | Value |
unsigned | UnivariateDim |
Friends | |
LeafTy & | operator+= (LeafTy &LHS, const LeafTy &RHS) |
LeafTy & | operator-= (LeafTy &LHS, const LeafTy &RHS) |
LeafTy & | operator*= (LeafTy &LHS, ScalarTy RHS) |
LeafTy | operator+ (const LeafTy &LHS, const LeafTy &RHS) |
LeafTy | operator- (const LeafTy &LHS, const LeafTy &RHS) |
LeafTy | operator* (const LeafTy &LHS, ScalarTy RHS) |
template<typename U = ScalarTy> | |
std::enable_if< std::is_signed< U >::value, LeafTy >::type | operator- (const LeafTy &LHS) |
UnivariateLinearPolyBase is a base class for ElementCount and TypeSize.
Like LinearPolyBase it tries to represent a linear polynomial where only one dimension can be set at any time, e.g. 0 * scale0 + 0 * scale1 + ... + cJ * scaleJ + ... + 0 * scaleK The dimension that is set is the univariate dimension.
Definition at line 165 of file TypeSize.h.
using llvm::UnivariateLinearPolyBase< LeafTy >::ScalarTy = typename LinearPolyBaseTypeTraits<LeafTy>::ScalarTy |
Definition at line 167 of file TypeSize.h.
|
inlineprotected |
Definition at line 176 of file TypeSize.h.
Referenced by llvm::UnivariateLinearPolyBase< TypeSize >::getWithDecrement(), and llvm::UnivariateLinearPolyBase< TypeSize >::getWithIncrement().
|
inline |
Definition at line 232 of file TypeSize.h.
Referenced by llvm::LinearPolySize< TypeSize >::getKnownMinValue(), and performCommonVectorExtendCombine().
|
inline |
Definition at line 233 of file TypeSize.h.
|
inline |
Subtract RHS
from the value at the univariate dimension.
Definition at line 244 of file TypeSize.h.
|
inline |
Add RHS
to the value at the univariate dimension.
Definition at line 238 of file TypeSize.h.
Referenced by llvm::LoopVectorizationPlanner::buildVPlans().
|
inline |
Definition at line 230 of file TypeSize.h.
Referenced by llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::LLT::LLT(), llvm::UnivariateLinearPolyBase< TypeSize >::operator bool(), llvm::LoopVectorizationPlanner::plan(), and replaceWithCallToVeclib().
|
inline |
Definition at line 229 of file TypeSize.h.
Referenced by addMappingsFromTLI(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), llvm::UnivariateLinearPolyBase< TypeSize >::isNonZero(), llvm::isTLIScalarize(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), and llvm::IRTranslator::runOnMachineFunction().
|
inlineexplicit |
Definition at line 231 of file TypeSize.h.
|
inline |
Definition at line 225 of file TypeSize.h.
|
inline |
Definition at line 221 of file TypeSize.h.
Definition at line 208 of file TypeSize.h.
|
friend |
Definition at line 193 of file TypeSize.h.
Definition at line 198 of file TypeSize.h.
|
friend |
Definition at line 181 of file TypeSize.h.
|
friend |
Definition at line 215 of file TypeSize.h.
Definition at line 203 of file TypeSize.h.
|
friend |
Definition at line 187 of file TypeSize.h.
|
staticconstexpr |
Definition at line 168 of file TypeSize.h.
Referenced by llvm::UnivariateLinearPolyBase< TypeSize >::UnivariateLinearPolyBase().
|
protected |
Definition at line 174 of file TypeSize.h.
Referenced by llvm::UnivariateLinearPolyBase< TypeSize >::getValue(), llvm::UnivariateLinearPolyBase< TypeSize >::getWithDecrement(), llvm::UnivariateLinearPolyBase< TypeSize >::getWithIncrement(), llvm::LinearPolySize< TypeSize >::isScalable(), llvm::UnivariateLinearPolyBase< TypeSize >::operator==(), and llvm::UnivariateLinearPolyBase< TypeSize >::UnivariateLinearPolyBase().
|
protected |
Definition at line 170 of file TypeSize.h.
Referenced by llvm::UnivariateLinearPolyBase< TypeSize >::getValue(), llvm::UnivariateLinearPolyBase< TypeSize >::isZero(), and llvm::UnivariateLinearPolyBase< TypeSize >::operator==().