My Project
|
#include <AffineExpr.h>
Public Types | |
using | ImplType = detail::AffineExprStorage |
Public Member Functions | |
AffineExpr () | |
AffineExpr (const ImplType *expr) | |
AffineExpr (const AffineExpr &other) | |
AffineExpr & | operator= (AffineExpr other) |
bool | operator== (AffineExpr other) const |
bool | operator!= (AffineExpr other) const |
bool | operator== (int64_t v) const |
bool | operator!= (int64_t v) const |
operator bool () const | |
bool | operator! () const |
template<typename U > | |
bool | isa () const |
template<typename U > | |
U | dyn_cast () const |
template<typename U > | |
U | dyn_cast_or_null () const |
template<typename U > | |
U | cast () const |
MLIRContext * | getContext () const |
AffineExprKind | getKind () const |
Return the classification for this type. More... | |
void | print (raw_ostream &os) const |
void | dump () const |
bool | isSymbolicOrConstant () const |
bool | isPureAffine () const |
int64_t | getLargestKnownDivisor () const |
bool | isMultipleOf (int64_t factor) const |
Return true if the affine expression is a multiple of 'factor'. More... | |
bool | isFunctionOfDim (unsigned position) const |
Return true if the affine expression involves AffineDimExpr position . More... | |
void | walk (std::function< void(AffineExpr)> callback) const |
Walk all of the AffineExpr's in this expression in postorder. More... | |
AffineExpr | replaceDimsAndSymbols (ArrayRef< AffineExpr > dimReplacements, ArrayRef< AffineExpr > symReplacements) const |
AffineExpr | operator+ (int64_t v) const |
AffineExpr | operator+ (AffineExpr other) const |
AffineExpr | operator- () const |
AffineExpr | operator- (int64_t v) const |
AffineExpr | operator- (AffineExpr other) const |
AffineExpr | operator* (int64_t v) const |
AffineExpr | operator* (AffineExpr other) const |
AffineExpr | floorDiv (uint64_t v) const |
AffineExpr | floorDiv (AffineExpr other) const |
AffineExpr | ceilDiv (uint64_t v) const |
AffineExpr | ceilDiv (AffineExpr other) const |
AffineExpr | operator% (uint64_t v) const |
AffineExpr | operator% (AffineExpr other) const |
AffineExpr | compose (AffineMap map) const |
Protected Attributes | |
ImplType * | expr |
Friends | |
::llvm::hash_code | hash_value (AffineExpr arg) |
Make AffineExpr hashable. More... | |
Base type for affine expression. AffineExpr's are immutable value types with intuitive operators to operate on chainable, lightweight compositions. An AffineExpr is an interface to the underlying storage type pointer.
|
inline |
|
inline |
|
inline |
U mlir::AffineExpr::cast | ( | ) | const |
AffineExpr AffineExpr::ceilDiv | ( | uint64_t | v | ) | const |
AffineExpr AffineExpr::ceilDiv | ( | AffineExpr | other | ) | const |
AffineExpr AffineExpr::compose | ( | AffineMap | map | ) | const |
Compose with an AffineMap. Returns the composition of this AffineExpr with map
.
Prerequisites: this
and map
are composable, i.e. that the number of AffineDimExpr of this
is smaller than the number of results of map
. If a result of a map does not have a corresponding AffineDimExpr, that result simply does not appear in the produced AffineExpr.
Example: expr: d0 + d2
map: (d0, d1, d2)[s0, s1] -> (d0 + s1, d1 + s0, d0 + d1 + d2)
returned expr: d0 * 2 + d1 + d2 + s1
void AffineExpr::dump | ( | ) | const |
U mlir::AffineExpr::dyn_cast | ( | ) | const |
U mlir::AffineExpr::dyn_cast_or_null | ( | ) | const |
AffineExpr AffineExpr::floorDiv | ( | uint64_t | v | ) | const |
AffineExpr AffineExpr::floorDiv | ( | AffineExpr | other | ) | const |
MLIRContext * AffineExpr::getContext | ( | ) | const |
AffineExprKind AffineExpr::getKind | ( | ) | const |
Return the classification for this type.
int64_t AffineExpr::getLargestKnownDivisor | ( | ) | const |
Returns the greatest known integral divisor of this affine expression. The result is always positive.
bool mlir::AffineExpr::isa | ( | ) | const |
bool AffineExpr::isFunctionOfDim | ( | unsigned | position | ) | const |
Return true if the affine expression involves AffineDimExpr position
.
bool AffineExpr::isMultipleOf | ( | int64_t | factor | ) | const |
Return true if the affine expression is a multiple of 'factor'.
bool AffineExpr::isPureAffine | ( | ) | const |
Returns true if this is a pure affine expression, i.e., multiplication, floordiv, ceildiv, and mod is only allowed w.r.t constants.
bool AffineExpr::isSymbolicOrConstant | ( | ) | const |
Returns true if this expression is made out of only symbols and constants, i.e., it does not involve dimensional identifiers.
Returns true if this expression is made out of only symbols and constants (no dimensional identifiers).
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
AffineExpr AffineExpr::operator% | ( | uint64_t | v | ) | const |
AffineExpr AffineExpr::operator% | ( | AffineExpr | other | ) | const |
AffineExpr AffineExpr::operator* | ( | int64_t | v | ) | const |
AffineExpr AffineExpr::operator* | ( | AffineExpr | other | ) | const |
AffineExpr AffineExpr::operator+ | ( | int64_t | v | ) | const |
AffineExpr AffineExpr::operator+ | ( | AffineExpr | other | ) | const |
AffineExpr AffineExpr::operator- | ( | ) | const |
AffineExpr AffineExpr::operator- | ( | int64_t | v | ) | const |
AffineExpr AffineExpr::operator- | ( | AffineExpr | other | ) | const |
|
inline |
|
inline |
bool AffineExpr::operator== | ( | int64_t | v | ) | const |
void AffineExpr::print | ( | raw_ostream & | os | ) | const |
AffineExpr AffineExpr::replaceDimsAndSymbols | ( | ArrayRef< AffineExpr > | dimReplacements, |
ArrayRef< AffineExpr > | symReplacements | ||
) | const |
This method substitutes any uses of dimensions and symbols (e.g. dim#0 with dimReplacements[0]) and returns the modified expression tree.
void AffineExpr::walk | ( | std::function< void(AffineExpr)> | callback | ) | const |
Walk all of the AffineExpr's in this expression in postorder.
Walk all of the AffineExprs in this subgraph in postorder.
|
friend |
Make AffineExpr hashable.
|
protected |