Propagate "-O" to Clang (as "-Os").

It affects Clang IRGen, among other things.
This commit is contained in:
John McCall
2017-07-26 00:32:08 -04:00
parent 8844338e6f
commit c893e955aa
5 changed files with 34 additions and 2 deletions

View File

@@ -1352,7 +1352,8 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
IRGenOptions &IRGenOpts,
FrontendOptions &FEOpts,
DiagnosticEngine &Diags,
const llvm::Triple &Triple) {
const llvm::Triple &Triple,
ClangImporterOptions &ClangOpts) {
using namespace options;
if (const Arg *A = Args.getLastArg(OPT_sil_inline_threshold)) {
@@ -1408,6 +1409,10 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
IRGenOpts.Optimize = true;
Opts.Optimization = SILOptions::SILOptMode::Optimize;
}
if (IRGenOpts.Optimize) {
ClangOpts.Optimization = "-Os";
}
}
if (Args.getLastArg(OPT_AssumeSingleThreaded)) {
@@ -1799,7 +1804,7 @@ bool CompilerInvocation::parseArgs(ArrayRef<const char *> Args,
}
if (ParseSILArgs(SILOpts, ParsedArgs, IRGenOpts, FrontendOpts, Diags,
LangOpts.Target)) {
LangOpts.Target, ClangImporterOpts)) {
return true;
}