Make optimiser settings available to assembly stack.

This commit is contained in:
chriseth
2019-03-28 18:24:13 +01:00
parent 30da62aa2c
commit 3264e9abf0
17 changed files with 111 additions and 46 deletions
+7 -4
View File
@@ -64,17 +64,20 @@ ObjectCompilerTest::ObjectCompilerTest(string const& _filename)
bool ObjectCompilerTest::run(ostream& _stream, string const& _linePrefix, bool const _formatted)
{
AssemblyStack stack(EVMVersion(), AssemblyStack::Language::StrictAssembly);
AssemblyStack stack(
EVMVersion(),
AssemblyStack::Language::StrictAssembly,
m_optimize ? OptimiserSettings::full() : OptimiserSettings::minimal()
);
if (!stack.parseAndAnalyze("source", m_source))
{
AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Error parsing source." << endl;
printErrors(_stream, stack.errors());
return false;
}
if (m_optimize)
stack.optimize();
stack.optimize();
MachineAssemblyObject obj = stack.assemble(AssemblyStack::Machine::EVM, m_optimize);
MachineAssemblyObject obj = stack.assemble(AssemblyStack::Machine::EVM);
solAssert(obj.bytecode, "");
m_obtainedResult = "Assembly:\n" + obj.assembly;