13 #ifndef MLIR_DIALECT_AFFINE_IR_AFFINEVALUEMAP_H
14 #define MLIR_DIALECT_AFFINE_IR_AFFINEVALUEMAP_H
54 inline bool isMultipleOf(
unsigned idx, int64_t factor)
const;
Base type for affine expression.
A multi-dimensional affine map Affine map's are immutable like Type's, and they are uniqued.
unsigned getNumSymbols() const
unsigned getNumDims() const
unsigned getNumResults() const
AffineExpr getResult(unsigned idx) const
An AffineValueMap is an affine map plus its ML value operands and results for analysis purposes.
unsigned getNumResults() const
void setResult(unsigned i, AffineExpr e)
Value getOperand(unsigned i) const
unsigned getNumDims() const
LogicalResult canonicalize()
Attempts to canonicalize the map and operands.
bool isMultipleOf(unsigned idx, int64_t factor) const
Return true if the idx^th result can be proved to be a multiple of 'factor', false otherwise.
unsigned getNumOperands() const
ArrayRef< Value > getOperands() const
unsigned getNumSymbols() const
AffineMap getAffineMap() const
bool isIdentity() const
Return true if this is an identity map.
bool isFunctionOf(unsigned idx, Value value) const
Return true if the idx^th result depends on 'value', false otherwise.
AffineExpr getResult(unsigned i)
bool isConstant(unsigned idx) const
Return true if the result at 'idx' is a constant, false otherwise.
void reset(AffineMap map, ValueRange operands, ValueRange results={})
static void difference(const AffineValueMap &a, const AffineValueMap &b, AffineValueMap *res)
Return the value map that is the difference of value maps 'a' and 'b', represented as an affine map a...
This class provides an abstraction over the different types of ranges over Values.
This class represents an instance of an SSA value in the MLIR system, representing a computable value...
Include the generated interface declarations.
This class represents an efficient way to signal success or failure.
A mutable affine map. Its affine expressions are however unique.