MLIR
20.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 LogicalResult | addLocalIdSemiAffine (ArrayRef< int64_t > lhs, ArrayRef< int64_t > rhs, 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 354 of file AffineExprVisitor.h.
SimpleAffineExprFlattener::SimpleAffineExprFlattener | ( | unsigned | numDims, |
unsigned | numSymbols | ||
) |
Definition at line 1263 of file AffineExpr.cpp.
References operandExprStack.
|
virtualdefault |
|
protectedvirtual |
Definition at line 1537 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 1548 of file AffineExpr.cpp.
References localExprs, numLocals, and operandExprStack.
LogicalResult SimpleAffineExprFlattener::visitAddExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1301 of file AffineExpr.cpp.
References operandExprStack.
LogicalResult SimpleAffineExprFlattener::visitCeilDivExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1394 of file AffineExpr.cpp.
LogicalResult SimpleAffineExprFlattener::visitConstantExpr | ( | AffineConstantExpr | expr | ) |
Definition at line 1420 of file AffineExpr.cpp.
References mlir::AffineConstantExpr::getValue(), and operandExprStack.
LogicalResult SimpleAffineExprFlattener::visitDimExpr | ( | AffineDimExpr | expr | ) |
Definition at line 1402 of file AffineExpr.cpp.
References mlir::AffineDimExpr::getPosition(), numDims, and operandExprStack.
LogicalResult SimpleAffineExprFlattener::visitFloorDivExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1398 of file AffineExpr.cpp.
LogicalResult SimpleAffineExprFlattener::visitModExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1325 of file AffineExpr.cpp.
References mlir::presburger::abs(), addLocalFloorDivId(), mlir::AffineExpr::floorDiv(), mlir::getAffineConstantExpr(), mlir::getAffineExprFromFlatForm(), mlir::AffineExpr::getContext(), mlir::AffineBinaryOpExpr::getRHS(), localExprs, numDims, numLocals, numSymbols, and operandExprStack.
LogicalResult SimpleAffineExprFlattener::visitMulExpr | ( | AffineBinaryOpExpr | expr | ) |
Definition at line 1274 of file AffineExpr.cpp.
References mlir::getAffineExprFromFlatForm(), mlir::AffineExpr::getContext(), mlir::AffineBinaryOpExpr::getRHS(), localExprs, numDims, numSymbols, and operandExprStack.
LogicalResult SimpleAffineExprFlattener::visitSymbolExpr | ( | AffineSymbolExpr | expr | ) |
Definition at line 1411 of file AffineExpr.cpp.
References mlir::AffineSymbolExpr::getPosition(), numSymbols, and operandExprStack.
SmallVector<AffineExpr, 4> mlir::SimpleAffineExprFlattener::localExprs |
Definition at line 377 of file AffineExprVisitor.h.
Referenced by addLocalFloorDivId(), addLocalIdSemiAffine(), mlir::simplifyAffineExpr(), visitModExpr(), and visitMulExpr().
unsigned mlir::SimpleAffineExprFlattener::numDims |
Definition at line 364 of file AffineExprVisitor.h.
Referenced by visitDimExpr(), visitModExpr(), and visitMulExpr().
unsigned mlir::SimpleAffineExprFlattener::numLocals |
Definition at line 368 of file AffineExprVisitor.h.
Referenced by addLocalFloorDivId(), addLocalIdSemiAffine(), mlir::getBoundForAffineExpr(), and visitModExpr().
unsigned mlir::SimpleAffineExprFlattener::numSymbols |
Definition at line 365 of file AffineExprVisitor.h.
Referenced by visitModExpr(), visitMulExpr(), and visitSymbolExpr().
std::vector<SmallVector<int64_t, 8> > mlir::SimpleAffineExprFlattener::operandExprStack |
Definition at line 362 of file AffineExprVisitor.h.
Referenced by addLocalFloorDivId(), addLocalIdSemiAffine(), canonicalizeMapExprAndTermOrder(), mlir::getBoundForAffineExpr(), SimpleAffineExprFlattener(), mlir::simplifyAffineExpr(), visitAddExpr(), visitConstantExpr(), visitDimExpr(), visitModExpr(), visitMulExpr(), and visitSymbolExpr().