[all-commits] [llvm/llvm-project] ae0ba7: AMDGPU: Optimize out implicit kernarg argument all...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Sat Dec 4 07:38:39 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ae0ba7dedd276c4cc983b61dabb5a8e7ae4a4c00
      https://github.com/llvm/llvm-project/commit/ae0ba7dedd276c4cc983b61dabb5a8e7ae4a4c00
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2021-12-04 (Sat, 04 Dec 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.kernarg.segment.ptr.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-enqueue-kernel-v3.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-enqueue-kernel.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full-v3.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-hidden-args-v3.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-hidden-args.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-hostcall-absent-v3.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-hostcall-absent.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-hostcall-present-v3.ll
    M llvm/test/CodeGen/AMDGPU/hsa-metadata-hostcall-present.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.kernarg.segment.ptr.ll

  Log Message:
  -----------
  AMDGPU: Optimize out implicit kernarg argument allocation if unused

We already annotate whether llvm.amdgcn.implicitarg.ptr is known to be
unused. Start using it to avoid allocating the implicit arguments if
unneeded.


  Commit: 2959e082e1427647e107af0b82770682eaa58fe1
      https://github.com/llvm/llvm-project/commit/2959e082e1427647e107af0b82770682eaa58fe1
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2021-12-04 (Sat, 04 Dec 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-abi-attribute-hints.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-return-values.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.kernarg.segment.ptr.ll
    M llvm/test/CodeGen/AMDGPU/callee-special-input-sgprs-fixed-abi.ll
    M llvm/test/CodeGen/AMDGPU/callee-special-input-sgprs.ll
    M llvm/test/CodeGen/AMDGPU/cc-update.ll
    M llvm/test/CodeGen/AMDGPU/flat-scratch-init.ll
    M llvm/test/CodeGen/AMDGPU/indirect-call.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.implicitarg.ptr.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.kernarg.segment.ptr.ll
    M llvm/test/CodeGen/AMDGPU/lower-kernargs.ll

  Log Message:
  -----------
  AMDGPU: Assume all amdhsa kernarg passed implicit arguments by default

Previously we would require adding an attribute to kernels to enable
the inputs passed in the kernarg segment, accessed by
llvm.amdgcn.implicitarg.ptr. This violates the principle of being
correct by default. Some OpenMP testcases were broken recently since
it wasn't correctly setting this attribute, and no known frontends are
setting this to anything other than the maximum.

Most of the test changes are from load widening of argument loads
since there now more implied dereferenceable bytes.


Compare: https://github.com/llvm/llvm-project/compare/ee691970a9a8...2959e082e142


More information about the All-commits mailing list