Merged PR 39: Linker: add resources to LLVMUsed so they don't get deleted prematurely

Linker: add resources to LLVMUsed so they don't get deleted prematurely
This commit is contained in:
Tex Riddell 2018-03-12 20:09:24 +00:00
Родитель 799331737d
Коммит 4b02d18ca2
1 изменённых файлов: 5 добавлений и 1 удалений

Просмотреть файл

@ -506,7 +506,11 @@ void DxilLinkJob::AddResourceToDM(DxilModule &DM) {
basePtr->SetID(ID);
basePtr->SetGlobalSymbol(GV);
DM.GetLLVMUsed().push_back(GV);
}
// Prevent global vars used for resources from being deleted through optimizations
// while we still have hidden uses (pointers in resource vectors).
DM.EmitLLVMUsed();
}
void DxilLinkJob::LinkNamedMDNodes(Module *pM, ValueToValueMapTy &vmap) {
@ -769,7 +773,7 @@ DxilLinkJob::Link(std::pair<DxilFunctionLinkInfo *, DxilLib *> &entryLinkPair,
// Add resource to DM.
// This should be after functions cloned.
AddResourceToDM(DM);
// Link metadata like debug info.
LinkNamedMDNodes(pM.get(), vmap);