diff options
author | Qiongsi Wu <qiongsiwu@gmail.com> | 2025-05-29 11:11:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-29 11:11:31 -0700 |
commit | 8f4fd864033601aad99a10c2b878769b84df7537 (patch) | |
tree | 3127fb239e7c7682c6e9441e3c3357b6bf720327 /clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp | |
parent | 9ca41b6b65680c9eceb938c0e27d8d054114e680 (diff) | |
download | llvm-8f4fd864033601aad99a10c2b878769b84df7537.zip llvm-8f4fd864033601aad99a10c2b878769b84df7537.tar.gz llvm-8f4fd864033601aad99a10c2b878769b84df7537.tar.bz2 |
Revert "[clang][Dependency Scanning] Report What a Module Exports during Scanning (#137421)" (#140820)
This reverts commit ea1bfbf3f6399b7d2d840722f0e87542d00f6a35.
The commit did not solve the fundamental issue we need to handle and is
no longer necessary.
rdar://144794793
Diffstat (limited to 'clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp')
-rw-r--r-- | clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp | 65 |
1 files changed, 27 insertions, 38 deletions
diff --git a/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp b/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp index 45901cb..eb67424 100644 --- a/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp +++ b/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp @@ -389,10 +389,10 @@ ModuleDepCollector::getInvocationAdjustedForModuleBuildWithoutOutputs( } llvm::DenseSet<const FileEntry *> ModuleDepCollector::collectModuleMapFiles( - ArrayRef<ModuleDeps::DepInfo> ClangModuleDeps) const { + ArrayRef<ModuleID> ClangModuleDeps) const { llvm::DenseSet<const FileEntry *> ModuleMapFiles; - for (const auto &Info : ClangModuleDeps) { - ModuleDeps *MD = ModuleDepsByID.lookup(Info.ID); + for (const ModuleID &MID : ClangModuleDeps) { + ModuleDeps *MD = ModuleDepsByID.lookup(MID); assert(MD && "Inconsistent dependency info"); // TODO: Track ClangModuleMapFile as `FileEntryRef`. auto FE = ScanInstance.getFileManager().getOptionalFileRef( @@ -404,23 +404,21 @@ llvm::DenseSet<const FileEntry *> ModuleDepCollector::collectModuleMapFiles( } void ModuleDepCollector::addModuleMapFiles( - CompilerInvocation &CI, - ArrayRef<ModuleDeps::DepInfo> ClangModuleDeps) const { + CompilerInvocation &CI, ArrayRef<ModuleID> ClangModuleDeps) const { if (Service.shouldEagerLoadModules()) return; // Only pcm is needed for eager load. - for (const auto &Info : ClangModuleDeps) { - ModuleDeps *MD = ModuleDepsByID.lookup(Info.ID); + for (const ModuleID &MID : ClangModuleDeps) { + ModuleDeps *MD = ModuleDepsByID.lookup(MID); assert(MD && "Inconsistent dependency info"); CI.getFrontendOpts().ModuleMapFiles.push_back(MD->ClangModuleMapFile); } } void ModuleDepCollector::addModuleFiles( - CompilerInvocation &CI, - ArrayRef<ModuleDeps::DepInfo> ClangModuleDeps) const { - for (const auto &Info : ClangModuleDeps) { - ModuleDeps *MD = ModuleDepsByID.lookup(Info.ID); + CompilerInvocation &CI, ArrayRef<ModuleID> ClangModuleDeps) const { + for (const ModuleID &MID : ClangModuleDeps) { + ModuleDeps *MD = ModuleDepsByID.lookup(MID); std::string PCMPath = Controller.lookupModuleOutput(*MD, ModuleOutputKind::ModuleFile); @@ -428,15 +426,14 @@ void ModuleDepCollector::addModuleFiles( CI.getFrontendOpts().ModuleFiles.push_back(std::move(PCMPath)); else CI.getHeaderSearchOpts().PrebuiltModuleFiles.insert( - {Info.ID.ModuleName, std::move(PCMPath)}); + {MID.ModuleName, std::move(PCMPath)}); } } void ModuleDepCollector::addModuleFiles( - CowCompilerInvocation &CI, - ArrayRef<ModuleDeps::DepInfo> ClangModuleDeps) const { - for (const auto &Info : ClangModuleDeps) { - ModuleDeps *MD = ModuleDepsByID.lookup(Info.ID); + CowCompilerInvocation &CI, ArrayRef<ModuleID> ClangModuleDeps) const { + for (const ModuleID &MID : ClangModuleDeps) { + ModuleDeps *MD = ModuleDepsByID.lookup(MID); std::string PCMPath = Controller.lookupModuleOutput(*MD, ModuleOutputKind::ModuleFile); @@ -444,7 +441,7 @@ void ModuleDepCollector::addModuleFiles( CI.getMutFrontendOpts().ModuleFiles.push_back(std::move(PCMPath)); else CI.getMutHeaderSearchOpts().PrebuiltModuleFiles.insert( - {Info.ID.ModuleName, std::move(PCMPath)}); + {MID.ModuleName, std::move(PCMPath)}); } } @@ -474,10 +471,10 @@ void ModuleDepCollector::applyDiscoveredDependencies(CompilerInvocation &CI) { CI.getFrontendOpts().ModuleMapFiles.emplace_back( CurrentModuleMap->getNameAsRequested()); - SmallVector<ModuleDeps::DepInfo> DirectDeps; + SmallVector<ModuleID> DirectDeps; for (const auto &KV : ModularDeps) if (DirectModularDeps.contains(KV.first)) - DirectDeps.push_back({KV.second->ID, /* Exported = */ false}); + DirectDeps.push_back(KV.second->ID); // TODO: Report module maps the same way it's done for modular dependencies. addModuleMapFiles(CI, DirectDeps); @@ -600,9 +597,9 @@ static std::string getModuleContextHash(const ModuleDeps &MD, // example, case-insensitive paths to modulemap files. Usually such a case // would indicate a missed optimization to canonicalize, but it may be // difficult to canonicalize all cases when there is a VFS. - for (const auto &Info : MD.ClangModuleDeps) { - HashBuilder.add(Info.ID.ModuleName); - HashBuilder.add(Info.ID.ContextHash); + for (const auto &ID : MD.ClangModuleDeps) { + HashBuilder.add(ID.ModuleName); + HashBuilder.add(ID.ContextHash); } HashBuilder.add(EagerLoadModules); @@ -926,10 +923,9 @@ void ModuleDepCollectorPP::addAllSubmoduleDeps( }); } -void ModuleDepCollectorPP::addOneModuleDep(const Module *M, bool Exported, - const ModuleID ID, ModuleDeps &MD) { - MD.ClangModuleDeps.push_back({ID, Exported}); - +void ModuleDepCollectorPP::addOneModuleDep(const Module *M, const ModuleID ID, + ModuleDeps &MD) { + MD.ClangModuleDeps.push_back(ID); if (MD.IsInStableDirectories) MD.IsInStableDirectories = MDC.ModularDeps[M]->IsInStableDirectories; } @@ -937,19 +933,12 @@ void ModuleDepCollectorPP::addOneModuleDep(const Module *M, bool Exported, void ModuleDepCollectorPP::addModuleDep( const Module *M, ModuleDeps &MD, llvm::DenseSet<const Module *> &AddedModules) { - SmallVector<Module *> ExportedModulesVector; - M->getExportedModules(ExportedModulesVector); - llvm::DenseSet<const Module *> ExportedModulesSet( - ExportedModulesVector.begin(), ExportedModulesVector.end()); for (const Module *Import : M->Imports) { - const Module *ImportedTopLevelModule = Import->getTopLevelModule(); - if (ImportedTopLevelModule != M->getTopLevelModule() && + if (Import->getTopLevelModule() != M->getTopLevelModule() && !MDC.isPrebuiltModule(Import)) { - if (auto ImportID = handleTopLevelModule(ImportedTopLevelModule)) - if (AddedModules.insert(ImportedTopLevelModule).second) { - bool Exported = ExportedModulesSet.contains(ImportedTopLevelModule); - addOneModuleDep(ImportedTopLevelModule, Exported, *ImportID, MD); - } + if (auto ImportID = handleTopLevelModule(Import->getTopLevelModule())) + if (AddedModules.insert(Import->getTopLevelModule()).second) + addOneModuleDep(Import->getTopLevelModule(), *ImportID, MD); } } } @@ -973,7 +962,7 @@ void ModuleDepCollectorPP::addAffectingClangModule( !MDC.isPrebuiltModule(Affecting)) { if (auto ImportID = handleTopLevelModule(Affecting)) if (AddedModules.insert(Affecting).second) - addOneModuleDep(Affecting, /* Exported = */ false, *ImportID, MD); + addOneModuleDep(Affecting, *ImportID, MD); } } } |