[all-commits] [llvm/llvm-project] d85d14: [AMDGPU] New image intrinsic optimizer pass (#67151)

Jay Foad via All-commits all-commits at lists.llvm.org
Tue Sep 26 01:34:03 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d85d143ad99006a5500b375bd199c087adf7778f
      https://github.com/llvm/llvm-project/commit/d85d143ad99006a5500b375bd199c087adf7778f
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2023-09-26 (Tue, 26 Sep 2023)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPU.h
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    A llvm/lib/Target/AMDGPU/AMDGPUImageIntrinsicOptimizer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/CMakeLists.txt
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
    A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.load.2dmsaa.ll
    M llvm/tools/opt/opt.cpp

  Log Message:
  -----------
  [AMDGPU] New image intrinsic optimizer pass (#67151)

Implement a new pass to combine multiple image_load_2dmsaa and
2darraymsaa intrinsic calls into a single image_msaa_load if:

- they refer to the same vaddr except for sample_id,
- they use a constant sample_id and they fall into the same group,
- they have the same dmask and the number of instructions and the
  number of vaddr/vdata dword transfers is reduced by the combine

This should be valid on all GFX11 but a hardware bug renders it
unworkable on GFX11.0.* so it is only enabled for GFX11.5.

Based on a patch by Rodrigo Dominguez!




More information about the All-commits mailing list