[Mlir-commits] [mlir] [MLIR] Enable inlining for private symbols (PR #122572)
William Moses
llvmlistbot at llvm.org
Fri Jan 10 21:01:14 PST 2025
https://github.com/wsmoses created https://github.com/llvm/llvm-project/pull/122572
The inlining code for llvm funcs seems to have needlessly forbidden inlining of private (e.g. non-cloning) symbols.
>From 62e74d31bc28244f03778dab7d4129003ce96362 Mon Sep 17 00:00:00 2001
From: "William S. Moses" <gh at wsmoses.com>
Date: Fri, 10 Jan 2025 23:59:01 -0500
Subject: [PATCH] [MLIR] Enable inlining for private symbols
---
.../LLVMIR/Transforms/InlinerInterfaceImpl.cpp | 2 --
mlir/test/Dialect/LLVMIR/inlining.mlir | 13 +++++++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp b/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
index dd20412ee70801..b3bed5ab5f412f 100644
--- a/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
@@ -663,8 +663,6 @@ struct LLVMInlinerInterface : public DialectInlinerInterface {
bool isLegalToInline(Operation *call, Operation *callable,
bool wouldBeCloned) const final {
- if (!wouldBeCloned)
- return false;
if (!isa<LLVM::CallOp>(call)) {
LLVM_DEBUG(llvm::dbgs() << "Cannot inline: call is not an '"
<< LLVM::CallOp::getOperationName() << "' op\n");
diff --git a/mlir/test/Dialect/LLVMIR/inlining.mlir b/mlir/test/Dialect/LLVMIR/inlining.mlir
index 0b7ca3f2bb048a..edaac4da0b044c 100644
--- a/mlir/test/Dialect/LLVMIR/inlining.mlir
+++ b/mlir/test/Dialect/LLVMIR/inlining.mlir
@@ -663,3 +663,16 @@ llvm.func @caller() {
llvm.call @vararg_intrinrics() : () -> ()
llvm.return
}
+
+// -----
+
+llvm.func @private_func(%a : i32) -> i32 attributes {sym_visibility = "private"} {
+ llvm.return %a : i32
+}
+
+// CHECK-LABEL: func @caller
+llvm.func @caller(%x : i32) -> i32 {
+ // CHECK-NOT: llvm.call @private_func
+ %z = llvm.call @private_func(%x) : (i32) -> (i32)
+ llvm.return %z : i32
+}
More information about the Mlir-commits
mailing list