Skip to content

Commit fcf8f75

Browse files
committed
Add extension interfaces to daphne-opt
1 parent 76b464e commit fcf8f75

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

daphne-opt/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414

1515
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
1616
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
17+
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
1718
set(LIBS
1819
${dialect_libs}
1920
${conversion_libs}
21+
${extension_libs}
2022

2123
MLIRDaphne
2224
MLIRBufferizationDialect

daphne-opt/daphne-opt.cpp

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,16 @@
1616

1717
#include "daphne-opt.h"
1818

19+
#include <mlir/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.h>
20+
#include <mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h>
21+
#include <mlir/Dialect/Func/Extensions/InlinerExtension.h>
1922
#include <mlir/Dialect/LLVMIR/LLVMDialect.h>
23+
#include <mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h>
24+
#include <mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h>
25+
#include <mlir/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.h>
26+
#include <mlir/Dialect/SparseTensor/IR/SparseTensor.h>
27+
#include <mlir/Dialect/SparseTensor/Transforms/BufferizableOpInterfaceImpl.h>
28+
#include <mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h>
2029

2130
#include "ir/daphneir/Passes.h"
2231
#include "mlir/Dialect/Affine/IR/AffineOps.h"
@@ -37,15 +46,24 @@ int main(int argc, char **argv) {
3746
mlir::daphne::registerDaphnePasses();
3847

3948
mlir::DialectRegistry registry;
40-
registry.insert<mlir::daphne::DaphneDialect, mlir::arith::ArithDialect, mlir::func::FuncDialect,
41-
mlir::scf::SCFDialect, mlir::LLVM::LLVMDialect, mlir::affine::AffineDialect,
42-
mlir::memref::MemRefDialect, mlir::linalg::LinalgDialect, mlir::math::MathDialect,
43-
mlir::bufferization::BufferizationDialect, mlir::tensor::TensorDialect>();
49+
registry
50+
.insert<mlir::daphne::DaphneDialect, mlir::arith::ArithDialect, mlir::func::FuncDialect, mlir::scf::SCFDialect,
51+
mlir::LLVM::LLVMDialect, mlir::affine::AffineDialect, mlir::memref::MemRefDialect,
52+
mlir::linalg::LinalgDialect, mlir::math::MathDialect, mlir::bufferization::BufferizationDialect,
53+
mlir::tensor::TensorDialect, mlir::sparse_tensor::SparseTensorDialect>();
4454
// Add the following to include *all* MLIR Core dialects, or selectively
4555
// include what you need like above. You only need to register dialects that
4656
// will be *parsed* by the tool, not the one generated
4757
// registerAllDialects(registry);
4858

59+
mlir::LLVM::registerInlinerInterface(registry);
60+
mlir::func::registerInlinerExtension(registry);
61+
mlir::linalg::registerBufferizableOpInterfaceExternalModels(registry);
62+
mlir::arith::registerBufferizableOpInterfaceExternalModels(registry);
63+
mlir::scf::registerBufferizableOpInterfaceExternalModels(registry);
64+
mlir::tensor::registerBufferizableOpInterfaceExternalModels(registry);
65+
mlir::bufferization::func_ext::registerBufferizableOpInterfaceExternalModels(registry);
66+
mlir::sparse_tensor::registerBufferizableOpInterfaceExternalModels(registry);
4967
return mlir::asMainReturnCode(
5068
mlir::MlirOptMain(argc, argv, "Standalone DAPHNE optimizing compiler driver\n", registry));
5169
}

0 commit comments

Comments
 (0)