[Mlir-commits] [mlir] [mlir][mesh] Introduce `DialectInlinerInterface` for Mesh dialect (PR #108297)
Matteo Franciolini
llvmlistbot at llvm.org
Wed Sep 11 14:45:43 PDT 2024
https://github.com/mfrancio updated https://github.com/llvm/llvm-project/pull/108297
>From 99bc7c10e8b965585c23647f6b69374d829b3c86 Mon Sep 17 00:00:00 2001
From: Matteo Franciolini <mfranciolini at tesla.com>
Date: Wed, 11 Sep 2024 14:31:57 -0700
Subject: [PATCH] [mlir][mesh] Introduce `DialectInlinerInterface` for the Mesh
dialect
The inliner interface does not implement any restrictions for inlining.
---
mlir/lib/Dialect/Mesh/IR/MeshOps.cpp | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/mlir/lib/Dialect/Mesh/IR/MeshOps.cpp b/mlir/lib/Dialect/Mesh/IR/MeshOps.cpp
index c35020b4c20ccc..19e9212157ae47 100644
--- a/mlir/lib/Dialect/Mesh/IR/MeshOps.cpp
+++ b/mlir/lib/Dialect/Mesh/IR/MeshOps.cpp
@@ -24,6 +24,7 @@
#include "mlir/IR/Value.h"
#include "mlir/Interfaces/ViewLikeInterface.h"
#include "mlir/Support/LLVM.h"
+#include "mlir/Transforms/InliningUtils.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
@@ -74,6 +75,26 @@ static DimensionSize operator*(DimensionSize lhs, DimensionSize rhs) {
return lhs.value() * rhs.value();
}
+//===----------------------------------------------------------------------===//
+// Inliner
+//===----------------------------------------------------------------------===//
+
+namespace {
+struct MeshInlinerInterface : public DialectInlinerInterface {
+ using DialectInlinerInterface::DialectInlinerInterface;
+ // Currently no restrictions are encoded for inlining.
+ bool isLegalToInline(Operation *, Operation *, bool) const final {
+ return true;
+ }
+ bool isLegalToInline(Region *, Region *, bool, IRMapping &) const final {
+ return true;
+ }
+ bool isLegalToInline(Operation *, Region *, bool, IRMapping &) const final {
+ return true;
+ }
+};
+} // namespace
+
//===----------------------------------------------------------------------===//
// Mesh dialect
//===----------------------------------------------------------------------===//
@@ -91,6 +112,7 @@ void MeshDialect::initialize() {
#define GET_TYPEDEF_LIST
#include "mlir/Dialect/Mesh/IR/MeshTypes.cpp.inc"
>();
+ addInterface<MeshInlinerInterface>();
}
Operation *MeshDialect::materializeConstant(OpBuilder &builder, Attribute value,
More information about the Mlir-commits
mailing list