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;
 }