mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Some simplifications.
This commit is contained in:
parent
2618c84cb4
commit
4078802c72
@ -33,7 +33,6 @@ using namespace solidity::util;
|
||||
|
||||
CompilabilityChecker::CompilabilityChecker(
|
||||
Dialect const& _dialect,
|
||||
std::optional<uint8_t> _eofVersion,
|
||||
Object const& _object,
|
||||
bool _optimizeStackAllocation
|
||||
)
|
||||
@ -51,7 +50,7 @@ CompilabilityChecker::CompilabilityChecker(
|
||||
builtinContext.subIDs[_object.name] = 1;
|
||||
for (auto const& subNode: _object.subObjects)
|
||||
builtinContext.subIDs[subNode->name] = 1;
|
||||
NoOutputAssembly assembly(_eofVersion.has_value());
|
||||
NoOutputAssembly assembly;
|
||||
CodeTransform transform(
|
||||
assembly,
|
||||
analysisInfo,
|
||||
|
@ -46,7 +46,6 @@ struct CompilabilityChecker
|
||||
{
|
||||
CompilabilityChecker(
|
||||
Dialect const& _dialect,
|
||||
std::optional<uint8_t> _eofVersion,
|
||||
Object const& _object,
|
||||
bool _optimizeStackAllocation
|
||||
);
|
||||
|
@ -52,8 +52,7 @@ struct NoOutputAssemblyContext
|
||||
class NoOutputAssembly: public AbstractAssembly
|
||||
{
|
||||
public:
|
||||
explicit NoOutputAssembly(bool _hasFunctions): m_hasFunctions(_hasFunctions), m_context(std::make_shared<NoOutputAssemblyContext>()) { }
|
||||
NoOutputAssembly(bool _hasFunctions, std::shared_ptr<NoOutputAssemblyContext> _context): m_hasFunctions(_hasFunctions), m_context(_context) {}
|
||||
explicit NoOutputAssembly(): m_context(std::make_shared<NoOutputAssemblyContext>()) { }
|
||||
|
||||
~NoOutputAssembly() override = default;
|
||||
|
||||
@ -92,7 +91,6 @@ public:
|
||||
void markAsInvalid() override {}
|
||||
|
||||
private:
|
||||
bool m_hasFunctions = false;
|
||||
std::shared_ptr<NoOutputAssemblyContext> m_context;
|
||||
int m_stackHeight = 0;
|
||||
};
|
||||
|
@ -270,7 +270,7 @@ bool StackCompressor::run(
|
||||
else
|
||||
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())
|
||||
return true;
|
||||
eliminateVariables(
|
||||
|
@ -137,7 +137,6 @@ void StackLimitEvader::run(
|
||||
else
|
||||
run(_context, _object, CompilabilityChecker{
|
||||
_context.dialect,
|
||||
_context.eofVersion,
|
||||
_object,
|
||||
true
|
||||
}.unreachableVariables);
|
||||
|
@ -41,7 +41,6 @@ string check(string const& _input)
|
||||
BOOST_REQUIRE(obj.code);
|
||||
auto functions = CompilabilityChecker(
|
||||
EVMDialect::strictAssemblyForEVM(solidity::test::CommonOptions::get().evmVersion()),
|
||||
solidity::test::CommonOptions::get().eofVersion(),
|
||||
obj,
|
||||
true
|
||||
).stackDeficit;
|
||||
|
@ -348,7 +348,6 @@ YulOptimizerTestCommon::YulOptimizerTestCommon(
|
||||
disambiguate();
|
||||
StackLimitEvader::run(*m_context, *m_object, CompilabilityChecker{
|
||||
*m_dialect,
|
||||
nullopt, // TODO
|
||||
*m_object,
|
||||
true
|
||||
}.unreachableVariables);
|
||||
|
Loading…
Reference in New Issue
Block a user