mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[YulOpt] Implement loop-invariant code motion
This commit is contained in:
@@ -49,6 +49,16 @@ void SSAValueTracker::operator()(VariableDeclaration const& _varDecl)
|
||||
setValue(_varDecl.variables.front().name, _varDecl.value.get());
|
||||
}
|
||||
|
||||
set<YulString> SSAValueTracker::ssaVariables(Block const& _ast)
|
||||
{
|
||||
SSAValueTracker t;
|
||||
t(_ast);
|
||||
set<YulString> ssaVars;
|
||||
for (auto const& value: t.values())
|
||||
ssaVars.insert(value.first);
|
||||
return ssaVars;
|
||||
}
|
||||
|
||||
void SSAValueTracker::setValue(YulString _name, Expression const* _value)
|
||||
{
|
||||
assertThrow(
|
||||
|
||||
Reference in New Issue
Block a user