sarnex wrote:

> Guessing the idea is to put in N input files and get out one merged LLVM-IR 
> file from the clang interface? I've done this personally with 
> -Wl,--lto-emit-llvm for the OpenMP / libc libraries. Could we just implement 
> some similar functionality in the linker SPIR-V toolchain uses instead?

Yes exactly. With the existing cases (NVPTX,AMDGPU) LTO is actually supported 
and `lld` is usable, right now neither is true for SPIR-V, trying to use `lld` 
at all errors in the driver.

The SPIR-V linker is an out-of-tree 
[project](https://github.com/KhronosGroup/SPIRV-Tools) and I don't expect they 
would be interested in this change as all of their existing tools take in `spv` 
and output `spv`, none of their tools do anything with LLVM IR and LLVM isn't 
even a dependency of the project.

One alternative to this change is to allow using `lld` with SPIR-V just for 
this case, but adding support for LTO in general seems a bit out of scope for 
this change, so we could detect if the user passed `-Wl,--lto-emit-llvm` and in 
that case only call `lld`.

Let me know what you think.

https://github.com/llvm/llvm-project/pull/169572
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to