[all-commits] [llvm/llvm-project] 83c431: [amdgpu] Add amdgpu_kernel calling conv attribute ...

Jon Chesterfield via All-commits all-commits at lists.llvm.org
Fri May 20 00:51:12 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 83c431fb9e72abbd2eddf26388245eb4963370e2
      https://github.com/llvm/llvm-project/commit/83c431fb9e72abbd2eddf26388245eb4963370e2
  Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
  Date:   2022-05-20 (Fri, 20 May 2022)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/Specifiers.h
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/Basic/Targets/AMDGPU.h
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaType.cpp
    A clang/test/CodeGenCXX/amdgpu-kernel-arg-pointer-type.cpp
    M clang/test/Sema/callingconv.c
    M clang/tools/libclang/CXType.cpp

  Log Message:
  -----------
  [amdgpu] Add amdgpu_kernel calling conv attribute to clang

Allows emitting define amdgpu_kernel void @func() IR from C or C++.

This replaces the current workflow which is to write a stub in opencl that
calls an external C function implemented in C++ combined through llvm-link.

Calling the resulting function still requires a manual implementation of the
ABI from the host side. The primary application is for more rapid debugging
of the amdgpu backend by permuting a C or C++ test file instead of manually
updating an IR file.

Implementation closely follows D54425. Non-amd reviewers from there.

Reviewed By: yaxunl

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




More information about the All-commits mailing list