[CAS] Cache symbol graph outputs

The symbol graph output from a module can contain an arbitrary number of
files, depending on what extensions it contains, so cache a list of
symbol graph files with their base name and contents so that they can be
replayed.

rdar://140286819
This commit is contained in:
Ben Langmuir
2024-12-03 13:04:09 -08:00
parent ecf7ac910e
commit e7c37655e4
10 changed files with 127 additions and 10 deletions

View File

@@ -782,6 +782,7 @@ const char *ToolChain::JobContext::computeFrontendModeForCompile() const {
case file_types::TY_SwiftFixIt:
case file_types::TY_ModuleSemanticInfo:
case file_types::TY_CachedDiagnostics:
case file_types::TY_SymbolGraphFile:
llvm_unreachable("Output type can never be primary output.");
case file_types::TY_INVALID:
llvm_unreachable("Invalid type ID");
@@ -1057,6 +1058,7 @@ ToolChain::constructInvocation(const BackendJobAction &job,
case file_types::TY_SwiftFixIt:
case file_types::TY_ModuleSemanticInfo:
case file_types::TY_CachedDiagnostics:
case file_types::TY_SymbolGraphFile:
llvm_unreachable("Output type can never be primary output.");
case file_types::TY_INVALID:
llvm_unreachable("Invalid type ID");