[clang] [CIR] Fix LLVM lowering crashes after #155244 (PR #157471)

Morris Hafner via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 8 07:28:07 PDT 2025


https://github.com/mmha updated https://github.com/llvm/llvm-project/pull/157471

>From b3a93e27c9d04b3a8dbe7bf99e541a9975a6f97a Mon Sep 17 00:00:00 2001
From: Morris Hafner <mhafner at nvidia.com>
Date: Mon, 8 Sep 2025 16:12:45 +0200
Subject: [PATCH] [CIR] Fix LLVM lowering crashes after #155244

This patch replaces all uses of replaceAllUseWith with replaceOp. This fixes a number of regressions post #155244.
---
 clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp b/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
index ee9f58c829ca9..cb05d6f9c3f79 100644
--- a/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+++ b/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
@@ -1355,8 +1355,7 @@ mlir::LogicalResult CIRToLLVMConstantOpLowering::matchAndRewrite(
     } else {
       const mlir::Value initVal =
           lowerCirAttrAsValue(op, op.getValue(), rewriter, typeConverter);
-      rewriter.replaceAllUsesWith(op, initVal);
-      rewriter.eraseOp(op);
+      rewriter.replaceOp(op, initVal);
       return mlir::success();
     }
   } else if (const auto recordAttr =
@@ -2653,8 +2652,7 @@ mlir::LogicalResult CIRToLLVMVTableGetVPtrOpLowering::matchAndRewrite(
   // pointer to the vptr type. Since the LLVM dialect uses opaque pointers
   // we can just replace uses of this operation with the original pointer.
   mlir::Value srcVal = adaptor.getSrc();
-  rewriter.replaceAllUsesWith(op, srcVal);
-  rewriter.eraseOp(op);
+  rewriter.replaceOp(op, srcVal);
   return mlir::success();
 }
 



More information about the cfe-commits mailing list