[all-commits] [llvm/llvm-project] 2a65d0: [libc] Add support for creating wrapper headers fo...

Joseph Huber via All-commits all-commits at lists.llvm.org
Fri Jul 7 14:02:51 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2a65d0388ca0f1c756f4c1a859cbb9e24b364942
      https://github.com/llvm/llvm-project/commit/2a65d0388ca0f1c756f4c1a859cbb9e24b364942
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2023-07-07 (Fri, 07 Jul 2023)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Headers/CMakeLists.txt
    A clang/lib/Headers/llvm_libc_wrappers/ctype.h
    A clang/lib/Headers/llvm_libc_wrappers/inttypes.h
    A clang/lib/Headers/llvm_libc_wrappers/llvm-libc-decls/README.txt
    A clang/lib/Headers/llvm_libc_wrappers/stdio.h
    A clang/lib/Headers/llvm_libc_wrappers/stdlib.h
    A clang/lib/Headers/llvm_libc_wrappers/string.h
    M clang/test/Driver/gpu-libc-headers.c
    M libc/cmake/modules/LLVMLibCHeaderRules.cmake
    M libc/include/CMakeLists.txt
    M libc/utils/HdrGen/Generator.cpp
    M libc/utils/HdrGen/Generator.h
    M libc/utils/HdrGen/Main.cpp

  Log Message:
  -----------
  [libc] Add support for creating wrapper headers for offloading in clang

This is an alternate approach to the patches proposed in D153897 and
D153794. Rather than exporting a single header that can be included on
the GPU in all circumstances, this patch chooses to instead generate a
separate set of headers that only provides the declarations. This can
then be used by external tooling to set up what's on the GPU. This
leaves room for header hacks for offloading languages without needing to
worry about the `libc` implementation.

Currently this generates a set of headers that only contain the
declarations. These will then be installed to a new clang resource
directory called `llvm_libc_wrappers/` which will house the shim code.
We can then automaticlaly include this from `clang` when offloading to
wrap around the headers while specifying what's on the GPU.

Reviewed By: jdoerfert, JonChesterfield

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




More information about the All-commits mailing list