diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp index da2e222b5..c1adf5e78 100644 --- a/libsolidity/interface/CompilerStack.cpp +++ b/libsolidity/interface/CompilerStack.cpp @@ -687,13 +687,15 @@ bool CompilerStack::compile(State _stopAfter) m_contracts[evmAssemblyJsonSource].evmAssembly = make_shared(evmAssemblyJsonSource); m_contracts[evmAssemblyJsonSource].evmAssembly->loadFromAssemblyJSON(m_evmAssemblyJson[evmAssemblyJsonSource]); -// m_contracts[evmAssemblyJsonSource].evmAssembly->optimise(optimiserSettings); + if (m_optimiserSettings.enabled) + m_contracts[evmAssemblyJsonSource].evmAssembly->optimise(optimiserSettings); m_contracts[evmAssemblyJsonSource].object = m_contracts[evmAssemblyJsonSource].evmAssembly->assemble(); m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly = make_shared(evmAssemblyJsonSource); m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->setSources(m_contracts[evmAssemblyJsonSource].evmAssembly->sources()); m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->loadFromAssemblyJSON(m_evmAssemblyJson[evmAssemblyJsonSource][".data"]["0"], false); -// m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->optimise(optimiserSettings); + if (m_optimiserSettings.enabled) + m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->optimise(optimiserSettings); m_contracts[evmAssemblyJsonSource].runtimeObject = m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->assemble(); } else diff --git a/libsolidity/interface/OptimiserSettings.h b/libsolidity/interface/OptimiserSettings.h index 5317acee4..528730eca 100644 --- a/libsolidity/interface/OptimiserSettings.h +++ b/libsolidity/interface/OptimiserSettings.h @@ -121,6 +121,8 @@ struct OptimiserSettings expectedExecutionsPerDeployment == _other.expectedExecutionsPerDeployment; } + /// Optimizer enabled. + bool enabled = false; /// Move literals to the right of commutative binary operators during code generation. /// This helps exploiting associativity. bool runOrderLiterals = false;