diff --git a/lib/Basic/Module.cpp b/lib/Basic/Module.cpp
index ccf7077..4818e8d 100644
--- a/lib/Basic/Module.cpp
+++ b/lib/Basic/Module.cpp
@@ -253,22 +253,13 @@
   VisibleModulesCache.insert(this);
 
   // Every imported module is visible.
-  // Every module exported by an imported module is visible.
-  llvm::SmallPtrSet<Module *, 4> Visited;
-  llvm::SmallVector<Module *, 4> Exports;
-  SmallVector<Module *, 4> Stack(Imports.begin(), Imports.end());
+  SmallVector<Module *, 16> Stack(Imports.begin(), Imports.end());
   while (!Stack.empty()) {
     Module *CurrModule = Stack.pop_back_val();
-    VisibleModulesCache.insert(CurrModule);
 
-    CurrModule->getExportedModules(Exports);
-    for (SmallVectorImpl<Module *>::iterator I = Exports.begin(),
-                                             E = Exports.end();
-         I != E; ++I) {
-      Module *Exported = *I;
-      if (Visited.insert(Exported))
-        Stack.push_back(Exported);
-    }
+    // Every module transitively exported by an imported module is visible.
+    if (VisibleModulesCache.insert(CurrModule).second)
+      CurrModule->getExportedModules(Stack);
   }
 }
 
