MLIR
17.0.0git
|
#include "mlir/IR/AffineExprVisitor.h"
Public Attributes | |
std::vector< SmallVector< int64_t, 8 > > | operandExprStack |
unsigned | numDims |
unsigned | numSymbols |
unsigned | numLocals |
SmallVector< AffineExpr, 4 > | localExprs |
Protected Member Functions | |
virtual void | addLocalFloorDivId (ArrayRef< int64_t > dividend, int64_t divisor, AffineExpr localExpr) |
virtual void | addLocalIdSemiAffine (AffineExpr localExpr) |
Add a local identifier (needed to flatten a mod, floordiv, ceildiv, mul expr) when the rhs is a symbolic expression. More... | |
Definition at line 248 of file AffineExprVisitor.h.
SimpleAffineExprFlattener::SimpleAffineExprFlattener | ( | unsigned | numDims, |
unsigned | numSymbols | ||
) |
Definition at line 1119 of file AffineExpr.cpp.
References operandExprStack.
|
virtualdefault |
|
protectedvirtual |
Definition at line 1381 of file AffineExpr.cpp.
References localExprs, numLocals, and operandExprStack.
Referenced by visitModExpr().
|
protectedvirtual |
Add a local identifier (needed to flatten a mod, floordiv, ceildiv, mul expr) when the rhs is a symbolic expression.
The local identifier added may be a floordiv, ceildiv, mul or mod of a pure affine/semi-affine function of other identifiers, coefficients of which are specified in the lhs of the mod, floordiv, ceildiv or mul expression and with respect to a symbolic rhs expression. localExpr
is the simplified tree expression (AffineExpr) corresponding to the quantifier.
Definition at line 1392 of file AffineExpr.cpp.
References localExprs, numLocals, and operandExprStack.
void SimpleAffineExprFlattener::visitAddExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1156 of file AffineExpr.cpp.
References operandExprStack.
void SimpleAffineExprFlattener::visitCeilDivExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1247 of file AffineExpr.cpp.
void SimpleAffineExprFlattener::visitConstantExpr | ( | AffineConstantExpr | expr | ) |
Definition at line 1268 of file AffineExpr.cpp.
References mlir::AffineConstantExpr::getValue(), and operandExprStack.
void SimpleAffineExprFlattener::visitDimExpr | ( | AffineDimExpr | expr | ) |
Definition at line 1254 of file AffineExpr.cpp.
References mlir::AffineDimExpr::getPosition(), numDims, and operandExprStack.
void SimpleAffineExprFlattener::visitFloorDivExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1250 of file AffineExpr.cpp.
void SimpleAffineExprFlattener::visitModExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1179 of file AffineExpr.cpp.
References mlir::presburger::abs(), addLocalFloorDivId(), mlir::AffineExpr::floorDiv(), mlir::presburger::gcd(), mlir::getAffineConstantExpr(), mlir::getAffineExprFromFlatForm(), mlir::AffineExpr::getContext(), mlir::AffineBinaryOpExpr::getRHS(), mlir::AffineExpr::isa(), localExprs, numDims, numLocals, numSymbols, and operandExprStack.
void SimpleAffineExprFlattener::visitMulExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1130 of file AffineExpr.cpp.
References mlir::getAffineExprFromFlatForm(), mlir::AffineExpr::getContext(), mlir::AffineBinaryOpExpr::getRHS(), mlir::AffineExpr::isa(), localExprs, numDims, numSymbols, and operandExprStack.
void SimpleAffineExprFlattener::visitSymbolExpr | ( | AffineSymbolExpr | expr | ) |
Definition at line 1261 of file AffineExpr.cpp.
References mlir::AffineSymbolExpr::getPosition(), numSymbols, and operandExprStack.
SmallVector<AffineExpr, 4> mlir::SimpleAffineExprFlattener::localExprs |
Definition at line 271 of file AffineExprVisitor.h.
Referenced by addLocalFloorDivId(), addLocalIdSemiAffine(), mlir::simplifyAffineExpr(), visitModExpr(), and visitMulExpr().
unsigned mlir::SimpleAffineExprFlattener::numDims |
Definition at line 258 of file AffineExprVisitor.h.
Referenced by visitDimExpr(), visitModExpr(), and visitMulExpr().
unsigned mlir::SimpleAffineExprFlattener::numLocals |
Definition at line 262 of file AffineExprVisitor.h.
Referenced by addLocalFloorDivId(), addLocalIdSemiAffine(), getBoundForExpr(), and visitModExpr().
unsigned mlir::SimpleAffineExprFlattener::numSymbols |
Definition at line 259 of file AffineExprVisitor.h.
Referenced by visitModExpr(), visitMulExpr(), and visitSymbolExpr().
std::vector<SmallVector<int64_t, 8> > mlir::SimpleAffineExprFlattener::operandExprStack |
Definition at line 256 of file AffineExprVisitor.h.
Referenced by addLocalFloorDivId(), addLocalIdSemiAffine(), canonicalizeMapExprAndTermOrder(), getBoundForExpr(), SimpleAffineExprFlattener(), mlir::simplifyAffineExpr(), visitAddExpr(), visitConstantExpr(), visitDimExpr(), visitModExpr(), visitMulExpr(), and visitSymbolExpr().