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
+6
View File
@@ -26,6 +26,7 @@
#include <libyul/optimiser/Disambiguator.h>
#include <libyul/optimiser/CommonSubexpressionEliminator.h>
#include <libyul/optimiser/NameCollector.h>
#include <libyul/optimiser/EquivalentFunctionCombiner.h>
#include <libyul/optimiser/ExpressionSplitter.h>
#include <libyul/optimiser/FunctionGrouper.h>
#include <libyul/optimiser/FunctionHoister.h>
@@ -217,6 +218,11 @@ bool YulOptimizerTest::run(ostream& _stream, string const& _linePrefix, bool con
disambiguate();
StructuralSimplifier{*m_dialect}(*m_ast);
}
else if (m_optimizerStep == "equivalentFunctionCombiner")
{
disambiguate();
EquivalentFunctionCombiner::run(*m_ast);
}
else if (m_optimizerStep == "fullSuite")
OptimiserSuite::run(*m_dialect, *m_ast, *m_analysisInfo);
else