aboutsummaryrefslogtreecommitdiffstats
path: root/test/libyul/YulOptimizerTest.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-10-12 03:16:37 +0800
committerchriseth <chris@ethereum.org>2018-10-16 22:18:39 +0800
commitffe44536fe30381f8365b7ce9276660be5a6656b (patch)
treee64f5582273d8a7124dbecb107b2ba38e8001658 /test/libyul/YulOptimizerTest.cpp
parenta320eec7d38f98a1fbb9f6267e5e30cfae5c59cf (diff)
downloaddexon-solidity-ffe44536fe30381f8365b7ce9276660be5a6656b.tar
dexon-solidity-ffe44536fe30381f8365b7ce9276660be5a6656b.tar.gz
dexon-solidity-ffe44536fe30381f8365b7ce9276660be5a6656b.tar.bz2
dexon-solidity-ffe44536fe30381f8365b7ce9276660be5a6656b.tar.lz
dexon-solidity-ffe44536fe30381f8365b7ce9276660be5a6656b.tar.xz
dexon-solidity-ffe44536fe30381f8365b7ce9276660be5a6656b.tar.zst
dexon-solidity-ffe44536fe30381f8365b7ce9276660be5a6656b.zip
Add a "full simplify" test that applies multiple elementary transforms.
Diffstat (limited to 'test/libyul/YulOptimizerTest.cpp')
-rw-r--r--test/libyul/YulOptimizerTest.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/libyul/YulOptimizerTest.cpp b/test/libyul/YulOptimizerTest.cpp
index bbae9bb4..d1990edb 100644
--- a/test/libyul/YulOptimizerTest.cpp
+++ b/test/libyul/YulOptimizerTest.cpp
@@ -148,6 +148,18 @@ bool YulOptimizerTest::run(ostream& _stream, string const& _linePrefix, bool con
disambiguate();
ExpressionSimplifier::run(*m_ast);
}
+ else if (m_optimizerStep == "fullSimplify")
+ {
+ disambiguate();
+ NameDispenser nameDispenser;
+ nameDispenser.m_usedNames = NameCollector(*m_ast).names();
+ ExpressionSplitter{nameDispenser}(*m_ast);
+ CommonSubexpressionEliminator{}(*m_ast);
+ ExpressionSimplifier::run(*m_ast);
+ UnusedPruner::runUntilStabilised(*m_ast);
+ ExpressionJoiner::run(*m_ast);
+ ExpressionJoiner::run(*m_ast);
+ }
else if (m_optimizerStep == "unusedPruner")
{
disambiguate();