[llvm] [MemCpyOpt] Avoid infinite loops in `MemCpyOptPass::processMemCpyMemCpyDependence` (PR #103218)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 13 07:40:17 PDT 2024


================
@@ -1198,6 +1198,10 @@ bool MemCpyOptPass::processMemCpyMemCpyDependence(MemCpyInst *M,
       CopySourceAlign = commonAlignment(*CopySourceAlign, MForwardOffset);
   }
 
+  // Avoid infinite loops
+  if (BAA.isMustAlias(M->getSource(), CopySource))
----------------
nikic wrote:

There already is a `M->getSource() == MDep->getSource()` check above. Can we change that one?

Also, do you think it would make sense to also remove the no-op memcpy, if we already have to check for them anyway?

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


More information about the llvm-commits mailing list