Fix unnecessary one-time recompile of stdlib with -enable-ossa-flag (#39516)

* Fix unnecessary one-time recompile of stdlib with -enable-ossa-flag

This includes a bit in the module format to represent if the module was
compiled with -enable-ossa-modules flag. When compiling a client module
with -enable-ossa-modules flag, all dependent modules are checked for this bit,
if not on, recompilation is triggered with -enable-ossa-modules.

* Updated tests
This commit is contained in:
Meghana Gupta
2021-10-04 18:46:40 -07:00
committed by GitHub
parent b3416247f5
commit f458d9b490
36 changed files with 213 additions and 173 deletions

View File

@@ -103,9 +103,8 @@ protected:
ClangImporterOptions clangImpOpts;
symbolgraphgen::SymbolGraphOptions symbolGraphOpts;
SILOptions silOpts;
auto ctx =
ASTContext::get(langOpts, typeckOpts, searchPathOpts, clangImpOpts,
symbolGraphOpts, sourceMgr, diags);
auto ctx = ASTContext::get(langOpts, typeckOpts, silOpts, searchPathOpts,
clangImpOpts, symbolGraphOpts, sourceMgr, diags);
ctx->addModuleInterfaceChecker(
std::make_unique<ModuleInterfaceCheckerImpl>(*ctx, cacheDir,
@@ -149,7 +148,8 @@ protected:
ASSERT_TRUE(bufOrErr);
auto bufData = (*bufOrErr)->getBuffer();
auto validationInfo = serialization::validateSerializedAST(bufData);
auto validationInfo = serialization::validateSerializedAST(
bufData, silOpts.EnableOSSAModules);
ASSERT_EQ(serialization::Status::Valid, validationInfo.status);
ASSERT_EQ(bufData, moduleBuffer->getBuffer());
}