| // 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 "iree-dialects/Dialect/Input/InputDialect.h" | |
| #include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h" | |
| #include "iree-dialects/Dialect/LinalgExt/TransformOps/LinalgExtTransformOps.h" | |
| #include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h" | |
| #include "iree-dialects/Dialect/LinalgTransform/Passes.h" | |
| #include "iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h" | |
| #include "mlir/CAPI/IR.h" | |
| #include "mlir/CAPI/Pass.h" | |
| #include "mlir/CAPI/Registration.h" | |
| #include "mlir/CAPI/Support.h" | |
| #include "mlir/CAPI/Utils.h" | |
| #include "mlir/CAPI/Wrap.h" | |
| #include "mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.h" | |
| #include "mlir/Dialect/Transform/IR/TransformDialect.h" | |
| #include "mlir/Support/LLVM.h" | |
| using namespace mlir; | |
| using namespace mlir::iree_compiler::IREE; | |
| //===----------------------------------------------------------------------===// | |
| // IREEDialect | |
| //===----------------------------------------------------------------------===// | |
| MLIR_DEFINE_CAPI_DIALECT_REGISTRATION( | |
| IREEInput, iree_input, mlir::iree_compiler::IREE::Input::IREEInputDialect) | |
| //===--------------------------------------------------------------------===// | |
| // IREELinalgExt | |
| //===--------------------------------------------------------------------===// | |
| MLIR_DEFINE_CAPI_DIALECT_REGISTRATION( | |
| IREELinalgExt, iree_linalg_ext, | |
| mlir::iree_compiler::IREE::LinalgExt::IREELinalgExtDialect) | |
| //===--------------------------------------------------------------------===// | |
| // IREELinalgTransform | |
| //===--------------------------------------------------------------------===// | |
| MLIR_DEFINE_CAPI_DIALECT_REGISTRATION( | |
| IREELinalgTransform, iree_linalg_transform, | |
| mlir::linalg::transform::LinalgTransformDialect) | |
| void mlirIREELinalgTransformRegisterPasses() { | |
| mlir::linalg::transform::registerTransformDialectInterpreterPass(); | |
| mlir::linalg::transform::registerLinalgTransformExpertExpansionPass(); | |
| mlir::linalg::transform::registerDropSchedulePass(); | |
| } | |
| //===--------------------------------------------------------------------===// | |
| // TransformDialect | |
| //===--------------------------------------------------------------------===// | |
| void ireeRegisterTransformExtensions(MlirContext context) { | |
| MLIRContext *ctx = unwrap(context); | |
| DialectRegistry registry; | |
| registry.addExtensions< | |
| mlir::iree_compiler::IREE::LinalgExt::LinalgExtTransformOpsExtension, | |
| mlir::transform_ext::StructuredTransformOpsExtension>(); | |
| ctx->appendDialectRegistry(registry); | |
| } | |
| void mlirIREETransformRegisterPasses() { | |
| mlir::linalg::transform::registerDropSchedulePass(); | |
| mlir::linalg::transform::registerTransformDialectInterpreterPass(); | |
| } |