[Mlir-commits] [mlir] [MLIR][MemRef] Add `alloca` support for `erase_dead_alloc_and_stores` (PR #142131)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Sun Jun 1 13:55:42 PDT 2025


================
@@ -156,13 +156,17 @@ static bool resultIsNotRead(Operation *op, std::vector<Operation *> &uses) {
 
 void eraseDeadAllocAndStores(RewriterBase &rewriter, Operation *parentOp) {
   std::vector<Operation *> opToErase;
-  parentOp->walk([&](memref::AllocOp op) {
+  auto collectOpsToErase = [&](Operation *op) {
     std::vector<Operation *> candidates;
     if (resultIsNotRead(op, candidates)) {
       llvm::append_range(opToErase, candidates);
-      opToErase.push_back(op.getOperation());
+      opToErase.push_back(op);
     }
-  });
+  };
+
+  parentOp->walk([&](memref::AllocOp op) { collectOpsToErase(op); });
----------------
MaheshRavishankar wrote:

We dont need two separate walks. We can do it in a single walk and check for `AllocOp` or `AllocaOp`.

https://github.com/llvm/llvm-project/pull/142131


More information about the Mlir-commits mailing list