MLIR  20.0.0git
Public Types | Public Member Functions | List of all members
mlir::AffineSymbolExpr Class Reference

A symbolic identifier appearing in an affine expression. More...

#include "mlir/IR/AffineExpr.h"

+ Inheritance diagram for mlir::AffineSymbolExpr:

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 >
dyn_cast () const
 
template<typename U >
dyn_cast_or_null () const
 
template<typename U >
cast () const
 
MLIRContextgetContext () 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...
 
ImplTypegetImpl () const
 

Additional Inherited Members

- Static Public Member Functions inherited from mlir::AffineExpr
static AffineExpr getFromOpaquePointer (const void *pointer)
 
- Protected Attributes inherited from mlir::AffineExpr
ImplTypeexpr {nullptr}
 

Detailed Description

A symbolic identifier appearing in an affine expression.

Definition at line 244 of file AffineExpr.h.

Member Typedef Documentation

◆ ImplType

Definition at line 246 of file AffineExpr.h.

Constructor & Destructor Documentation

◆ AffineSymbolExpr()

AffineSymbolExpr::AffineSymbolExpr ( AffineExpr::ImplType ptr)

Definition at line 621 of file AffineExpr.cpp.

Member Function Documentation

◆ getPosition()

unsigned AffineSymbolExpr::getPosition ( ) const

The documentation for this class was generated from the following files: