Add structural simplifier as optimization step for Yul.

This commit is contained in:
Daniel Kirchner
2018-12-06 18:37:35 +01:00
parent 4b2a64306a
commit 1eb60cbb39
19 changed files with 292 additions and 15 deletions
+6
View File
@@ -39,6 +39,7 @@
#include <libyul/optimiser/ExpressionJoiner.h>
#include <libyul/optimiser/SSATransform.h>
#include <libyul/optimiser/RedundantAssignEliminator.h>
#include <libyul/optimiser/StructuralSimplifier.h>
#include <libyul/optimiser/Suite.h>
#include <libyul/AsmPrinter.h>
#include <libyul/AsmParser.h>
@@ -213,6 +214,11 @@ bool YulOptimizerTest::run(ostream& _stream, string const& _linePrefix, bool con
SSATransform::run(*m_ast, nameDispenser);
RedundantAssignEliminator::run(*m_ast);
}
else if (m_optimizerStep == "structuralSimplifier")
{
disambiguate();
StructuralSimplifier{}(*m_ast);
}
else if (m_optimizerStep == "fullSuite")
OptimiserSuite::run(*m_ast, *m_analysisInfo);
else