Improve RegisterSizePasses (#3059)
diff --git a/source/opt/optimizer.cpp b/source/opt/optimizer.cpp
index ece1abe..d1b2417 100644
--- a/source/opt/optimizer.cpp
+++ b/source/opt/optimizer.cpp
@@ -198,28 +198,35 @@
.RegisterPass(CreateDeadBranchElimPass())
.RegisterPass(CreateMergeReturnPass())
.RegisterPass(CreateInlineExhaustivePass())
- .RegisterPass(CreateAggressiveDCEPass())
+ .RegisterPass(CreateEliminateDeadFunctionsPass())
.RegisterPass(CreatePrivateToLocalPass())
- .RegisterPass(CreateScalarReplacementPass())
- .RegisterPass(CreateLocalAccessChainConvertPass())
- .RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())
- .RegisterPass(CreateLocalSingleStoreElimPass())
- .RegisterPass(CreateAggressiveDCEPass())
- .RegisterPass(CreateSimplificationPass())
- .RegisterPass(CreateDeadInsertElimPass())
+ .RegisterPass(CreateScalarReplacementPass(0))
.RegisterPass(CreateLocalMultiStoreElimPass())
- .RegisterPass(CreateAggressiveDCEPass())
.RegisterPass(CreateCCPPass())
+ .RegisterPass(CreateLoopUnrollPass(true))
+ .RegisterPass(CreateDeadBranchElimPass())
+ .RegisterPass(CreateSimplificationPass())
+ .RegisterPass(CreateScalarReplacementPass(0))
+ .RegisterPass(CreateLocalSingleStoreElimPass())
+ .RegisterPass(CreateIfConversionPass())
+ .RegisterPass(CreateSimplificationPass())
.RegisterPass(CreateAggressiveDCEPass())
.RegisterPass(CreateDeadBranchElimPass())
- .RegisterPass(CreateIfConversionPass())
- .RegisterPass(CreateAggressiveDCEPass())
.RegisterPass(CreateBlockMergePass())
- .RegisterPass(CreateSimplificationPass())
+ .RegisterPass(CreateLocalAccessChainConvertPass())
+ .RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())
+ .RegisterPass(CreateAggressiveDCEPass())
+ .RegisterPass(CreateCopyPropagateArraysPass())
+ .RegisterPass(CreateVectorDCEPass())
.RegisterPass(CreateDeadInsertElimPass())
+ .RegisterPass(CreateEliminateDeadMembersPass())
+ .RegisterPass(CreateLocalSingleStoreElimPass())
+ .RegisterPass(CreateBlockMergePass())
+ .RegisterPass(CreateLocalMultiStoreElimPass())
.RegisterPass(CreateRedundancyEliminationPass())
- .RegisterPass(CreateCFGCleanupPass())
- .RegisterPass(CreateAggressiveDCEPass());
+ .RegisterPass(CreateSimplificationPass())
+ .RegisterPass(CreateAggressiveDCEPass())
+ .RegisterPass(CreateCFGCleanupPass());
}
Optimizer& Optimizer::RegisterVulkanToWebGPUPasses() {
diff --git a/test/tools/opt/flags.py b/test/tools/opt/flags.py
index b34a168..2f6c0a7 100644
--- a/test/tools/opt/flags.py
+++ b/test/tools/opt/flags.py
@@ -187,28 +187,35 @@
'eliminate-dead-branches',
'merge-return',
'inline-entry-points-exhaustive',
- 'eliminate-dead-code-aggressive',
+ 'eliminate-dead-functions',
'private-to-local',
- 'scalar-replacement=100',
- 'convert-local-access-chains',
- 'eliminate-local-single-block',
- 'eliminate-local-single-store',
- 'eliminate-dead-code-aggressive',
- 'simplify-instructions',
- 'eliminate-dead-inserts',
+ 'scalar-replacement=0',
'ssa-rewrite',
- 'eliminate-dead-code-aggressive',
'ccp',
+ 'loop-unroll',
+ 'eliminate-dead-branches',
+ 'simplify-instructions',
+ 'scalar-replacement=0',
+ 'eliminate-local-single-store',
+ 'if-conversion',
+ 'simplify-instructions',
'eliminate-dead-code-aggressive',
'eliminate-dead-branches',
- 'if-conversion',
- 'eliminate-dead-code-aggressive',
'merge-blocks',
- 'simplify-instructions',
- 'eliminate-dead-inserts',
- 'redundancy-elimination',
- 'cfg-cleanup',
+ 'convert-local-access-chains',
+ 'eliminate-local-single-block',
'eliminate-dead-code-aggressive',
+ 'copy-propagate-arrays',
+ 'vector-dce',
+ 'eliminate-dead-inserts',
+ 'eliminate-dead-members',
+ 'eliminate-local-single-store',
+ 'merge-blocks',
+ 'ssa-rewrite',
+ 'redundancy-elimination',
+ 'simplify-instructions',
+ 'eliminate-dead-code-aggressive',
+ 'cfg-cleanup',
]
shader = placeholder.FileSPIRVShader(empty_main_assembly(), '.spvasm')
output = placeholder.TempFileName('output.spv')