diff options
author | Daniel Kirchner <daniel@ekpyron.org> | 2019-01-17 23:11:55 +0800 |
---|---|---|
committer | Daniel Kirchner <daniel@ekpyron.org> | 2019-01-18 04:05:32 +0800 |
commit | 29f66b267426535c7ffe8eda09c3b50888dcdfc0 (patch) | |
tree | c7429889d3050b4d13770e29e2c430c03955c68c /libyul/optimiser/Metrics.cpp | |
parent | fd1658572463a246f602ae0fe161430429daa9e0 (diff) | |
download | dexon-solidity-29f66b267426535c7ffe8eda09c3b50888dcdfc0.tar dexon-solidity-29f66b267426535c7ffe8eda09c3b50888dcdfc0.tar.gz dexon-solidity-29f66b267426535c7ffe8eda09c3b50888dcdfc0.tar.bz2 dexon-solidity-29f66b267426535c7ffe8eda09c3b50888dcdfc0.tar.lz dexon-solidity-29f66b267426535c7ffe8eda09c3b50888dcdfc0.tar.xz dexon-solidity-29f66b267426535c7ffe8eda09c3b50888dcdfc0.tar.zst dexon-solidity-29f66b267426535c7ffe8eda09c3b50888dcdfc0.zip |
Stabilize SSAReverser.
Diffstat (limited to 'libyul/optimiser/Metrics.cpp')
-rw-r--r-- | libyul/optimiser/Metrics.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libyul/optimiser/Metrics.cpp b/libyul/optimiser/Metrics.cpp index df919682..e13940aa 100644 --- a/libyul/optimiser/Metrics.cpp +++ b/libyul/optimiser/Metrics.cpp @@ -134,3 +134,15 @@ void CodeCost::visit(Expression const& _expression) ++m_cost; ASTWalker::visit(_expression); } + +void AssignmentCounter::operator()(Assignment const& _assignment) +{ + for (auto const& variable: _assignment.variableNames) + ++m_assignmentCounters[variable.name]; +} + +size_t AssignmentCounter::assignmentCount(YulString _name) const +{ + auto it = m_assignmentCounters.find(_name); + return (it == m_assignmentCounters.end()) ? 0 : it->second; +} |