9 #ifndef MLIR_DIALECT_LINALG_IR_LINALG_H
10 #define MLIR_DIALECT_LINALG_IR_LINALG_H
64 MLIRContext *context);
69 MLIRContext *context);
72 SmallVector<AffineExpr, 4>
concat(ArrayRef<AffineExpr> a,
73 ArrayRef<AffineExpr> b);
95 #include "mlir/Dialect/Linalg/IR/LinalgOpsDialect.h.inc"
101 #include "mlir/Dialect/Linalg/IR/LinalgOpsEnums.h.inc"
107 #define GET_ATTRDEF_CLASSES
108 #include "mlir/Dialect/Linalg/IR/LinalgOpsAttrDefs.h.inc"
120 #define GET_OP_CLASSES
121 #include "mlir/Dialect/Linalg/IR/LinalgOps.h.inc"
123 #define GET_OP_CLASSES
124 #include "mlir/Dialect/Linalg/IR/LinalgStructuredOps.h.inc"
SmallVector< AffineExpr, 4 > concat(ArrayRef< AffineExpr > a, ArrayRef< AffineExpr > b)
Return the vector that is the concatenation of a and b.
OpFoldResult createFoldedDimOp(OpBuilder &b, Location loc, Value val, int64_t dim)
Create one memref::DimOp or tensor::DimOp depending on the type of val.
std::string generateLibraryCallName(Operation *op)
Returns the name mangled library call name to disambiguate between different overloads at the C level...
AffineMap extractOrIdentityMap(std::optional< AffineMap > maybeMap, unsigned rank, MLIRContext *context)
Returns maybeMap.get() if maybeMap is set, otherwise returns the symbol-less identity map of rank.
SmallVector< AffineExpr, 4 > makeAffineDimExprs(unsigned num, unsigned &startIdx, MLIRContext *context)
Returns num AffineDimExpr dimensions at positions [startIdx, startIdx + num) and increments startIdx ...
Value createOrFoldDimOp(OpBuilder &b, Location loc, Value val, int64_t dim)
Create one memref::DimOp or tensor::DimOp depending on the type of val.
Include the generated interface declarations.