Merge remote-tracking branch 'origin/main' into rebranch

This commit is contained in:
swift-ci
2025-09-19 22:17:53 -07:00
11 changed files with 184 additions and 74 deletions

View File

@@ -49,10 +49,14 @@ enum class CopyPropagationOption : uint8_t {
// just -enable-ossa-modules.
RequestedPassesOnly,
// Add all relevant copy propagation passes. If a setting, e.g.
// -enable-ossa-modules, requests to add copy propagation to the pipeline, do
// so.
On
// Run copy propagation during optimized builds only.
//
// If a setting, e.g. -enable-ossa-modules, requests to add copy propagation
// to the performance pipeline, do so.
Optimizing,
// Run copy propagation during all builds and whenever requested.
Always
};
enum class DestroyHoistingOption : uint8_t {
@@ -90,11 +94,8 @@ public:
/// observable end of lexical scope.
LexicalLifetimesOption LexicalLifetimes = LexicalLifetimesOption::On;
/// Whether to run SIL copy propagation to shorten object lifetime in whatever
/// optimization pipeline is currently used.
///
/// When this is 'On' the pipeline has default behavior.
CopyPropagationOption CopyPropagation = CopyPropagationOption::On;
/// Controls when to run SIL copy propagation, which shortens object lifetimes
CopyPropagationOption CopyPropagation = CopyPropagationOption::Optimizing;
/// Whether to run the DestroyAddrHoisting pass.
///

View File

@@ -282,12 +282,12 @@ def no_parallel_scan : Flag<["-"], "no-parallel-scan">,
HelpText<"Perform dependency scanning in a single-threaded fashion.">;
def enable_copy_propagation : Flag<["-"], "enable-copy-propagation">,
HelpText<"Run SIL copy propagation with lexical lifetimes to shorten object "
HelpText<"Always run SIL copy propagation with lexical lifetimes to shorten object "
"lifetimes while preserving variable lifetimes.">;
def copy_propagation_state_EQ :
Joined<["-"], "enable-copy-propagation=">,
HelpText<"Whether to enable copy propagation">,
MetaVarName<"true|requested-passes-only|false">;
MetaVarName<"always|optimizing|requested-passes-only|false">;
def disable_infer_public_concurrent_value : Flag<["-"], "disable-infer-public-sendable">,
HelpText<"Disable inference of Sendable conformances for public structs and enums">;