Merge pull request #31146 from kateinoigakukun/katei/enable-lang-agnostic-lto

[LTO] Support LLVM level link time optimization on Darwin, Linux and Windows
This commit is contained in:
Saleem Abdulrasool
2020-06-05 11:38:09 -07:00
committed by GitHub
23 changed files with 255 additions and 35 deletions

View File

@@ -1426,6 +1426,17 @@ static bool ParseIRGenArgs(IRGenOptions &Opts, ArgList &Args,
}
}
if (const Arg *A = Args.getLastArg(options::OPT_lto)) {
auto LLVMLTOKind = llvm::StringSwitch<Optional<IRGenLLVMLTOKind>>(A->getValue())
.Case("llvm", IRGenLLVMLTOKind::Thin)
.Case("llvm-full", IRGenLLVMLTOKind::Full)
.Default(llvm::None);
if (LLVMLTOKind)
Opts.LLVMLTOKind = LLVMLTOKind.getValue();
else
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
A->getAsString(Args), A->getValue());
}
if (const Arg *A = Args.getLastArg(options::OPT_sanitize_coverage_EQ)) {
Opts.SanitizeCoverage =