From d6bdde0dc318bc4fc0dce98b66162b5cc05c19ab Mon Sep 17 00:00:00 2001 From: zoecarver Date: Sun, 19 Apr 2020 13:11:27 -0700 Subject: [PATCH] [opt] Add dead object elimination pass after dead store elimination. After low-level SSA passes, often the only use of an object will be dead stores. At some point after dead store elimination, dead object elimination is useful. The dead code elimination pass is fast and removes some remaining uses of the object after DSE (such as dead access instructions). --- lib/SILOptimizer/PassManager/PassPipeline.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/SILOptimizer/PassManager/PassPipeline.cpp b/lib/SILOptimizer/PassManager/PassPipeline.cpp index f2d717f4f4f72..2e1f4e29839c2 100644 --- a/lib/SILOptimizer/PassManager/PassPipeline.cpp +++ b/lib/SILOptimizer/PassManager/PassPipeline.cpp @@ -528,6 +528,8 @@ static void addLowLevelPassPipeline(SILPassPipelinePlan &P) { P.addDeadObjectElimination(); P.addObjectOutliner(); P.addDeadStoreElimination(); + P.addDCE(); + P.addDeadObjectElimination(); // We've done a lot of optimizations on this function, attempt to FSO. P.addFunctionSignatureOpts();