From 4b02d18ca2e6664c527cbb1abffa9dedae3ce9a3 Mon Sep 17 00:00:00 2001 From: Tex Riddell Date: Mon, 12 Mar 2018 20:09:24 +0000 Subject: [PATCH] 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 --- lib/HLSL/DxilLinker.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/HLSL/DxilLinker.cpp b/lib/HLSL/DxilLinker.cpp index 1be26adaf..6c4f1459f 100644 --- a/lib/HLSL/DxilLinker.cpp +++ b/lib/HLSL/DxilLinker.cpp @@ -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 &entryLinkPair, // Add resource to DM. // This should be after functions cloned. AddResourceToDM(DM); - + // Link metadata like debug info. LinkNamedMDNodes(pM.get(), vmap);