aboutsummaryrefslogtreecommitdiffstats
path: root/libyul/optimiser/Metrics.h
diff options
context:
space:
mode:
Diffstat (limited to 'libyul/optimiser/Metrics.h')
-rw-r--r--libyul/optimiser/Metrics.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libyul/optimiser/Metrics.h b/libyul/optimiser/Metrics.h
index 03e1b62a..5364646e 100644
--- a/libyul/optimiser/Metrics.h
+++ b/libyul/optimiser/Metrics.h
@@ -77,4 +77,18 @@ private:
size_t m_cost = 0;
};
+/**
+ * Counts the number of assignments to every variable.
+ * Only works after running the Disambiguator.
+ */
+class AssignmentCounter: public ASTWalker
+{
+public:
+ using ASTWalker::operator();
+ void operator()(Assignment const& _assignment) override;
+ std::size_t assignmentCount(YulString _name) const;
+private:
+ std::map<YulString, size_t> m_assignmentCounters;
+};
+
}