Skip to content

Commit 08a3d3c

Browse files
committed
Disable lexical-lifetimes with copy-propagation.
If -disable-copy-propagation is passed, just emit lexical diagnostic markers but do not enable lexical lifetimes.
1 parent 1464c1b commit 08a3d3c

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

lib/Frontend/CompilerInvocation.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1519,6 +1519,10 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
15191519
if (Args.hasArg(OPT_enable_copy_propagation))
15201520
Opts.LexicalLifetimes = LexicalLifetimesOption::On;
15211521

1522+
// -disable-copy-propagation implies -enable-lexical-lifetimes=false
1523+
if (Args.hasArg(OPT_disable_copy_propagation))
1524+
Opts.LexicalLifetimes = LexicalLifetimesOption::DiagnosticMarkersOnly;
1525+
15221526
// If move-only is enabled, always enable lexical lifetime as well. Move-only
15231527
// depends on lexical lifetimes.
15241528
if (Args.hasArg(OPT_enable_experimental_move_only))

tools/sil-opt/SILOpt.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,8 @@ int main(int argc, char **argv) {
529529

530530
if (EnableCopyPropagation)
531531
SILOpts.LexicalLifetimes = LexicalLifetimesOption::On;
532+
if (DisableCopyPropagation)
533+
SILOpts.LexicalLifetimes = LexicalLifetimesOption::DiagnosticMarkersOnly;
532534

533535
// Enable lexical lifetimes if it is set or if experimental move only is
534536
// enabled. This is because move only depends on lexical lifetimes being

0 commit comments

Comments
 (0)