llvm
llvm copied to clipboard
[SYCL] PoC implementation of kernel compiler extension with libtooling and sycl-jit
This PR sets up in-memory compilation for runtime-defined SYCL kernels, via clang's libtooling interface and reusing LLVM-to-SPRIV-translation infrastructure in sycl-jit. I introduced a new, undocumented source language sycljit, which shall be removed again when the proposed approach is ready to replace the current process/file-based implementation for the sycl source language.
Missing features:
- Compiler warnings/errors -> build log / exception message
- Instantiation of template kernels
- Name mangling beyond removing the
__sycl_kernelprefix when requesting a kernel from the bundle - Linking of device libs, and
sycl-post-linkphase, so only very simple kernels are supported - Property handling and integration into program_manager