[llvm] r266172 - LTOInternalize: Use a StringSet instead of a sorted vector and a binary search query for each function
Mehdi Amini via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 12 23:32:04 PDT 2016
Author: mehdi_amini
Date: Wed Apr 13 01:32:04 2016
New Revision: 266172
URL: http://llvm.org/viewvc/llvm-project?rev=266172&view=rev
Log:
LTOInternalize: Use a StringSet instead of a sorted vector and a binary search query for each function
From: Mehdi Amini <mehdi.amini at apple.com>
Modified:
llvm/trunk/lib/LTO/LTOInternalize.cpp
Modified: llvm/trunk/lib/LTO/LTOInternalize.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOInternalize.cpp?rev=266172&r1=266171&r2=266172&view=diff
==============================================================================
--- llvm/trunk/lib/LTO/LTOInternalize.cpp (original)
+++ llvm/trunk/lib/LTO/LTOInternalize.cpp Wed Apr 13 01:32:04 2016
@@ -46,7 +46,7 @@ private:
// Temps
llvm::Mangler Mangler;
- std::vector<StringRef> Libcalls;
+ StringSet<> Libcalls;
// Output
SmallPtrSetImpl<const GlobalValue *> &AsmUsed;
@@ -64,7 +64,7 @@ private:
I != E; ++I) {
LibFunc::Func F = static_cast<LibFunc::Func>(I);
if (TLI.has(F))
- Libcalls.push_back(TLI.getName(F));
+ Libcalls.insert(TLI.getName(F));
}
SmallPtrSet<const TargetLowering *, 1> TLSet;
@@ -80,12 +80,8 @@ private:
I != E; ++I)
if (const char *Name =
Lowering->getLibcallName(static_cast<RTLIB::Libcall>(I)))
- Libcalls.push_back(Name);
+ Libcalls.insert(Name);
}
-
- array_pod_sort(Libcalls.begin(), Libcalls.end());
- Libcalls.erase(std::unique(Libcalls.begin(), Libcalls.end()),
- Libcalls.end());
}
void findAsmUses(const GlobalValue &GV) {
@@ -108,8 +104,7 @@ private:
// optimizations like -globalopt, causing problems when later optimizations
// add new library calls (e.g., llvm.memset => memset and printf => puts).
// Leave it to the linker to remove any dead code (e.g. with -dead_strip).
- if (isa<Function>(GV) &&
- std::binary_search(Libcalls.begin(), Libcalls.end(), GV.getName()))
+ if (isa<Function>(GV) && Libcalls.count(GV.getName()))
AsmUsed.insert(&GV);
}
};
More information about the llvm-commits
mailing list