4f3570520c
reuse code for subviews
32 lines
1.3 KiB
C++
32 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "mlir/Dialect/MemRef/IR/MemRef.h"
|
|
#include "mlir/IR/BuiltinAttributes.h"
|
|
#include "mlir/IR/BuiltinTypes.h"
|
|
#include "mlir/IR/PatternMatch.h"
|
|
|
|
#include "llvm/ADT/ArrayRef.h"
|
|
#include "llvm/ADT/StringRef.h"
|
|
|
|
#include "src/Accelerators/PIM/Common/IR/SubviewUtils.hpp"
|
|
|
|
namespace onnx_mlir {
|
|
|
|
mlir::memref::GlobalOp createFoldedGlobal(mlir::ModuleOp moduleOp,
|
|
mlir::Location loc,
|
|
mlir::MemRefType globalType,
|
|
mlir::DenseElementsAttr denseAttr,
|
|
llvm::StringRef nameStem,
|
|
mlir::IntegerAttr alignment = {});
|
|
|
|
llvm::FailureOr<mlir::DenseElementsAttr> foldDenseSubview(mlir::DenseElementsAttr denseAttr,
|
|
llvm::ArrayRef<int64_t> staticOffsets,
|
|
llvm::ArrayRef<int64_t> resultShape);
|
|
|
|
llvm::FailureOr<mlir::DenseElementsAttr> getDenseGlobalValue(mlir::ModuleOp moduleOp, mlir::Value value);
|
|
|
|
llvm::FailureOr<mlir::DenseElementsAttr>
|
|
foldDenseSourceToType(mlir::ModuleOp moduleOp, mlir::Value source, mlir::MemRefType resultType);
|
|
|
|
} // namespace onnx_mlir
|