]> granicus.if.org Git - clang/commitdiff
[modules] Attach dependency listeners to the module manager once when it's
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 9 Aug 2015 02:28:42 +0000 (02:28 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 9 Aug 2015 02:28:42 +0000 (02:28 +0000)
created, rather than creating and attaching a new listener each time we load a
module file (yes, the old ones were kept around too!). No functionality change
intended, but a bit more sanity.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244411 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/CompilerInstance.cpp

index 9da69d476644d1cfefb9b77bd1c7c3c9b1a12ae4..4e7b08ac79b33ad7dbeb8c8804df4d535108e017 100644 (file)
@@ -1261,6 +1261,13 @@ void CompilerInstance::createModuleManager() {
       ModuleManager->InitializeSema(getSema());
     if (hasASTConsumer())
       ModuleManager->StartTranslationUnit(&getASTConsumer());
+
+    if (TheDependencyFileGenerator)
+      TheDependencyFileGenerator->AttachToASTReader(*ModuleManager);
+    if (ModuleDepCollector)
+      ModuleDepCollector->attachToASTReader(*ModuleManager);
+    for (auto &Listener : DependencyCollectors)
+      Listener->attachToASTReader(*ModuleManager);
   }
 }
 
@@ -1420,15 +1427,6 @@ CompilerInstance::loadModule(SourceLocation ImportLoc,
     if (!ModuleManager)
       createModuleManager();
 
-    if (TheDependencyFileGenerator)
-      TheDependencyFileGenerator->AttachToASTReader(*ModuleManager);
-
-    if (ModuleDepCollector)
-      ModuleDepCollector->attachToASTReader(*ModuleManager);
-
-    for (auto &Listener : DependencyCollectors)
-      Listener->attachToASTReader(*ModuleManager);
-
     llvm::Timer Timer;
     if (FrontendTimerGroup)
       Timer.init("Loading " + ModuleFileName, *FrontendTimerGroup);