aboutsummaryrefslogtreecommitdiffstats
path: root/libyul/optimiser/Suite.cpp
diff options
context:
space:
mode:
authorDaniel Kirchner <daniel@ekpyron.org>2019-01-11 03:29:30 +0800
committerDaniel Kirchner <daniel@ekpyron.org>2019-01-16 00:21:03 +0800
commit81f24f24e6d827d45b1ae1b22e88388d30db3dd0 (patch)
tree8ee5ba7ba90b8dcee23437d0acc120d20347c320 /libyul/optimiser/Suite.cpp
parent6146c59a1aa4c082226a6051aa89a28446b0041d (diff)
downloaddexon-solidity-81f24f24e6d827d45b1ae1b22e88388d30db3dd0.tar.gz
dexon-solidity-81f24f24e6d827d45b1ae1b22e88388d30db3dd0.tar.zst
dexon-solidity-81f24f24e6d827d45b1ae1b22e88388d30db3dd0.zip
Add equivalent function combiner as Yul optimizer step.
Diffstat (limited to 'libyul/optimiser/Suite.cpp')
-rw-r--r--libyul/optimiser/Suite.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/libyul/optimiser/Suite.cpp b/libyul/optimiser/Suite.cpp
index 48914cf8..38c0bf49 100644
--- a/libyul/optimiser/Suite.cpp
+++ b/libyul/optimiser/Suite.cpp
@@ -25,6 +25,7 @@
#include <libyul/optimiser/BlockFlattener.h>
#include <libyul/optimiser/FunctionGrouper.h>
#include <libyul/optimiser/FunctionHoister.h>
+#include <libyul/optimiser/EquivalentFunctionCombiner.h>
#include <libyul/optimiser/ExpressionSplitter.h>
#include <libyul/optimiser/ExpressionJoiner.h>
#include <libyul/optimiser/ExpressionInliner.h>
@@ -62,6 +63,8 @@ void OptimiserSuite::run(
(FunctionHoister{})(ast);
(BlockFlattener{})(ast);
(FunctionGrouper{})(ast);
+ EquivalentFunctionCombiner::run(ast);
+ UnusedPruner::runUntilStabilised(_dialect, ast, reservedIdentifiers);
(ForLoopInitRewriter{})(ast);
(BlockFlattener{})(ast);
StructuralSimplifier{_dialect}(ast);
@@ -101,6 +104,7 @@ void OptimiserSuite::run(
CommonSubexpressionEliminator{_dialect}(ast);
(FunctionGrouper{})(ast);
+ EquivalentFunctionCombiner::run(ast);
FullInliner{ast, dispenser}.run();
SSATransform::run(ast, dispenser);