Optimizer: extract the NamedReturnValueOptimization from CopyForwarding to a separate function pass

This allows to run the NamedReturnValueOptimization only late in the pipeline.
The optimization shouldn't be done before serialization, because it might prevent predictable memory optimizations in the caller after inlining.
This commit is contained in:
Erik Eckstein
2023-04-06 11:14:12 +02:00
parent 08e75f2c50
commit 92a17f8a01
8 changed files with 285 additions and 177 deletions

View File

@@ -400,6 +400,8 @@ SWIFT_FUNCTION_PASS(LateOnoneSimplification, "late-onone-simplification",
"Peephole simplifications which can only run late in the -Onone pipeline")
SWIFT_FUNCTION_PASS(CleanupDebugSteps, "cleanup-debug-steps",
"Cleanup debug_step instructions for Onone")
SWIFT_FUNCTION_PASS(NamedReturnValueOptimization, "named-return-value-optimization",
"Optimize copies to an indirect return value")
PASS(SimplifyBBArgs, "simplify-bb-args",
"SIL Block Argument Simplification")
PASS(SimplifyCFG, "simplify-cfg",