@@ -239,8 +239,6 @@ void AddSSAPasses(SILPassManager &PM, OptimizationLevelKind OpLevel) {
239
239
PM.addEarlyCodeMotion ();
240
240
PM.addARCSequenceOpts ();
241
241
242
- PM.addSILLinker ();
243
-
244
242
PM.addSimplifyCFG ();
245
243
// Only hoist releases very late.
246
244
if (OpLevel == OptimizationLevelKind::LowLevel)
@@ -264,7 +262,7 @@ void swift::runSILOptimizationPasses(SILModule &Module) {
264
262
return ;
265
263
}
266
264
267
- SILPassManager PM (&Module, " PreSpecialize " );
265
+ SILPassManager PM (&Module, " EarlyModulePasses " );
268
266
269
267
// Get rid of apparently dead functions as soon as possible so that
270
268
// we do not spend time optimizing them.
@@ -275,15 +273,15 @@ void swift::runSILOptimizationPasses(SILModule &Module) {
275
273
PM.resetAndRemoveTransformations ();
276
274
277
275
// Run an iteration of the high-level SSA passes.
278
- PM.setStageName (" HighLevel" );
276
+ PM.setStageName (" HighLevel+EarlyLoopOpt " );
279
277
AddSSAPasses (PM, OptimizationLevelKind::HighLevel);
278
+ AddHighLevelLoopOptPasses (PM);
280
279
PM.runOneIteration ();
281
280
PM.resetAndRemoveTransformations ();
282
281
283
- PM.setStageName (" EarlyLoopOpt" );
284
- AddHighLevelLoopOptPasses (PM);
285
-
282
+ PM.setStageName (" MidModulePasses+StackPromote" );
286
283
PM.addDeadFunctionElimination ();
284
+ PM.addSILLinker ();
287
285
PM.addDeadObjectElimination ();
288
286
PM.addGlobalPropertyOpt ();
289
287
0 commit comments