[Mlir-commits] [mlir] [mlir][amdgpu] Add Inliner interface (PR #162873)

Ivan Butygin llvmlistbot at llvm.org
Fri Oct 10 08:50:46 PDT 2025


https://github.com/Hardcode84 created https://github.com/llvm/llvm-project/pull/162873

None

>From 86a71575346fe312d185cbcdbaa5b9db0f82650f Mon Sep 17 00:00:00 2001
From: Ivan Butygin <ivan.butygin at gmail.com>
Date: Fri, 10 Oct 2025 17:39:07 +0200
Subject: [PATCH] [mlir][amdgpu] Add Inliner intreface

---
 mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp | 11 +++++++++++
 mlir/test/Dialect/AMDGPU/inlining.mlir       | 15 +++++++++++++++
 2 files changed, 26 insertions(+)
 create mode 100644 mlir/test/Dialect/AMDGPU/inlining.mlir

diff --git a/mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp b/mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
index d5c71905f7b4a..9649f6138e1a1 100644
--- a/mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
+++ b/mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
@@ -26,6 +26,7 @@
 #include "mlir/IR/OpImplementation.h"
 #include "mlir/IR/PatternMatch.h"
 #include "mlir/IR/TypeUtilities.h"
+#include "mlir/Transforms/InliningUtils.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/TypeSwitch.h"
@@ -40,6 +41,15 @@ using namespace mlir::amdgpu;
 
 #include "mlir/Dialect/AMDGPU/IR/AMDGPUDialect.cpp.inc"
 
+namespace {
+struct AMDGPUInlinerInterface : public DialectInlinerInterface {
+  using DialectInlinerInterface::DialectInlinerInterface;
+  bool isLegalToInline(Operation *, Region *, bool, IRMapping &) const final {
+    return true;
+  }
+};
+} // namespace
+
 void AMDGPUDialect::initialize() {
   addOperations<
 #define GET_OP_LIST
@@ -49,6 +59,7 @@ void AMDGPUDialect::initialize() {
 #define GET_ATTRDEF_LIST
 #include "mlir/Dialect/AMDGPU/IR/AMDGPUAttributes.cpp.inc"
       >();
+  addInterfaces<AMDGPUInlinerInterface>();
 }
 
 //===----------------------------------------------------------------------===//
diff --git a/mlir/test/Dialect/AMDGPU/inlining.mlir b/mlir/test/Dialect/AMDGPU/inlining.mlir
new file mode 100644
index 0000000000000..522ae00259077
--- /dev/null
+++ b/mlir/test/Dialect/AMDGPU/inlining.mlir
@@ -0,0 +1,15 @@
+// RUN: mlir-opt %s --inline | FileCheck %s
+
+func.func @calee(%arg0 : f32) -> f32 {
+  // CHECK: amdgpu.permlane_swap
+  %0 = amdgpu.permlane_swap %arg0 32 : f32
+  func.return %0 : f32
+}
+
+// CHECK-LABEL: func @caller
+func.func @caller(%arg0 : f32) -> f32 {
+  // CHECK-NOT: call
+  //     CHECK: amdgpu.permlane_swap
+  %0 = call @calee(%arg0) : (f32) -> f32
+  func.return %0 : f32
+}



More information about the Mlir-commits mailing list