Currently, the utility supports lowering of non atomic memory transfer routines only. This patch adds support for atomic version of memcopy. This may be useful for targets not supporting atomic memcopy.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp | ||
---|---|---|
509 | nit: is there any reason for templating first parameter? For now we only pass concrete MemCpyInst as argument. |
llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp | ||
---|---|---|
509 | Oh, you are right... Originally, there was call to canOverlap from expandAtomicMemCpyAsLoop passing AtomicMemCpyInst. Later I realized that this call is not required. |
llvm/include/llvm/Analysis/TargetTransformInfoImpl.h | ||
---|---|---|
714 | Bot is right, missing space before += | |
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h | ||
138–145 | We should probably move these to use Align (separate patch) | |
llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp | ||
260–271 | Typo s/Residal/Residual | |
307 | Might as well make this opaque pointer friendly with getWithSamePointeeType |
clang-format: please reformat the code