CallTargets: Sort and unique callee lists by function name.
llvm-svn: 238377
diff --git a/poolalloc/lib/DSA/CallTargets.cpp b/poolalloc/lib/DSA/CallTargets.cpp
index bd6cfe0..32da727 100644
--- a/poolalloc/lib/DSA/CallTargets.cpp
+++ b/poolalloc/lib/DSA/CallTargets.cpp
@@ -162,6 +162,17 @@
template<class dsa>
bool CallTargetFinder<dsa>::runOnModule(Module &M) {
findIndTargets(M);
+
+ // Sort callees alphabetically, remove duplicates
+ for(auto &i: IndMap) {
+ auto &callees = i.second;
+ std::sort(callees.begin(), callees.end(),
+ [](const Function *a, const Function *b) {
+ return a->getName() < b->getName();
+ });
+ std::unique(callees.begin(), callees.end());
+ }
+
return false;
}