[NFC] Used SILOption field for copy propagation.

Replaced the quad-state (of state which one was illegal) of two booleans
(EnableCopyPropagation and DisableCopyPropagation) with an enum.
This commit is contained in:
Nate Chandler
2021-12-13 17:30:49 -08:00
parent 868ae0e259
commit 59ae5180ba
5 changed files with 47 additions and 23 deletions

View File

@@ -1557,10 +1557,18 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_combination,
"enable-copy-propagation", "disable-copy-propagation");
return true;
} else if (Args.hasArg(OPT_enable_copy_propagation) &&
!Args.hasArg(OPT_disable_copy_propagation)) {
Opts.CopyPropagation = CopyPropagationOption::On;
} else if (!Args.hasArg(OPT_enable_copy_propagation) &&
Args.hasArg(OPT_disable_copy_propagation)) {
Opts.CopyPropagation = CopyPropagationOption::Off;
} else /*if (!Args.hasArg(OPT_enable_copy_propagation) &&
!Args.hasArg(OPT_disable_copy_propagation))*/
{
Opts.CopyPropagation = CopyPropagationOption::RequestedPassesOnly;
}
Opts.EnableCopyPropagation |= Args.hasArg(OPT_enable_copy_propagation);
Opts.DisableCopyPropagation |= Args.hasArg(OPT_disable_copy_propagation);
Opts.EnableARCOptimizations &= !Args.hasArg(OPT_disable_arc_opts);
Opts.EnableOSSAModules |= Args.hasArg(OPT_enable_ossa_modules);
Opts.EnableOSSAOptimizations &= !Args.hasArg(OPT_disable_ossa_opts);