From 6b193966accaf54bde56ad055fe3d185e5036534 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Thu, 30 Mar 2017 23:43:08 +0000 Subject: [PATCH] ThinLTOBitcodeWriter: Use Module::global_values(). NFCI. llvm-svn: 299132 --- llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp | 32 ++++++------------------ 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp b/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp index 978b6cf..4bc7004 100644 --- a/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp +++ b/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp @@ -46,23 +46,14 @@ namespace { std::string getModuleId(Module *M) { MD5 Md5; bool ExportsSymbols = false; - auto AddGlobal = [&](GlobalValue &GV) { + for (auto &GV : M->global_values()) { if (GV.isDeclaration() || GV.getName().startswith("llvm.") || !GV.hasExternalLinkage()) - return; + continue; ExportsSymbols = true; Md5.update(GV.getName()); Md5.update(ArrayRef{0}); - }; - - for (auto &F : *M) - AddGlobal(F); - for (auto &GV : M->globals()) - AddGlobal(GV); - for (auto &GA : M->aliases()) - AddGlobal(GA); - for (auto &IF : M->ifuncs()) - AddGlobal(IF); + } if (!ExportsSymbols) return ""; @@ -78,13 +69,13 @@ std::string getModuleId(Module *M) { // Promote each local-linkage entity defined by ExportM and used by ImportM by // changing visibility and appending the given ModuleId. void promoteInternals(Module &ExportM, Module &ImportM, StringRef ModuleId) { - auto PromoteInternal = [&](GlobalValue &ExportGV) { + for (auto &ExportGV : ExportM.global_values()) { if (!ExportGV.hasLocalLinkage()) - return; + continue; GlobalValue *ImportGV = ImportM.getNamedValue(ExportGV.getName()); if (!ImportGV || ImportGV->use_empty()) - return; + continue; std::string NewName = (ExportGV.getName() + ModuleId).str(); @@ -94,16 +85,7 @@ void promoteInternals(Module &ExportM, Module &ImportM, StringRef ModuleId) { ImportGV->setName(NewName); ImportGV->setVisibility(GlobalValue::HiddenVisibility); - }; - - for (auto &F : ExportM) - PromoteInternal(F); - for (auto &GV : ExportM.globals()) - PromoteInternal(GV); - for (auto &GA : ExportM.aliases()) - PromoteInternal(GA); - for (auto &IF : ExportM.ifuncs()) - PromoteInternal(IF); + } } // Promote all internal (i.e. distinct) type ids used by the module by replacing -- 2.7.4