Reduce the number of functions we look at in the first pass, and preallocate
the function equality set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124475 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/IPO/MergeFunctions.cpp b/lib/Transforms/IPO/MergeFunctions.cpp
index d4ecd55..30afaab 100644
--- a/lib/Transforms/IPO/MergeFunctions.cpp
+++ b/lib/Transforms/IPO/MergeFunctions.cpp
@@ -798,8 +798,10 @@
   TD = getAnalysisIfAvailable<TargetData>();
 
   for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
-    Deferred.push_back(WeakVH(I));
+    if (!I->isDeclaration() && !I->hasAvailableExternallyLinkage())
+      Deferred.push_back(WeakVH(I));
   }
+  FnSet.resize(Deferred.size());
 
   do {
     std::vector<WeakVH> Worklist;