diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2017-02-02 23:20:36 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2017-02-02 23:20:36 +0000 |
commit | 21c89dc92096c176ce9c2930dedb817991a94331 (patch) | |
tree | 44d38ab25d656973aa8113da04a76bfab0e0e077 /llvm/lib/LTO/LTO.cpp | |
parent | e4062dfd47d1817da8d4ea667df15c8bb5ab7b0e (diff) | |
download | bcm5719-llvm-21c89dc92096c176ce9c2930dedb817991a94331.tar.gz bcm5719-llvm-21c89dc92096c176ce9c2930dedb817991a94331.zip |
Revert "[ThinLTO] Add an auto-hide feature"
This reverts commit r293918, one lld test does not pass.
llvm-svn: 293961
Diffstat (limited to 'llvm/lib/LTO/LTO.cpp')
-rw-r--r-- | llvm/lib/LTO/LTO.cpp | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp index db0253161b8..bf30fec5d20 100644 --- a/llvm/lib/LTO/LTO.cpp +++ b/llvm/lib/LTO/LTO.cpp @@ -203,14 +203,11 @@ void llvm::thinLTOResolveWeakForLinkerInIndex( static void thinLTOInternalizeAndPromoteGUID( GlobalValueSummaryList &GVSummaryList, GlobalValue::GUID GUID, - function_ref<SummaryResolution(StringRef, GlobalValue::GUID)> isExported) { + function_ref<bool(StringRef, GlobalValue::GUID)> isExported) { for (auto &S : GVSummaryList) { - auto ExportResolution = isExported(S->modulePath(), GUID); - if (ExportResolution != Internal) { + if (isExported(S->modulePath(), GUID)) { if (GlobalValue::isLocalLinkage(S->linkage())) S->setLinkage(GlobalValue::ExternalLinkage); - if (ExportResolution == Hidden) - S->setAutoHide(); } else if (!GlobalValue::isLocalLinkage(S->linkage())) S->setLinkage(GlobalValue::InternalLinkage); } @@ -220,7 +217,7 @@ static void thinLTOInternalizeAndPromoteGUID( // as external and non-exported values as internal. void llvm::thinLTOInternalizeAndPromoteInIndex( ModuleSummaryIndex &Index, - function_ref<SummaryResolution(StringRef, GlobalValue::GUID)> isExported) { + function_ref<bool(StringRef, GlobalValue::GUID)> isExported) { for (auto &I : Index) thinLTOInternalizeAndPromoteGUID(I.second, I.first, isExported); } @@ -954,20 +951,11 @@ Error LTO::runThinLTO(AddStreamFn AddStream, NativeObjectCache Cache, const GlobalValueSummary *S) { return ThinLTO.PrevailingModuleForGUID[GUID] == S->modulePath(); }; - auto isExported = [&](StringRef ModuleIdentifier, - GlobalValue::GUID GUID) -> SummaryResolution { + auto isExported = [&](StringRef ModuleIdentifier, GlobalValue::GUID GUID) { const auto &ExportList = ExportLists.find(ModuleIdentifier); - if ((ExportList != ExportLists.end() && ExportList->second.count(GUID)) || - ExportedGUIDs.count(GUID)) { - // We could do better by hiding when a symbol is in - // GUIDPreservedSymbols because it is only referenced from regular LTO - // or from native files and not outside the final binary, but that's - // something the native linker could do as gwell. - if (GUIDPreservedSymbols.count(GUID)) - return Exported; - return Hidden; - } - return Internal; + return (ExportList != ExportLists.end() && + ExportList->second.count(GUID)) || + ExportedGUIDs.count(GUID); }; thinLTOInternalizeAndPromoteInIndex(ThinLTO.CombinedIndex, isExported); |