Some simplifications.

This commit is contained in:
Daniel Kirchner 2022-12-21 15:56:25 +01:00
parent f59990dae1
commit 42c17385cd
7 changed files with 3 additions and 10 deletions

View File

@ -33,7 +33,6 @@ using namespace solidity::util;
CompilabilityChecker::CompilabilityChecker( CompilabilityChecker::CompilabilityChecker(
Dialect const& _dialect, Dialect const& _dialect,
std::optional<uint8_t> _eofVersion,
Object const& _object, Object const& _object,
bool _optimizeStackAllocation bool _optimizeStackAllocation
) )
@ -51,7 +50,7 @@ CompilabilityChecker::CompilabilityChecker(
builtinContext.subIDs[_object.name] = 1; builtinContext.subIDs[_object.name] = 1;
for (auto const& subNode: _object.subObjects) for (auto const& subNode: _object.subObjects)
builtinContext.subIDs[subNode->name] = 1; builtinContext.subIDs[subNode->name] = 1;
NoOutputAssembly assembly(_eofVersion.has_value()); NoOutputAssembly assembly;
CodeTransform transform( CodeTransform transform(
assembly, assembly,
analysisInfo, analysisInfo,

View File

@ -46,7 +46,6 @@ struct CompilabilityChecker
{ {
CompilabilityChecker( CompilabilityChecker(
Dialect const& _dialect, Dialect const& _dialect,
std::optional<uint8_t> _eofVersion,
Object const& _object, Object const& _object,
bool _optimizeStackAllocation bool _optimizeStackAllocation
); );

View File

@ -52,8 +52,7 @@ struct NoOutputAssemblyContext
class NoOutputAssembly: public AbstractAssembly class NoOutputAssembly: public AbstractAssembly
{ {
public: public:
explicit NoOutputAssembly(bool _hasFunctions): m_hasFunctions(_hasFunctions), m_context(std::make_shared<NoOutputAssemblyContext>()) { } explicit NoOutputAssembly(): m_context(std::make_shared<NoOutputAssemblyContext>()) { }
NoOutputAssembly(bool _hasFunctions, std::shared_ptr<NoOutputAssemblyContext> _context): m_hasFunctions(_hasFunctions), m_context(_context) {}
~NoOutputAssembly() override = default; ~NoOutputAssembly() override = default;
@ -92,7 +91,6 @@ public:
void markAsInvalid() override {} void markAsInvalid() override {}
private: private:
bool m_hasFunctions = false;
std::shared_ptr<NoOutputAssemblyContext> m_context; std::shared_ptr<NoOutputAssemblyContext> m_context;
int m_stackHeight = 0; int m_stackHeight = 0;
}; };

View File

@ -270,7 +270,7 @@ bool StackCompressor::run(
else else
for (size_t iterations = 0; iterations < _maxIterations; iterations++) for (size_t iterations = 0; iterations < _maxIterations; iterations++)
{ {
map<YulString, int> stackSurplus = CompilabilityChecker(_dialect, _eofVersion, _object, _optimizeStackAllocation).stackDeficit; map<YulString, int> stackSurplus = CompilabilityChecker(_dialect, _object, _optimizeStackAllocation).stackDeficit;
if (stackSurplus.empty()) if (stackSurplus.empty())
return true; return true;
eliminateVariables( eliminateVariables(

View File

@ -137,7 +137,6 @@ void StackLimitEvader::run(
else else
run(_context, _object, CompilabilityChecker{ run(_context, _object, CompilabilityChecker{
_context.dialect, _context.dialect,
_context.eofVersion,
_object, _object,
true true
}.unreachableVariables); }.unreachableVariables);

View File

@ -41,7 +41,6 @@ string check(string const& _input)
BOOST_REQUIRE(obj.code); BOOST_REQUIRE(obj.code);
auto functions = CompilabilityChecker( auto functions = CompilabilityChecker(
EVMDialect::strictAssemblyForEVM(solidity::test::CommonOptions::get().evmVersion()), EVMDialect::strictAssemblyForEVM(solidity::test::CommonOptions::get().evmVersion()),
solidity::test::CommonOptions::get().eofVersion(),
obj, obj,
true true
).stackDeficit; ).stackDeficit;

View File

@ -348,7 +348,6 @@ YulOptimizerTestCommon::YulOptimizerTestCommon(
disambiguate(); disambiguate();
StackLimitEvader::run(*m_context, *m_object, CompilabilityChecker{ StackLimitEvader::run(*m_context, *m_object, CompilabilityChecker{
*m_dialect, *m_dialect,
nullopt, // TODO
*m_object, *m_object,
true true
}.unreachableVariables); }.unreachableVariables);