| // 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/Dialect/LinalgExt/IR/LinalgExtDialect.h" | |
| #include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtOps.h" | |
| #include "mlir/IR/Attributes.h" | |
| #include "mlir/IR/DialectImplementation.h" | |
| #include "mlir/IR/OpDefinition.h" | |
| #include "mlir/IR/OpImplementation.h" | |
| #include "mlir/Transforms/InliningUtils.h" | |
| #include "llvm/ADT/SmallVector.h" | |
| #include "llvm/ADT/TypeSwitch.h" | |
| #include "llvm/Support/SourceMgr.h" | |
| using namespace mlir; | |
| using namespace mlir::iree_compiler::IREE::LinalgExt; | |
| #include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtEnums.cpp.inc" // IWYU pragma: keep | |
| #define GET_ATTRDEF_CLASSES | |
| #include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtAttrs.cpp.inc" // IWYU pragma: keep | |
| // Used to control inlining behavior. | |
| struct IREELinalgExtInlinerInterface : public DialectInlinerInterface { | |
| using DialectInlinerInterface::DialectInlinerInterface; | |
| bool isLegalToInline(Operation *call, Operation *callable, | |
| bool wouldBeCloned) const final { | |
| // Sure! | |
| return true; | |
| } | |
| bool isLegalToInline(Region *dest, Region *src, bool wouldBeCloned, | |
| IRMapping &valueMapping) const final { | |
| // Sure! | |
| return true; | |
| } | |
| bool isLegalToInline(Operation *op, Region *dest, bool wouldBeCloned, | |
| IRMapping &valueMapping) const final { | |
| // Sure! | |
| return true; | |
| } | |
| }; | |
| void IREELinalgExtDialect::initialize() { | |
| addInterfaces<IREELinalgExtInlinerInterface>(); | |
| addAttributes< | |
| #define GET_ATTRDEF_LIST | |
| #include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtAttrs.cpp.inc" | |
| >(); | |
| #define GET_OP_LIST | |
| addOperations< | |
| #include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtOps.cpp.inc" | |
| >(); | |
| } | |
| #include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.cpp.inc" |