Skip to content

Commit 4fce38c

Browse files
committed
Restore default performance recipe
1 parent 0ecbcc9 commit 4fce38c

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

source/opt/optimizer.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -189,36 +189,36 @@ Optimizer& Optimizer::RegisterLegalizationPasses(bool preserve_interface) {
189189
}
190190

191191
Optimizer& Optimizer::RegisterPerformancePasses(bool preserve_interface) {
192-
auto& optimizer = RegisterPass(CreateWrapOpKillPass())
192+
return RegisterPass(CreateWrapOpKillPass())
193193
.RegisterPass(CreateDeadBranchElimPass())
194194
.RegisterPass(CreateMergeReturnPass())
195195
.RegisterPass(CreateInlineExhaustivePass())
196196
.RegisterPass(CreateEliminateDeadFunctionsPass())
197+
.RegisterPass(CreateAggressiveDCEPass(preserve_interface))
197198
.RegisterPass(CreatePrivateToLocalPass())
198199
.RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())
199200
.RegisterPass(CreateLocalSingleStoreElimPass())
200201
.RegisterPass(CreateAggressiveDCEPass(preserve_interface))
201202
.RegisterPass(CreateScalarReplacementPass(0))
202-
.RegisterPass(CreateLocalAccessChainConvertPass());
203-
optimizer.RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())
203+
.RegisterPass(CreateLocalAccessChainConvertPass())
204+
.RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())
204205
.RegisterPass(CreateLocalSingleStoreElimPass())
205-
.RegisterPass(CreateAggressiveDCEPass(preserve_interface));
206-
optimizer.RegisterPass(CreateCCPPass())
207-
.RegisterPass(CreateAggressiveDCEPass(preserve_interface));
208-
// Preserve LoopControl::Unroll in the IR instead of always materializing
209-
// it here. The optimizer-side full unroll is very costly on large modules
210-
// with many tiny [unroll]-annotated loops, while the hint remains available
211-
// to downstream consumers in the final SPIR-V.
212-
optimizer.RegisterPass(CreateDeadBranchElimPass());
213-
optimizer.RegisterPass(CreateLocalRedundancyEliminationPass());
214-
optimizer.RegisterPass(CreateCombineAccessChainsPass())
206+
.RegisterPass(CreateAggressiveDCEPass(preserve_interface))
207+
.RegisterPass(CreateLocalMultiStoreElimPass())
208+
.RegisterPass(CreateAggressiveDCEPass(preserve_interface))
209+
.RegisterPass(CreateCCPPass())
210+
.RegisterPass(CreateAggressiveDCEPass(preserve_interface))
211+
.RegisterPass(CreateLoopUnrollPass(true))
212+
.RegisterPass(CreateDeadBranchElimPass())
213+
.RegisterPass(CreateRedundancyEliminationPass())
214+
.RegisterPass(CreateCombineAccessChainsPass())
215215
.RegisterPass(CreateSimplificationPass())
216216
.RegisterPass(CreateScalarReplacementPass(0))
217217
.RegisterPass(CreateLocalAccessChainConvertPass())
218218
.RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())
219219
.RegisterPass(CreateLocalSingleStoreElimPass())
220220
.RegisterPass(CreateAggressiveDCEPass(preserve_interface))
221-
.RegisterPass(CreateSSARewritePass(SSARewriteMode::SpecialTypes))
221+
.RegisterPass(CreateSSARewritePass())
222222
.RegisterPass(CreateAggressiveDCEPass(preserve_interface))
223223
.RegisterPass(CreateVectorDCEPass())
224224
.RegisterPass(CreateDeadInsertElimPass())
@@ -228,9 +228,9 @@ Optimizer& Optimizer::RegisterPerformancePasses(bool preserve_interface) {
228228
.RegisterPass(CreateCopyPropagateArraysPass())
229229
.RegisterPass(CreateReduceLoadSizePass())
230230
.RegisterPass(CreateAggressiveDCEPass(preserve_interface))
231-
.RegisterPass(CreateBlockMergePass());
232-
optimizer.RegisterPass(CreateLocalRedundancyEliminationPass());
233-
return optimizer.RegisterPass(CreateDeadBranchElimPass())
231+
.RegisterPass(CreateBlockMergePass())
232+
.RegisterPass(CreateRedundancyEliminationPass())
233+
.RegisterPass(CreateDeadBranchElimPass())
234234
.RegisterPass(CreateBlockMergePass())
235235
.RegisterPass(CreateSimplificationPass());
236236
}

0 commit comments

Comments
 (0)