[all-commits] [llvm/llvm-project] 36527c: [AMDGPU][GlobalISel] Legalize memcpy family of int...

Mirko BrkuĊĦanin via All-commits all-commits at lists.llvm.org
Tue Sep 7 03:33:35 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 36527cbe02c401671098c35b1a99853e01c291a9
      https://github.com/llvm/llvm-project/commit/36527cbe02c401671098c35b1a99853e01c291a9
  Author: Mirko Brkusanin <Mirko.Brkusanin at amd.com>
  Date:   2021-09-07 (Tue, 07 Sep 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
    A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memcpy.mir
    A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memcpyinline.mir
    A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memmove.mir
    A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memset.mir
    A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memcpy.inline.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memcpy.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memmove.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memset.ll
    R llvm/test/CodeGen/AMDGPU/GlobalISel/prelegalizer-combiner-memcpy-inline.mir

  Log Message:
  -----------
  [AMDGPU][GlobalISel] Legalize memcpy family of intrinsics

Legalize G_MEMCPY, G_MEMMOVE, G_MEMSET and G_MEMCPY_INLINE.

Corresponding intrinsics are replaced by a loop that uses loads/stores in
AMDGPULowerIntrinsics 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.

Differential Revision: https://reviews.llvm.org/D108357




More information about the All-commits mailing list