ff36729140
fix codegen symlinks overwrite remove deprecated pim memcp_hd_batch op
35 lines
964 B
C++
35 lines
964 B
C++
#pragma once
|
|
|
|
#include "mlir/Dialect/MemRef/IR/MemRef.h"
|
|
#include "mlir/IR/Value.h"
|
|
|
|
#include "llvm/ADT/SmallVector.h"
|
|
#include "llvm/Support/LogicalResult.h"
|
|
|
|
namespace onnx_mlir {
|
|
|
|
struct StaticSubviewInfo {
|
|
mlir::Value source;
|
|
llvm::SmallVector<int64_t> sourceShape;
|
|
llvm::SmallVector<mlir::OpFoldResult> offsets;
|
|
llvm::SmallVector<int64_t> sizes;
|
|
llvm::SmallVector<int64_t> strides;
|
|
};
|
|
|
|
mlir::Value stripMemRefCasts(mlir::Value value);
|
|
|
|
mlir::Value stripMemRefViewOps(mlir::Value value);
|
|
|
|
mlir::Value stripMemRefAddressingOps(mlir::Value value);
|
|
|
|
bool hasAllStaticSubviewParts(mlir::memref::SubViewOp subview);
|
|
|
|
llvm::FailureOr<StaticSubviewInfo> getStaticSubviewInfo(mlir::Value value);
|
|
|
|
/// Returns the offsets in `info` as int64_t, failing if any offset is dynamic.
|
|
llvm::FailureOr<llvm::SmallVector<int64_t>> getStaticSubviewOffsets(const StaticSubviewInfo& info);
|
|
|
|
bool isMemRefBaseAddressableValue(mlir::Value value);
|
|
|
|
} // namespace onnx_mlir
|