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

Suriyaa MM llvmlistbot at llvm.org
Thu Dec 25 03:50:04 PST 2025


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

>From 18049d68a7c23674b939b30d1c61d262a24579ef 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] Error out instead of crashing on
 functions without func.return

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

diff --git a/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp b/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
index c233e24c2a151..10bff4fe8d8e2 100644
--- a/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
+++ b/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
@@ -136,7 +136,11 @@ aliasingFuncOpBBArgsAnalysis(FuncOp funcOp, OneShotAnalysisState &state,
 
   // Find all func.return ops.
   SmallVector<func::ReturnOp> returnOps = getReturnOps(funcOp);
-  assert(!returnOps.empty() && "expected at least one ReturnOp");
+  // TODO: throw error when there is any non-func.return op that has the
+  // ReturnLike trait
+  if (returnOps.empty()) {
+    funcOp.emitError("cannot bufferize func.func without func.return");
+  }
 
   // Build alias sets. Merge all aliases from all func.return ops.
   for (BlockArgument bbArg : funcOp.getArguments()) {



More information about the Mlir-commits mailing list