mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Simple peephole optimizer that is activated even if not requested.
This commit is contained in:
@@ -41,8 +41,7 @@ void Compiler::compileContract(
|
||||
ContractCompiler creationCompiler(&runtimeCompiler, m_context, m_optimize);
|
||||
m_runtimeSub = creationCompiler.compileConstructor(_contract, _contracts);
|
||||
|
||||
if (m_optimize)
|
||||
m_context.optimise(m_optimizeRuns);
|
||||
m_context.optimise(m_optimize, m_optimizeRuns);
|
||||
|
||||
if (_contract.isLibrary())
|
||||
{
|
||||
@@ -60,8 +59,7 @@ void Compiler::compileClone(
|
||||
ContractCompiler cloneCompiler(&runtimeCompiler, m_context, m_optimize);
|
||||
m_runtimeSub = cloneCompiler.compileClone(_contract, _contracts);
|
||||
|
||||
if (m_optimize)
|
||||
m_context.optimise(m_optimizeRuns);
|
||||
m_context.optimise(m_optimize, m_optimizeRuns);
|
||||
}
|
||||
|
||||
eth::AssemblyItem Compiler::functionEntryLabel(FunctionDefinition const& _function) const
|
||||
|
||||
@@ -155,7 +155,7 @@ public:
|
||||
/// Prepends "PUSH <compiler version number> POP"
|
||||
void injectVersionStampIntoSub(size_t _subIndex);
|
||||
|
||||
void optimise(unsigned _runs = 200) { m_asm->optimise(true, true, _runs); }
|
||||
void optimise(bool _fullOptimsation, unsigned _runs = 200) { m_asm->optimise(_fullOptimsation, true, _runs); }
|
||||
|
||||
/// @returns the runtime context if in creation mode and runtime context is set, nullptr otherwise.
|
||||
CompilerContext* runtimeContext() { return m_runtimeContext; }
|
||||
|
||||
Reference in New Issue
Block a user