Add dead function elimination to -O and -Os
authorSteven Perron <stevenperron@google.com>
Fri, 17 Nov 2017 18:03:17 +0000 (13:03 -0500)
committerSteven Perron <stevenperron@google.com>
Mon, 20 Nov 2017 14:41:03 +0000 (09:41 -0500)
This pass is very useful in reducing the size of the code, and reducing
the amount of work done by other optimizations.

source/opt/optimizer.cpp

index 2fe8410..3527c1f 100644 (file)
@@ -69,6 +69,7 @@ Optimizer& Optimizer::RegisterPass(PassToken&& p) {
 Optimizer& Optimizer::RegisterPerformancePasses() {
   return RegisterPass(CreateMergeReturnPass())
       .RegisterPass(CreateInlineExhaustivePass())
+      .RegisterPass(CreateEliminateDeadFunctionsPass())
       .RegisterPass(CreateLocalAccessChainConvertPass())
       .RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())
       .RegisterPass(CreateLocalSingleStoreElimPass())
@@ -86,6 +87,7 @@ Optimizer& Optimizer::RegisterPerformancePasses() {
 Optimizer& Optimizer::RegisterSizePasses() {
   return RegisterPass(CreateMergeReturnPass())
       .RegisterPass(CreateInlineExhaustivePass())
+      .RegisterPass(CreateEliminateDeadFunctionsPass())
       .RegisterPass(CreateLocalAccessChainConvertPass())
       .RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())
       .RegisterPass(CreateLocalSingleStoreElimPass())