[llvm] [MemCpyOptimizer] Support scalable vectors in performStackMoveO… (PR #67632)

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 28 10:18:36 PDT 2023


================
@@ -1766,8 +1765,8 @@ bool MemCpyOptPass::processMemCpy(MemCpyInst *M, BasicBlock::iterator &BBI) {
   ConstantInt *Len = dyn_cast<ConstantInt>(M->getLength());
   if (Len == nullptr)
     return false;
-  if (performStackMoveOptzn(M, M, DestAlloca, SrcAlloca, Len->getZExtValue(),
-                            BAA)) {
+  if (performStackMoveOptzn(M, M, DestAlloca, SrcAlloca,
----------------
preames wrote:

As a possible follow up, extending the length matching from ConstantInt to also match a vscale expression here to form a scalable type size would seem relatively straight forward.  I think that would allow this optimization to trigger for scalable allocas and scalable memcpys.  

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


More information about the llvm-commits mailing list