[all-commits] [llvm/llvm-project] d77c62: [clang][AMDGPU]: Don't use byval for struct argume...

Changpeng Fang via All-commits all-commits at lists.llvm.org
Fri Aug 11 16:38:42 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d77c62053c944652846c00a35c921e14b43b1877
      https://github.com/llvm/llvm-project/commit/d77c62053c944652846c00a35c921e14b43b1877
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2023-08-11 (Fri, 11 Aug 2023)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/Targets/AMDGPU.cpp
    M clang/test/CodeGenCUDA/kernel-args.cu
    M clang/test/CodeGenCXX/amdgcn-func-arg.cpp
    M clang/test/CodeGenOpenCL/addr-space-struct-arg.cl
    A clang/test/CodeGenOpenCL/amdgpu-abi-struct-arg-byref.cl
    M clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl
    M clang/test/CodeGenOpenCL/byval.cl
    M llvm/docs/AMDGPUUsage.rst

  Log Message:
  -----------
  [clang][AMDGPU]: Don't use byval for struct arguments in function ABI

Summary:
  Byval requires allocating additional stack space, and always requires an implicit copy to be inserted in codegen,
where it can be difficult to optimize. In this work, we use byref/IndirectAliased promotion method instead of
byval with the implicit copy semantics.

Reviewers:
  arsenm

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




More information about the All-commits mailing list