MemCpyOpt can hoist stores while load+store pairs into memcpy. This hoisting can currently result in stores being executed that weren't guaranteed to execute in the original problem.
Details
Details
Diff Detail
Diff Detail
Paths
| Differential D89154
[MemCpyOpt] Don't hoist store that's not guaranteed to execute ClosedPublic Authored by nikic on Oct 9 2020, 12:11 PM.
Details Summary MemCpyOpt can hoist stores while load+store pairs into memcpy. This hoisting can currently result in stores being executed that weren't guaranteed to execute in the original problem.
Diff Detail Event TimelineThis revision is now accepted and ready to land.Oct 9 2020, 12:25 PM Closed by commit rG5e855f1e8056: [MemCpyOpt] Don't hoist store that's not guaranteed to execute (authored by nikic). · Explain WhyOct 10 2020, 1:28 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 297296 llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
|