[Mlir-commits] [mlir] [mlir][bufferization] Return early in aliasing analysis (PR #173529)

Suriyaa MM llvmlistbot at llvm.org
Wed Dec 24 23:08:53 PST 2025


https://github.com/SuriyaaMM created https://github.com/llvm/llvm-project/pull/173529

Fix for [mlir-opt crashes in OneShotModuleBufferize.cpp:139 #173371](https://github.com/llvm/llvm-project/issues/173371#issue-3757290676). 

It just returns `success()` if there is no `func.return` op.


>From 6e9af2eecc76c0049cbaf165540f970e11b5d530 Mon Sep 17 00:00:00 2001
From: SuriyaaMM <suriyaamm.2705 at gmail.com>
Date: Thu, 25 Dec 2025 12:30:46 +0530
Subject: [PATCH] [mlir][bufferization] Return early in aliasing analysis if no
 func.return is found

---
 .../Bufferization/Transforms/OneShotModuleBufferize.cpp      | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp b/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
index c233e24c2a151..77630cf52f839 100644
--- a/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
+++ b/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
@@ -136,7 +136,10 @@ aliasingFuncOpBBArgsAnalysis(FuncOp funcOp, OneShotAnalysisState &state,
 
   // Find all func.return ops.
   SmallVector<func::ReturnOp> returnOps = getReturnOps(funcOp);
-  assert(!returnOps.empty() && "expected at least one ReturnOp");
+  // Gracefully exit if no func.return ops are found.
+  if (returnOps.empty()) {
+    return success();
+  }
 
   // Build alias sets. Merge all aliases from all func.return ops.
   for (BlockArgument bbArg : funcOp.getArguments()) {



More information about the Mlir-commits mailing list