[llvm] [CodeGenPrepare] Handle address sinking obtained from invoke (PR #143566)

Evgenii Kudriashov via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 11 14:42:38 PDT 2025


================
@@ -5790,7 +5790,8 @@ static BasicBlock::iterator findInsertPos(Value *Addr, Instruction *MemoryInst,
   // instruction after it.
   if (SunkAddr) {
     if (Instruction *AddrInst = dyn_cast<Instruction>(SunkAddr))
-      return std::next(AddrInst->getIterator());
+      return AddrInst->isTerminator() ? MemoryInst->getIterator()
+                                      : std::next(AddrInst->getIterator());
----------------
e-kud wrote:

> The proposed fix is like adding a null check when the correct fix was to avoid passing null at a higher level.

Yeah, I agree but the same we can say about checking on `Instruction` to bypass arguments and globals.

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


More information about the llvm-commits mailing list