Fix expression simplifying by moving from SSAValueTracker to DataFlowAnalyzer as a base.

This commit is contained in:
chriseth
2019-02-27 16:14:39 +01:00
parent 4c1b0fbafa
commit 477c53a46f
5 changed files with 37 additions and 12 deletions
+2 -4
View File
@@ -36,7 +36,7 @@ using namespace dev::solidity;
void ExpressionSimplifier::visit(Expression& _expression)
{
ASTModifier::visit(_expression);
while (auto match = SimplificationRules::findFirstMatch(_expression, m_dialect, m_ssaValues))
while (auto match = SimplificationRules::findFirstMatch(_expression, m_dialect, m_value))
{
// Do not apply the rule if it removes non-constant parts of the expression.
// TODO: The check could actually be less strict than "movable".
@@ -53,7 +53,5 @@ void ExpressionSimplifier::visit(Expression& _expression)
void ExpressionSimplifier::run(Dialect const& _dialect, Block& _ast)
{
SSAValueTracker ssaValues;
ssaValues(_ast);
ExpressionSimplifier{_dialect, ssaValues.values()}(_ast);
ExpressionSimplifier{_dialect}(_ast);
}