| // Copyright 2021 The IREE Authors | |
| // | |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| #include "iree-dialects-c/Dialects.h" | |
| #include "mlir-c/BuiltinAttributes.h" | |
| #include "mlir-c/BuiltinTypes.h" | |
| #include "mlir-c/Diagnostics.h" | |
| #include "mlir-c/RegisterEverything.h" | |
| #include "mlir/Bindings/Python/PybindAdaptors.h" | |
| namespace py = pybind11; | |
| using namespace mlir::python::adaptors; | |
| PYBIND11_MODULE(_ireeDialects, m) { | |
| m.doc() = "iree-dialects main python extension"; | |
| auto irModule = py::module::import(MAKE_MLIR_PYTHON_QUALNAME("ir")); | |
| auto typeClass = irModule.attr("Type"); | |
| //===--------------------------------------------------------------------===// | |
| // IREEDialect | |
| //===--------------------------------------------------------------------===// | |
| auto iree_m = m.def_submodule("iree_input"); | |
| iree_m.def( | |
| "register_dialect", | |
| [](MlirContext context, bool load) { | |
| MlirDialectHandle handle = mlirGetDialectHandle__iree_input__(); | |
| mlirDialectHandleRegisterDialect(handle, context); | |
| if (load) { | |
| mlirDialectHandleLoadDialect(handle, context); | |
| } | |
| }, | |
| py::arg("context") = py::none(), py::arg("load") = true); | |
| } |