aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-10-28 19:59:37 +0800
committerchriseth <chris@ethereum.org>2018-10-28 20:27:21 +0800
commit0e9127a7c8e7149feb5ca45f27aee48923cded3d (patch)
tree0a8375956c2d95bb0c1bafd398b8272811c0d491
parent9a58e71b9e4b573b08834aa4ae81ffc4252ef68f (diff)
downloaddexon-solidity-0e9127a7c8e7149feb5ca45f27aee48923cded3d.tar.gz
dexon-solidity-0e9127a7c8e7149feb5ca45f27aee48923cded3d.tar.zst
dexon-solidity-0e9127a7c8e7149feb5ca45f27aee48923cded3d.zip
Add rematerializer to interactive optimizer.
-rw-r--r--test/tools/yulopti.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/test/tools/yulopti.cpp b/test/tools/yulopti.cpp
index 83c54959..68fc9f4f 100644
--- a/test/tools/yulopti.cpp
+++ b/test/tools/yulopti.cpp
@@ -121,7 +121,8 @@ public:
disambiguated = true;
}
cout << "(q)quit/(f)flatten/(c)se/(x)plit/(j)oin/(g)rouper/(h)oister/" << endl;
- cout << " (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/(r)edundant assign elim.? ";
+ cout << " (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/" << endl;
+ cout << " (r)edundant assign elim./re(m)aterializer? ";
cout.flush();
int option = readStandardInputChar();
cout << ' ' << char(option) << endl;
@@ -165,6 +166,9 @@ public:
case 'r':
RedundantAssignEliminator::run(*m_ast);
break;
+ case 'm':
+ Rematerialiser{}(*m_ast);
+ break;
default:
cout << "Unknown option." << endl;
}