[Mlir-commits] [mlir] [mlir][bufferization] Add support for non-unique `func.return` (PR #114017)
Javed Absar
llvmlistbot at llvm.org
Tue Nov 12 02:05:04 PST 2024
================
@@ -86,18 +86,13 @@ getOrCreateFuncAnalysisState(OneShotAnalysisState &state) {
return state.addExtension<FuncAnalysisState>();
}
-/// Return the unique ReturnOp that terminates `funcOp`.
-/// Return nullptr if there is no such unique ReturnOp.
-static func::ReturnOp getAssumedUniqueReturnOp(func::FuncOp funcOp) {
- func::ReturnOp returnOp;
- for (Block &b : funcOp.getBody()) {
- if (auto candidateOp = dyn_cast<func::ReturnOp>(b.getTerminator())) {
- if (returnOp)
- return nullptr;
- returnOp = candidateOp;
- }
- }
- return returnOp;
+/// Return all func.return ops in the given function.
+static SmallVector<func::ReturnOp> getReturnOps(FuncOp funcOp) {
+ SmallVector<func::ReturnOp> result;
+ for (Block &b : funcOp.getBody())
+ if (auto returnOp = dyn_cast<func::ReturnOp>(b.getTerminator()))
+ result.push_back(returnOp);
+ return result;
}
----------------
javedabsar1 wrote:
Seems a repeat of lines 44 - 48
/// Return all top-level func.return ops in the given function.
static SmallVector<func::ReturnOp> getReturnOps(FuncOp funcOp) {
SmallVector<func::ReturnOp> result;
for (Block &b : funcOp.getBody())
if (auto returnOp = dyn_cast<func::ReturnOp>(b.getTerminator()))
result.push_back(returnOp);
return result;
}
https://github.com/llvm/llvm-project/pull/114017
More information about the Mlir-commits
mailing list