[Mlir-commits] [mlir] [mlir][Func][NFC] Simplify implementation after #144706 (PR #145006)
Matthias Springer
llvmlistbot at llvm.org
Fri Jun 20 02:43:52 PDT 2025
https://github.com/matthias-springer created https://github.com/llvm/llvm-project/pull/145006
None
>From d32b85eaa12e8ee8afe7456108afa4c2aeca006f Mon Sep 17 00:00:00 2001
From: Matthias Springer <me at m-sp.org>
Date: Fri, 20 Jun 2025 09:42:53 +0000
Subject: [PATCH] [mlir][Func][NFC] Simplify implementation after #144706
---
mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp b/mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
index c6bcb593eaad8..538016927256b 100644
--- a/mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
+++ b/mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
@@ -273,7 +273,7 @@ static void wrapExternalFunction(OpBuilder &builder, Location loc,
static void restoreByValRefArgumentType(
ConversionPatternRewriter &rewriter, const LLVMTypeConverter &typeConverter,
ArrayRef<std::optional<NamedAttribute>> byValRefNonPtrAttrs,
- ArrayRef<BlockArgument> oldBlockArgs, LLVM::LLVMFuncOp funcOp) {
+ LLVM::LLVMFuncOp funcOp) {
// Nothing to do for function declarations.
if (funcOp.isExternal())
return;
@@ -281,8 +281,8 @@ static void restoreByValRefArgumentType(
ConversionPatternRewriter::InsertionGuard guard(rewriter);
rewriter.setInsertionPointToStart(&funcOp.getFunctionBody().front());
- for (const auto &[arg, oldArg, byValRefAttr] :
- llvm::zip(funcOp.getArguments(), oldBlockArgs, byValRefNonPtrAttrs)) {
+ for (const auto &[arg, byValRefAttr] :
+ llvm::zip(funcOp.getArguments(), byValRefNonPtrAttrs)) {
// Skip argument if no `llvm.byval` or `llvm.byref` attribute.
if (!byValRefAttr)
continue;
@@ -309,10 +309,6 @@ mlir::convertFuncOpToLLVMFuncOp(FunctionOpInterface funcOp,
return rewriter.notifyMatchFailure(
funcOp, "Only support FunctionOpInterface with FunctionType");
- // Keep track of the entry block arguments. They will be needed later.
- SmallVector<BlockArgument> oldBlockArgs =
- llvm::to_vector(funcOp.getArguments());
-
// Convert the original function arguments. They are converted using the
// LLVMTypeConverter provided to this legalization pattern.
auto varargsAttr = funcOp->getAttrOfType<BoolAttr>(varargsAttrName);
@@ -455,7 +451,7 @@ mlir::convertFuncOpToLLVMFuncOp(FunctionOpInterface funcOp,
// pointee type in the function body when converting `llvm.byval`/`llvm.byref`
// function arguments.
restoreByValRefArgumentType(rewriter, converter, byValRefNonPtrAttrs,
- oldBlockArgs, newFuncOp);
+ newFuncOp);
if (!shouldUseBarePtrCallConv(funcOp, &converter)) {
if (funcOp->getAttrOfType<UnitAttr>(
More information about the Mlir-commits
mailing list