[llvm] [MemCpyOpt] allow some undef contents overread in processMemCpyMemCpyDependence (PR #143745)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 12 01:46:12 PDT 2025
================
@@ -1152,9 +1169,13 @@ bool MemCpyOptPass::processMemCpyMemCpyDependence(MemCpyInst *M,
eraseInstruction(NewCopySource);
});
MaybeAlign CopySourceAlign = MDep->getSourceAlign();
- // We just need to calculate the actual size of the copy.
- auto MCopyLoc = MemoryLocation::getForSource(MDep).getWithNewSize(
- MemoryLocation::getForSource(M).Size);
+ auto MCopyLoc = MemoryLocation::getForSource(MDep);
+ // Truncate the size of the MDep access to just the bytes read
+ if (MDep->getLength() != CopyLength) {
+ auto ConstLength = cast<ConstantInt>(CopyLength);
----------------
nikic wrote:
```suggestion
auto *ConstLength = cast<ConstantInt>(CopyLength);
```
https://github.com/llvm/llvm-project/pull/143745
More information about the llvm-commits
mailing list