mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Make Yul optimizer not fail for wasm.
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
#include <libyul/backends/evm/EVMCodeTransform.h>
|
||||
#include <libyul/backends/evm/EVMDialect.h>
|
||||
#include <libyul/backends/evm/EVMObjectCompiler.h>
|
||||
#include <libyul/backends/evm/EVMMetrics.h>
|
||||
#include <libyul/backends/wasm/WasmDialect.h>
|
||||
#include <libyul/backends/wasm/EWasmObjectCompiler.h>
|
||||
#include <libyul/optimiser/Metrics.h>
|
||||
@@ -146,15 +147,17 @@ void AssemblyStack::optimize(Object& _object, bool _isCreation)
|
||||
for (auto& subNode: _object.subObjects)
|
||||
if (auto subObject = dynamic_cast<Object*>(subNode.get()))
|
||||
optimize(*subObject, false);
|
||||
EVMDialect const& dialect = dynamic_cast<EVMDialect const&>(languageToDialect(m_language, m_evmVersion));
|
||||
GasMeter meter(dialect, _isCreation, m_optimiserSettings.expectedExecutionsPerDeployment);
|
||||
OptimiserSuite::run(
|
||||
dialect,
|
||||
meter,
|
||||
*_object.code,
|
||||
*_object.analysisInfo,
|
||||
m_optimiserSettings.optimizeStackAllocation
|
||||
);
|
||||
if (EVMDialect const* dialect = dynamic_cast<EVMDialect const*>(&languageToDialect(m_language, m_evmVersion)))
|
||||
{
|
||||
GasMeter meter(*dialect, _isCreation, m_optimiserSettings.expectedExecutionsPerDeployment);
|
||||
OptimiserSuite::run(
|
||||
*dialect,
|
||||
meter,
|
||||
*_object.code,
|
||||
*_object.analysisInfo,
|
||||
m_optimiserSettings.optimizeStackAllocation
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
MachineAssemblyObject AssemblyStack::assemble(Machine _machine) const
|
||||
|
||||
Reference in New Issue
Block a user