There is currently work to support basic libc functionality on the
GPU. Some basic information about the projects can be found at
https://libc.llvm.org/gpu_mode.html. Typically, including the system
headers on the GPU will result in an error. For this reason the LLVM
libc project will generate its own headers that can be used with the
GPU.
The problem is that these headers will use the same name as the system headers.
For that reason, D146970 places it in the llvm-libc subfolder. In order to
still pick these files up, this patch adds changes in clang to default to
searching this directory when targeting the GPU. This lets offloading languages
such as OpenMP use the system string.h when compiling for the host and then
the LLVM libc string.h when targeting the GPU.
Depends on D146970
Please add a TODO with some details outlining what it's supposed to do, the issues we've discussed, and that this is intended to be a temporary solution (famous last words, I know).