Remove unreachable blocks after inlining

This commit is contained in:
Meghana Gupta
2024-12-10 14:27:43 -08:00
parent fe00d20db2
commit 984f9f6cd2
5 changed files with 43 additions and 25 deletions

View File

@@ -19,6 +19,7 @@
#include "swift/SILOptimizer/Analysis/BasicCalleeAnalysis.h"
#include "swift/SILOptimizer/PassManager/Passes.h"
#include "swift/SILOptimizer/PassManager/Transforms.h"
#include "swift/SILOptimizer/Utils/BasicBlockOptUtils.h"
#include "swift/SILOptimizer/Utils/CFGOptUtils.h"
#include "swift/SILOptimizer/Utils/Devirtualize.h"
#include "swift/SILOptimizer/Utils/Generics.h"
@@ -1372,6 +1373,7 @@ public:
// can further optimize this function before attempting to inline
// in it again.
if (Inliner.inlineCallsIntoFunction(getFunction())) {
removeUnreachableBlocks(*getFunction());
invalidateAnalysis(SILAnalysis::InvalidationKind::FunctionBody);
restartPassPipeline();
}