Add equivalent function combiner as Yul optimizer step.

This commit is contained in:
Daniel Kirchner
2019-01-15 17:21:03 +01:00
parent 6146c59a1a
commit 81f24f24e6
20 changed files with 761 additions and 165 deletions
+4
View File
@@ -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);