diff options
author | Daniel Kirchner <daniel@ekpyron.org> | 2018-12-04 00:19:37 +0800 |
---|---|---|
committer | Daniel Kirchner <daniel@ekpyron.org> | 2018-12-07 01:37:35 +0800 |
commit | 1eb60cbb3952df395df79ca1737f41708a658d4b (patch) | |
tree | 7c48065a0c5f14cac3f22559f5d91544020de859 /libyul/optimiser/Suite.cpp | |
parent | 4b2a64306a6b85407210245a47a7df1e0a5e0cbf (diff) | |
download | dexon-solidity-1eb60cbb3952df395df79ca1737f41708a658d4b.tar.gz dexon-solidity-1eb60cbb3952df395df79ca1737f41708a658d4b.tar.zst dexon-solidity-1eb60cbb3952df395df79ca1737f41708a658d4b.zip |
Add structural simplifier as optimization step for Yul.
Diffstat (limited to 'libyul/optimiser/Suite.cpp')
-rw-r--r-- | libyul/optimiser/Suite.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libyul/optimiser/Suite.cpp b/libyul/optimiser/Suite.cpp index 36f0e1eb..ad22bfa3 100644 --- a/libyul/optimiser/Suite.cpp +++ b/libyul/optimiser/Suite.cpp @@ -33,6 +33,7 @@ #include <libyul/optimiser/ExpressionSimplifier.h> #include <libyul/optimiser/CommonSubexpressionEliminator.h> #include <libyul/optimiser/SSATransform.h> +#include <libyul/optimiser/StructuralSimplifier.h> #include <libyul/optimiser/RedundantAssignEliminator.h> #include <libyul/optimiser/VarDeclPropagator.h> #include <libyul/AsmAnalysisInfo.h> @@ -58,6 +59,7 @@ void OptimiserSuite::run( (FunctionHoister{})(ast); (FunctionGrouper{})(ast); (ForLoopInitRewriter{})(ast); + StructuralSimplifier{}(ast); NameDispenser dispenser{ast}; @@ -71,6 +73,7 @@ void OptimiserSuite::run( CommonSubexpressionEliminator{}(ast); ExpressionSimplifier::run(ast); + StructuralSimplifier{}(ast); SSATransform::run(ast, dispenser); RedundantAssignEliminator::run(ast); RedundantAssignEliminator::run(ast); @@ -98,6 +101,7 @@ void OptimiserSuite::run( VarDeclPropagator{}(ast); RedundantAssignEliminator::run(ast); ExpressionSimplifier::run(ast); + StructuralSimplifier{}(ast); CommonSubexpressionEliminator{}(ast); SSATransform::run(ast, dispenser); RedundantAssignEliminator::run(ast); |