@@ -393,10 +393,10 @@ ModuleDepCollector::getInvocationAdjustedForModuleBuildWithoutOutputs(
393393}
394394
395395llvm::DenseSet<const FileEntry *> ModuleDepCollector::collectModuleMapFiles (
396- ArrayRef<ModuleDeps::DepInfo > ClangModuleDeps) const {
396+ ArrayRef<ModuleID > ClangModuleDeps) const {
397397 llvm::DenseSet<const FileEntry *> ModuleMapFiles;
398- for (const auto &Info : ClangModuleDeps) {
399- ModuleDeps *MD = ModuleDepsByID.lookup (Info. ID );
398+ for (const ModuleID &MID : ClangModuleDeps) {
399+ ModuleDeps *MD = ModuleDepsByID.lookup (MID );
400400 assert (MD && " Inconsistent dependency info" );
401401 // TODO: Track ClangModuleMapFile as `FileEntryRef`.
402402 auto FE = ScanInstance.getFileManager ().getFile (MD->ClangModuleMapFile );
@@ -407,23 +407,21 @@ llvm::DenseSet<const FileEntry *> ModuleDepCollector::collectModuleMapFiles(
407407}
408408
409409void ModuleDepCollector::addModuleMapFiles (
410- CompilerInvocation &CI,
411- ArrayRef<ModuleDeps::DepInfo> ClangModuleDeps) const {
410+ CompilerInvocation &CI, ArrayRef<ModuleID> ClangModuleDeps) const {
412411 if (Service.shouldEagerLoadModules ())
413412 return ; // Only pcm is needed for eager load.
414413
415- for (const auto &Info : ClangModuleDeps) {
416- ModuleDeps *MD = ModuleDepsByID.lookup (Info. ID );
414+ for (const ModuleID &MID : ClangModuleDeps) {
415+ ModuleDeps *MD = ModuleDepsByID.lookup (MID );
417416 assert (MD && " Inconsistent dependency info" );
418417 CI.getFrontendOpts ().ModuleMapFiles .push_back (MD->ClangModuleMapFile );
419418 }
420419}
421420
422421void ModuleDepCollector::addModuleFiles (
423- CompilerInvocation &CI,
424- ArrayRef<ModuleDeps::DepInfo> ClangModuleDeps) const {
425- for (const auto &Info : ClangModuleDeps) {
426- ModuleDeps *MD = ModuleDepsByID.lookup (Info.ID );
422+ CompilerInvocation &CI, ArrayRef<ModuleID> ClangModuleDeps) const {
423+ for (const ModuleID &MID : ClangModuleDeps) {
424+ ModuleDeps *MD = ModuleDepsByID.lookup (MID);
427425 std::string PCMPath =
428426 Controller.lookupModuleOutput (*MD, ModuleOutputKind::ModuleFile);
429427
@@ -436,15 +434,14 @@ void ModuleDepCollector::addModuleFiles(
436434 CI.getFrontendOpts ().ModuleFiles .push_back (std::move (PCMPath));
437435 else
438436 CI.getHeaderSearchOpts ().PrebuiltModuleFiles .insert (
439- {Info. ID .ModuleName , std::move (PCMPath)});
437+ {MID .ModuleName , std::move (PCMPath)});
440438 }
441439}
442440
443441void ModuleDepCollector::addModuleFiles (
444- CowCompilerInvocation &CI,
445- ArrayRef<ModuleDeps::DepInfo> ClangModuleDeps) const {
446- for (const auto &Info : ClangModuleDeps) {
447- ModuleDeps *MD = ModuleDepsByID.lookup (Info.ID );
442+ CowCompilerInvocation &CI, ArrayRef<ModuleID> ClangModuleDeps) const {
443+ for (const ModuleID &MID : ClangModuleDeps) {
444+ ModuleDeps *MD = ModuleDepsByID.lookup (MID);
448445 std::string PCMPath =
449446 Controller.lookupModuleOutput (*MD, ModuleOutputKind::ModuleFile);
450447
@@ -457,7 +454,7 @@ void ModuleDepCollector::addModuleFiles(
457454 CI.getMutFrontendOpts ().ModuleFiles .push_back (std::move (PCMPath));
458455 else
459456 CI.getMutHeaderSearchOpts ().PrebuiltModuleFiles .insert (
460- {Info. ID .ModuleName , std::move (PCMPath)});
457+ {MID .ModuleName , std::move (PCMPath)});
461458 }
462459}
463460
@@ -487,10 +484,10 @@ void ModuleDepCollector::applyDiscoveredDependencies(CompilerInvocation &CI) {
487484 CI.getFrontendOpts ().ModuleMapFiles .emplace_back (
488485 CurrentModuleMap->getNameAsRequested ());
489486
490- SmallVector<ModuleDeps::DepInfo > DirectDeps;
487+ SmallVector<ModuleID > DirectDeps;
491488 for (const auto &KV : ModularDeps)
492489 if (DirectModularDeps.contains (KV.first ))
493- DirectDeps.push_back ({ KV.second ->ID , /* Exported = */ false } );
490+ DirectDeps.push_back (KV.second ->ID );
494491
495492 // TODO: Report module maps the same way it's done for modular dependencies.
496493 addModuleMapFiles (CI, DirectDeps);
@@ -639,9 +636,9 @@ static std::string getModuleContextHash(const ModuleDeps &MD,
639636 // example, case-insensitive paths to modulemap files. Usually such a case
640637 // would indicate a missed optimization to canonicalize, but it may be
641638 // difficult to canonicalize all cases when there is a VFS.
642- for (const auto &Info : MD.ClangModuleDeps ) {
643- HashBuilder.add (Info. ID .ModuleName );
644- HashBuilder.add (Info. ID .ContextHash );
639+ for (const auto &ID : MD.ClangModuleDeps ) {
640+ HashBuilder.add (ID.ModuleName );
641+ HashBuilder.add (ID.ContextHash );
645642 }
646643
647644 HashBuilder.add (EagerLoadModules);
@@ -1021,30 +1018,22 @@ void ModuleDepCollectorPP::addAllSubmoduleDeps(
10211018 });
10221019}
10231020
1024- void ModuleDepCollectorPP::addOneModuleDep (const Module *M, bool Exported,
1025- const ModuleID ID, ModuleDeps &MD) {
1026- MD.ClangModuleDeps .push_back ({ID, Exported});
1027-
1021+ void ModuleDepCollectorPP::addOneModuleDep (const Module *M, const ModuleID ID,
1022+ ModuleDeps &MD) {
1023+ MD.ClangModuleDeps .push_back (ID);
10281024 if (MD.IsInStableDirectories )
10291025 MD.IsInStableDirectories = MDC.ModularDeps [M]->IsInStableDirectories ;
10301026}
10311027
10321028void ModuleDepCollectorPP::addModuleDep (
10331029 const Module *M, ModuleDeps &MD,
10341030 llvm::DenseSet<const Module *> &AddedModules) {
1035- SmallVector<Module *> ExportedModulesVector;
1036- M->getExportedModules (ExportedModulesVector);
1037- llvm::DenseSet<const Module *> ExportedModulesSet (
1038- ExportedModulesVector.begin (), ExportedModulesVector.end ());
10391031 for (const Module *Import : M->Imports ) {
1040- const Module *ImportedTopLevelModule = Import->getTopLevelModule ();
1041- if (ImportedTopLevelModule != M->getTopLevelModule () &&
1032+ if (Import->getTopLevelModule () != M->getTopLevelModule () &&
10421033 !MDC.isPrebuiltModule (Import)) {
1043- if (auto ImportID = handleTopLevelModule (ImportedTopLevelModule))
1044- if (AddedModules.insert (ImportedTopLevelModule).second ) {
1045- bool Exported = ExportedModulesSet.contains (ImportedTopLevelModule);
1046- addOneModuleDep (ImportedTopLevelModule, Exported, *ImportID, MD);
1047- }
1034+ if (auto ImportID = handleTopLevelModule (Import->getTopLevelModule ()))
1035+ if (AddedModules.insert (Import->getTopLevelModule ()).second )
1036+ addOneModuleDep (Import->getTopLevelModule (), *ImportID, MD);
10481037 }
10491038 }
10501039}
@@ -1068,7 +1057,7 @@ void ModuleDepCollectorPP::addAffectingClangModule(
10681057 !MDC.isPrebuiltModule (Affecting)) {
10691058 if (auto ImportID = handleTopLevelModule (Affecting))
10701059 if (AddedModules.insert (Affecting).second )
1071- addOneModuleDep (Affecting, /* Exported = */ false , *ImportID, MD);
1060+ addOneModuleDep (Affecting, *ImportID, MD);
10721061 }
10731062 }
10741063}
0 commit comments