Merge pull request #40519 from nate-chandler/lexical_lifetimes/disable-with-copy-propagation

Disable lexical-lifetimes with copy-propagation.
This commit is contained in:
nate-chandler
2021-12-12 20:28:49 -08:00
committed by GitHub
7 changed files with 35 additions and 24 deletions

View File

@@ -1525,23 +1525,27 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
// -enable-copy-propagation implies -enable-lexical-lifetimes unless
// otherwise specified.
if (Args.hasArg(OPT_enable_copy_propagation))
Opts.LexicalLifetimes = LexicalLifetimesOption::ExperimentalLate;
Opts.LexicalLifetimes = LexicalLifetimesOption::On;
// -disable-copy-propagation implies -enable-lexical-lifetimes=false
if (Args.hasArg(OPT_disable_copy_propagation))
Opts.LexicalLifetimes = LexicalLifetimesOption::DiagnosticMarkersOnly;
// If move-only is enabled, always enable lexical lifetime as well. Move-only
// depends on lexical lifetimes.
if (Args.hasArg(OPT_enable_experimental_move_only))
Opts.LexicalLifetimes = LexicalLifetimesOption::ExperimentalLate;
Opts.LexicalLifetimes = LexicalLifetimesOption::On;
if (enableLexicalLifetimesFlag) {
if (*enableLexicalLifetimesFlag) {
Opts.LexicalLifetimes = LexicalLifetimesOption::ExperimentalLate;
Opts.LexicalLifetimes = LexicalLifetimesOption::On;
} else {
Opts.LexicalLifetimes = LexicalLifetimesOption::Early;
Opts.LexicalLifetimes = LexicalLifetimesOption::DiagnosticMarkersOnly;
}
}
if (enableLexicalBorrowScopesFlag) {
if (*enableLexicalBorrowScopesFlag) {
Opts.LexicalLifetimes = LexicalLifetimesOption::Early;
Opts.LexicalLifetimes = LexicalLifetimesOption::DiagnosticMarkersOnly;
} else {
Opts.LexicalLifetimes = LexicalLifetimesOption::Off;
}