[PATCH] D108357: [AMDGPU][GlobalISel] Legalize memcpy family of intrinsics

Mirko Brkusanin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 19 02:29:50 PDT 2021


mbrkusanin created this revision.
mbrkusanin added reviewers: foad, arsenm.
mbrkusanin added a project: LLVM.
Herald added subscribers: kerbowa, hiraditya, t-tye, tpr, dstuttard, rovka, yaxunl, nhaehnle, jvesely, kzhuravl.
mbrkusanin requested review of this revision.
Herald added a subscriber: wdng.

Legalize G_MEMCPY, G_MEMMOVE, G_MEMSET and G_MEMCPY_INLINE.

Corresponding intrinsics are replaced by a loop that uses loads/stores in 
AMDGPULowerIntinics pass unless their length is a constant lower then 
MemIntrinsicExpandSizeThresholdOpt (default 1024). Any G_MEM* instruction that 
reaches legalizer should have a const length argument and should be expanded 
into appropriate number of loads + stores.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D108357

Files:
  llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
  llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
  llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
  llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memcpy.mir
  llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memcpyinline.mir
  llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memmove.mir
  llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memset.mir
  llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memcpy.inline.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memcpy.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memmove.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memset.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/prelegalizer-combiner-memcpy-inline.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D108357.367433.patch
Type: text/x-patch
Size: 51961 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210819/26af1363/attachment.bin>


More information about the llvm-commits mailing list