Merge remote-tracking branch 'origin/master' into master-next

This commit is contained in:
swift_jenkins
2020-02-25 16:00:16 -08:00
10 changed files with 56 additions and 17 deletions

View File

@@ -354,11 +354,13 @@ class ModuleInterfaceLoaderImpl {
DependencyTracker *const dependencyTracker;
const ModuleLoadingMode loadMode;
const bool remarkOnRebuildFromInterface;
const bool disableInterfaceLock;
ModuleInterfaceLoaderImpl(
ASTContext &ctx, StringRef modulePath, StringRef interfacePath,
StringRef moduleName, StringRef cacheDir, StringRef prebuiltCacheDir,
SourceLoc diagLoc, bool remarkOnRebuildFromInterface,
bool disableInterfaceLock,
DependencyTracker *dependencyTracker = nullptr,
ModuleLoadingMode loadMode = ModuleLoadingMode::PreferSerialized)
: ctx(ctx), fs(*ctx.SourceMgr.getFileSystem()), diags(ctx.Diags),
@@ -366,7 +368,8 @@ class ModuleInterfaceLoaderImpl {
moduleName(moduleName), prebuiltCacheDir(prebuiltCacheDir),
cacheDir(cacheDir), diagnosticLoc(diagLoc),
dependencyTracker(dependencyTracker), loadMode(loadMode),
remarkOnRebuildFromInterface(remarkOnRebuildFromInterface) {}
remarkOnRebuildFromInterface(remarkOnRebuildFromInterface),
disableInterfaceLock(disableInterfaceLock) {}
/// Construct a cache key for the .swiftmodule being generated. There is a
/// balance to be struck here between things that go in the cache key and
@@ -902,7 +905,8 @@ class ModuleInterfaceLoaderImpl {
ctx.SourceMgr, ctx.Diags, ctx.SearchPathOpts, ctx.LangOpts,
ctx.getClangModuleLoader(), interfacePath, moduleName, cacheDir,
prebuiltCacheDir, /*serializeDependencyHashes*/false,
trackSystemDependencies, remarkOnRebuildFromInterface, diagnosticLoc,
trackSystemDependencies, remarkOnRebuildFromInterface,
disableInterfaceLock, diagnosticLoc,
dependencyTracker);
auto &subInvocation = builder.getSubInvocation();
@@ -1024,7 +1028,8 @@ std::error_code ModuleInterfaceLoader::findModuleFilesInDirectory(
ModuleInterfaceLoaderImpl Impl(
Ctx, ModPath, InPath, ModuleName,
CacheDir, PrebuiltCacheDir, ModuleID.Loc,
RemarkOnRebuildFromInterface, dependencyTracker,
RemarkOnRebuildFromInterface, DisableInterfaceFileLock,
dependencyTracker,
llvm::is_contained(PreferInterfaceForModules,
ModuleName) ?
ModuleLoadingMode::PreferInterface : LoadMode);
@@ -1062,13 +1067,14 @@ bool ModuleInterfaceLoader::buildSwiftModuleFromSwiftInterface(
StringRef CacheDir, StringRef PrebuiltCacheDir,
StringRef ModuleName, StringRef InPath, StringRef OutPath,
bool SerializeDependencyHashes, bool TrackSystemDependencies,
bool RemarkOnRebuildFromInterface) {
bool RemarkOnRebuildFromInterface, bool DisableInterfaceFileLock) {
ModuleInterfaceBuilder builder(SourceMgr, Diags, SearchPathOpts, LangOpts,
/*clangImporter*/nullptr, InPath,
ModuleName, CacheDir, PrebuiltCacheDir,
SerializeDependencyHashes,
TrackSystemDependencies,
RemarkOnRebuildFromInterface);
RemarkOnRebuildFromInterface,
DisableInterfaceFileLock);
// FIXME: We really only want to serialize 'important' dependencies here, if
// we want to ship the built swiftmodules to another machine.
return builder.buildSwiftModule(OutPath, /*shouldSerializeDeps*/true,