MLIR
20.0.0git
|
A symbolic identifier appearing in an affine expression. More...
#include "mlir/IR/AffineExpr.h"
Public Types | |
using | ImplType = detail::AffineDimExprStorage |
Public Types inherited from mlir::AffineExpr | |
using | ImplType = detail::AffineExprStorage |
Public Member Functions | |
AffineSymbolExpr (AffineExpr::ImplType *ptr) | |
unsigned | getPosition () const |
Public Member Functions inherited from mlir::AffineExpr | |
constexpr | AffineExpr () |
AffineExpr (const ImplType *expr) | |
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 > | |
constexpr 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 |
Returns true if this expression is made out of only symbols and constants, i.e., it does not involve dimensional identifiers. More... | |
bool | 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. More... | |
int64_t | getLargestKnownDivisor () const |
Returns the greatest known integral divisor of this affine expression. More... | |
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... | |
bool | isFunctionOfSymbol (unsigned position) const |
Return true if the affine expression involves AffineSymbolExpr position . More... | |
template<typename FnT , typename RetT = detail::walkResultType<FnT>> | |
RetT | walk (FnT &&callback) const |
Walk all of the AffineExpr's in this expression in postorder. More... | |
AffineExpr | replaceDimsAndSymbols (ArrayRef< AffineExpr > dimReplacements, ArrayRef< AffineExpr > symReplacements) const |
This method substitutes any uses of dimensions and symbols (e.g. More... | |
AffineExpr | replaceDims (ArrayRef< AffineExpr > dimReplacements) const |
Dim-only version of replaceDimsAndSymbols. More... | |
AffineExpr | replaceSymbols (ArrayRef< AffineExpr > symReplacements) const |
Symbol-only version of replaceDimsAndSymbols. More... | |
AffineExpr | replace (AffineExpr expr, AffineExpr replacement) const |
Sparse replace method. More... | |
AffineExpr | replace (const DenseMap< AffineExpr, AffineExpr > &map) const |
Sparse replace method. More... | |
AffineExpr | shiftDims (unsigned numDims, unsigned shift, unsigned offset=0) const |
Replace dims[offset ... More... | |
AffineExpr | shiftSymbols (unsigned numSymbols, unsigned shift, unsigned offset=0) const |
Replace symbols[offset ... More... | |
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 |
Compose with an AffineMap. More... | |
const void * | getAsOpaquePointer () const |
Methods supporting C API. More... | |
ImplType * | getImpl () const |
Additional Inherited Members | |
Static Public Member Functions inherited from mlir::AffineExpr | |
static AffineExpr | getFromOpaquePointer (const void *pointer) |
Protected Attributes inherited from mlir::AffineExpr | |
ImplType * | expr {nullptr} |
A symbolic identifier appearing in an affine expression.
Definition at line 244 of file AffineExpr.h.
Definition at line 246 of file AffineExpr.h.
AffineSymbolExpr::AffineSymbolExpr | ( | AffineExpr::ImplType * | ptr | ) |
Definition at line 621 of file AffineExpr.cpp.
unsigned AffineSymbolExpr::getPosition | ( | ) | const |
Definition at line 623 of file AffineExpr.cpp.
References mlir::AffineExpr::expr.
Referenced by simplifySemiAffine(), and mlir::SimpleAffineExprFlattener::visitSymbolExpr().