[CUDA] Postprocess bitcode linked in during device-side CUDA compilation.
Link in and internalize the symbols we need from supplied bitcode library.
Differential Revision: http://reviews.llvm.org/D11664
llvm-svn: 247317
diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp
index 062c7be..b70a080 100644
--- a/clang/lib/CodeGen/CodeGenAction.cpp
+++ b/clang/lib/CodeGen/CodeGenAction.cpp
@@ -159,7 +159,12 @@
if (LinkModule) {
if (Linker::LinkModules(
M, LinkModule.get(),
- [=](const DiagnosticInfo &DI) { linkerDiagnosticHandler(DI); }))
+ [=](const DiagnosticInfo &DI) { linkerDiagnosticHandler(DI); },
+ (LangOpts.CUDA && LangOpts.CUDAIsDevice &&
+ LangOpts.CUDAUsesLibDevice)
+ ? (Linker::Flags::LinkOnlyNeeded |
+ Linker::Flags::InternalizeLinkedSymbols)
+ : Linker::Flags::None))
return;
}