11#ifndef MLIR_AIEX_DIALECT_H
12#define MLIR_AIEX_DIALECT_H
16#include "mlir/IR/BuiltinAttributes.h"
19#include "aie/Dialect/AIEX/IR/AIEXDialect.h.inc"
20#include "mlir/IR/Operation.h"
24#include "aie/Dialect/AIEX/IR/AIEX.h.inc"
26#define GET_TYPEDEF_CLASSES
27#include "aie/Dialect/AIEX/IR/AIEXTypes.h.inc"
29#include "llvm/ADT/StringRef.h"
38 mlir::BaseMemRefType referencedBufType,
39 llvm::SmallVector<int64_t, 4> inputSizes,
40 llvm::SmallVector<int64_t, 4> inputStrides,
41 llvm::SmallVector<int64_t, 4> &sizes,
42 llvm::SmallVector<int64_t, 4> &strides);
45 mlir::BaseMemRefType referencedBufType,
int tileCol,
46 int tileRow, llvm::SmallVector<int64_t, 4> inputSizes,
47 llvm::SmallVector<int64_t, 4> inputStrides,
48 llvm::SmallVector<int64_t, 4> hardwareSizes,
49 llvm::SmallVector<int64_t, 4> hardwareStrides,
50 bool skipTransformationChecks =
false);
52 llvm::ArrayRef<int64_t> strides);
void getHardwareStridesWraps(const AIE::AIETargetModel &targetModel, mlir::Operation *op, mlir::BaseMemRefType referencedBufType, llvm::SmallVector< int64_t, 4 > inputSizes, llvm::SmallVector< int64_t, 4 > inputStrides, llvm::SmallVector< int64_t, 4 > &sizes, llvm::SmallVector< int64_t, 4 > &strides)
mlir::LogicalResult verifyStridesWraps(mlir::Operation *forOp, mlir::BaseMemRefType referencedBufType, int tileCol, int tileRow, llvm::SmallVector< int64_t, 4 > inputSizes, llvm::SmallVector< int64_t, 4 > inputStrides, llvm::SmallVector< int64_t, 4 > hardwareSizes, llvm::SmallVector< int64_t, 4 > hardwareStrides, bool skipTransformationChecks=false)
bool isLinearTransfer(llvm::ArrayRef< int64_t > sizes, llvm::ArrayRef< int64_t > strides)