[Dependency Scanning][Serialization] Do not serialize auxiliary files

The field is only used to store information to be used in finalize stage, in caching builds. When loading scan results from the cache, the entries are finalized already and have the file info encoded in CASIDs already.

Resolves rdar://150307865
This commit is contained in:
Artem Chikin
2025-05-01 10:26:14 -07:00
parent 025c086077
commit 28289e9d94
3 changed files with 6 additions and 30 deletions

View File

@@ -229,17 +229,12 @@ bool ModuleDependenciesCacheDeserializer::readGraph(
std::vector<ScannerImportStatementInfo> importStatements;
std::vector<ScannerImportStatementInfo> optionalImportStatements;
std::vector<std::string> auxiliaryFiles;
auto addCommonDependencyInfo =
[&importedClangDependenciesIDs, &auxiliaryFiles,
&macroDependencies](ModuleDependencyInfo &moduleDep) {
[&importedClangDependenciesIDs, &macroDependencies]
(ModuleDependencyInfo &moduleDep) {
// Add qualified dependencies of this module
moduleDep.setImportedClangDependencies(importedClangDependenciesIDs);
// Add any auxiliary files
moduleDep.setAuxiliaryFiles(auxiliaryFiles);
// Add macro dependencies
for (const auto &md : macroDependencies)
moduleDep.addMacroDependency(md.first, md.second.LibraryPath,
@@ -441,8 +436,7 @@ bool ModuleDependenciesCacheDeserializer::readGraph(
importedSwiftDependenciesIDsArrayID,
importedClangDependenciesIDsArrayID,
crossImportOverlayDependenciesIDsArrayID,
swiftOverlayDependenciesIDsArrayID, moduleCacheKeyID,
AuxiliaryFilesArrayID;
swiftOverlayDependenciesIDsArrayID, moduleCacheKeyID;
ModuleInfoLayout::readRecord(Scratch, moduleNameID, moduleImportsArrayID,
optionalImportsArrayID, linkLibraryArrayID,
@@ -451,7 +445,7 @@ bool ModuleDependenciesCacheDeserializer::readGraph(
importedClangDependenciesIDsArrayID,
crossImportOverlayDependenciesIDsArrayID,
swiftOverlayDependenciesIDsArrayID,
moduleCacheKeyID, AuxiliaryFilesArrayID);
moduleCacheKeyID);
auto moduleName = getIdentifier(moduleNameID);
if (!moduleName)
llvm::report_fatal_error("Bad module name");
@@ -468,11 +462,6 @@ bool ModuleDependenciesCacheDeserializer::readGraph(
if (optionalOptionalImportStatementInfos)
optionalImportStatements = *optionalOptionalImportStatementInfos;
auto optionalAuxiliaryFiles = getStringArray(AuxiliaryFilesArrayID);
if (optionalAuxiliaryFiles)
for (const auto &af : *optionalAuxiliaryFiles)
auxiliaryFiles.push_back(af);
auto optionalImportedSwiftDependenciesIDs =
getModuleDependencyIDArray(importedSwiftDependenciesIDsArrayID);
if (!optionalImportedSwiftDependenciesIDs)
@@ -1042,7 +1031,6 @@ enum ModuleIdentifierArrayKind : uint8_t {
ImportedClangDependenciesIDs,
CrossImportOverlayDependenciesIDs,
SwiftOverlayDependenciesIDs,
AuxiliaryFileIDs,
CompiledModuleCandidates,
BuildCommandLine,
SourceFiles,
@@ -1490,9 +1478,7 @@ void ModuleDependenciesCacheSerializer::writeModuleInfo(
ModuleIdentifierArrayKind::CrossImportOverlayDependenciesIDs),
getIdentifierArrayID(
moduleID, ModuleIdentifierArrayKind::SwiftOverlayDependenciesIDs),
getIdentifier(dependencyInfo.getModuleCacheKey()),
getIdentifierArrayID(moduleID,
ModuleIdentifierArrayKind::AuxiliaryFileIDs));
getIdentifier(dependencyInfo.getModuleCacheKey()));
switch (dependencyInfo.getKind()) {
case swift::ModuleDependencyKind::SwiftInterface: {
@@ -1779,9 +1765,6 @@ void ModuleDependenciesCacheSerializer::collectStringsAndArrays(
moduleID, ModuleIdentifierArrayKind::SwiftOverlayDependenciesIDs,
dependencyInfo->getSwiftOverlayDependencies());
addStringArray(moduleID, ModuleIdentifierArrayKind::AuxiliaryFileIDs,
dependencyInfo->getAuxiliaryFiles());
std::vector<std::string> clangHeaderDependencyNames;
for (const auto &headerDepID :
dependencyInfo->getHeaderClangDependencies())