diff options
author | Yaxun (Sam) Liu <yaxun.liu@amd.com> | 2020-10-28 10:44:21 -0400 |
---|---|---|
committer | Yaxun (Sam) Liu <yaxun.liu@amd.com> | 2020-11-03 08:07:19 -0500 |
commit | abd8cd9199d1e14cae961e1067b78df7044179a3 (patch) | |
tree | 9ebeb3833d3a57f2075f0019781fbedaf789938e /llvm/unittests/ADT/SmallVectorTest.cpp | |
parent | c009d11bdac4a7f4a3a8ae85e42da053828a6f24 (diff) | |
download | llvm-abd8cd9199d1e14cae961e1067b78df7044179a3.zip llvm-abd8cd9199d1e14cae961e1067b78df7044179a3.tar.gz llvm-abd8cd9199d1e14cae961e1067b78df7044179a3.tar.bz2 |
[CUDA][HIP] Fix linkage for -fgpu-rdc
Currently for explicit template function instantiation in CUDA/HIP device
compilation clang emits instantiated kernel with external linkage
and instantiated device function with internal linkage.
This is fine for -fno-gpu-rdc since there is only one TU.
However this causes duplicate symbols for kernels for -fgpu-rdc if
the same instantiation happen in multiple TU. Or missing symbols
if a device function calls an explicitly instantiated template function
in a different TU.
To make explicit template function instantiation work for
-fgpu-rdc we need to follow the C++ linkage paradigm, i.e.
use weak_odr linkage.
Differential Revision: https://reviews.llvm.org/D90311
Diffstat (limited to 'llvm/unittests/ADT/SmallVectorTest.cpp')
0 files changed, 0 insertions, 0 deletions