Merge pull request #38939 from xymus/emit-module-separately-interface-hash

[Frontend] Generate an interface hash for emit-module-separately jobs
This commit is contained in:
Alexis Laferrière
2021-08-19 09:57:07 -07:00
committed by GitHub
2 changed files with 10 additions and 4 deletions

View File

@@ -1153,10 +1153,10 @@ CompilerInstance::getSourceFileParsingOptions(bool forPrimary) const {
opts |= SourceFile::ParsingFlags::DisableDelayedBodies;
}
auto typeOpts = getASTContext().TypeCheckerOpts;
if (forPrimary || isWholeModuleCompilation()) {
// Disable delayed body parsing for primaries and in WMO, unless
// forcefully skipping function bodies
auto typeOpts = getASTContext().TypeCheckerOpts;
if (typeOpts.SkipFunctionBodies == FunctionBodySkipping::None)
opts |= SourceFile::ParsingFlags::DisableDelayedBodies;
} else {
@@ -1165,9 +1165,10 @@ CompilerInstance::getSourceFileParsingOptions(bool forPrimary) const {
opts |= SourceFile::ParsingFlags::SuppressWarnings;
}
// Enable interface hash computation for primaries, but not in WMO, as it's
// only currently needed for incremental mode.
if (forPrimary) {
// Enable interface hash computation for primaries or emit-module-separately,
// but not in WMO, as it's only currently needed for incremental mode.
if (forPrimary ||
typeOpts.SkipFunctionBodies == FunctionBodySkipping::NonInlinableWithoutTypes) {
opts |= SourceFile::ParsingFlags::EnableInterfaceHash;
}
return opts;