diff options
author | Arvind Sudarsanam <arvind.sudarsanam@intel.com> | 2024-10-31 07:39:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-31 09:39:55 -0500 |
commit | eeee5a44bbf24f2f30a313ecf66e6a76de365658 (patch) | |
tree | beaa2f2237656e2b8f07aad4a2d5667413eac4cd /llvm/lib/Transforms/Utils/BuildLibCalls.cpp | |
parent | c485ee1968831e72778e1258d467022be62fa3f5 (diff) | |
download | llvm-eeee5a44bbf24f2f30a313ecf66e6a76de365658.zip llvm-eeee5a44bbf24f2f30a313ecf66e6a76de365658.tar.gz llvm-eeee5a44bbf24f2f30a313ecf66e6a76de365658.tar.bz2 |
[Clang][SYCL] Introduce clang-sycl-linker to link SYCL offloading device code (Part 1 of many) (#112245)
This PR is one of the many PRs in the SYCL upstreaming effort focusing
on device code linking during the SYCL offload compilation process. RFC:
https://discourse.llvm.org/t/rfc-offloading-design-for-sycl-offload-kind-and-spir-targets/74088
In this PR, we introduce a new tool that will be used to perform device
code linking for SYCL offload kind. It accepts SYCL device objects in
LLVM IR bitcode format and will generate a fully linked device object
that can then be wrapped and linked into the host object.
A primary use case for this tool is to perform device code linking for
objects with SYCL offload kind inside the clang-linker-wrapper. It can
also be invoked via clang driver as follows:
`clang --target=spirv64 --sycl-link input.bc`
Device code linking for SYCL offloading kind has a number of known
quirks that makes it difficult to use in a unified offloading setting.
Two of the primary issues are:
1. Several finalization steps are required to be run on the fully-linked
LLVM IR bitcode to gaurantee conformance to SYCL standards. This step is
unique to SYCL offloading compilation flow.
2. SPIR-V LLVM Translator tool is an extenal tool and hence SPIR-V IR
code generation cannot be done as part of LTO. This limitation will be
lifted once SPIR-V backend is available as a viable LLVM backend.
Hence, we introduce this new tool to provide a clean wrapper to perform
SYCL device linking.
Co-Author: Michael Toguchi
Thanks
---------
Signed-off-by: Arvind Sudarsanam <arvind.sudarsanam@intel.com>
Diffstat (limited to 'llvm/lib/Transforms/Utils/BuildLibCalls.cpp')
0 files changed, 0 insertions, 0 deletions