tree 6f0b9b1d7a341d714ab3a2a9543f9d023ee9231b
parent b04045cc4165fae487d048bbf928be26e068284e
author Shilei Tian <i@tianshilei.me> 1744645939 -0400
committer GitHub <noreply@github.com> 1744645939 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn/S8zCRC1aQ7uu5UhlAAAm90QAEuIADjHhnEhXZdFRhQCqetS
 dHkj7RGrCrtgBFKTaBxwKDfHW4S1DH403xDYCQnArDQpAnZ9ydRuRcEmqm0QI2I6
 2p9/1gvexF9ofMI6187fZYubnh7lW8xinc1O65v2nfTa0dVSeYakfTmtQ1ybW6Y9
 md/GsYSzKpQqWMKO+N8o2T7lnpU9pyYOFacSsKTzWKRU8s+BJUoHVsXCIYSmsdIB
 g1QogmbF87J1++TeuKTnYRFsdYc9I1qD9BRJVNiYAYDWFAuevumCr9GD0QelK+i8
 jng0tycNEC5C4+L4TDDqbPhssyRCEgWhfoUBVz91QsI/Sl00fLBDYoEazLr/qIjz
 9TU28SsaZ7T4MMjsQMviQpcmTH/uHGabRusHlnXu5eSHaYmL6e4GosCemvzSCaKu
 cALUOBWsJRx07DXyiDLs22t9OJTTJyoYFNDaFtXUm2Fl0AnGkN3jEIQvSgIByI8B
 kSkRj2fRcO68iakgXN4oYlE+9f46Cw/D7VUjIiVJJy8/Vgia0IUGNnhZ+9yDfFQY
 z86sFK+y9FkPtctFwrRWUOGV2c2L33d+PxVP6LWPyI50uH6OJ5sppFl+GLRd6CrQ
 bmRf2ACLUPz/u1hU7uCPlPxouLbcJNvUEkrJajsJNudd8iIb3nEcKgl1vQNL0Moh
 rRykQsvn7aTxNGbQuW1w
 =/yph
 -----END PGP SIGNATURE-----
 

[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.