llvm-project
fcf0f810 - [Clang][AMDGPU] Enable `avail-extern-to-local` for ThinLTO in HIP (#134476)

Commit
1 year ago
[Clang][AMDGPU] Enable `avail-extern-to-local` for ThinLTO in HIP (#134476) In HIP, the Clang driver already sets `force-import-all` when ThinLTO is enabled. As a result, all imported functions get the `available_externally` linkage. However, these functions are later removed by the `EliminateAvailableExternallyPass`, effectively undoing the forced import and eventually leading to link errors. The `EliminateAvailableExternallyPass` provides an option to convert `available_externally` functions into local functions, renaming them to avoid conflicts. This behavior is exactly what we need for HIP. This PR enables that option (`avail-extern-to-local`) alongside `force-import-all` when ThinLTO is used. With this change, ThinLTO almost works correctly on AMDGPU. The only remaining issue is an undefined reference to `__assert_fail`, but that falls outside the scope of this PR.
Author
Parents
Loading