From fe6e2e84070dc4dd1c28374d5d36b862e4e601eb Mon Sep 17 00:00:00 2001 From: rodiazet Date: Mon, 17 Aug 2026 13:38:03 +0200 Subject: [PATCH 1/2] Change `std::map` to `std::unordered_map` in `SSAValueTracker::m_values` --- libyul/optimiser/SSAValueTracker.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libyul/optimiser/SSAValueTracker.h b/libyul/optimiser/SSAValueTracker.h index 2448f99a84c4..60f238418ce7 100644 --- a/libyul/optimiser/SSAValueTracker.h +++ b/libyul/optimiser/SSAValueTracker.h @@ -25,7 +25,7 @@ #include #include // Needed for m_zero below. -#include +#include #include namespace solidity::yul @@ -47,7 +47,7 @@ class SSAValueTracker: public ASTWalker void operator()(VariableDeclaration const& _varDecl) override; void operator()(Assignment const& _assignment) override; - std::map const& values() const { return m_values; } + std::unordered_map const& values() const { return m_values; } Expression const* value(YulName _name) const { return m_values.at(_name); } static std::set ssaVariables(Block const& _ast); @@ -58,7 +58,7 @@ class SSAValueTracker: public ASTWalker /// Special expression whose address will be used in m_values. /// YulName does not need to be reset because SSAValueTracker is short-lived. Expression const m_zero{Literal{{}, LiteralKind::Number, LiteralValue(u256{0})}}; - std::map m_values; + std::unordered_map m_values; }; } From d3a76c38e79da40db8e91b2c5f631e23ad9c171b Mon Sep 17 00:00:00 2001 From: rodiazet Date: Mon, 17 Aug 2026 14:04:45 +0200 Subject: [PATCH 2/2] util::unordered_flat_map --- libyul/optimiser/SSAValueTracker.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libyul/optimiser/SSAValueTracker.h b/libyul/optimiser/SSAValueTracker.h index 60f238418ce7..c9e88a90f6f2 100644 --- a/libyul/optimiser/SSAValueTracker.h +++ b/libyul/optimiser/SSAValueTracker.h @@ -25,7 +25,7 @@ #include #include // Needed for m_zero below. -#include +#include #include namespace solidity::yul @@ -47,7 +47,7 @@ class SSAValueTracker: public ASTWalker void operator()(VariableDeclaration const& _varDecl) override; void operator()(Assignment const& _assignment) override; - std::unordered_map const& values() const { return m_values; } + util::unordered_flat_map const& values() const { return m_values; } Expression const* value(YulName _name) const { return m_values.at(_name); } static std::set ssaVariables(Block const& _ast); @@ -58,7 +58,7 @@ class SSAValueTracker: public ASTWalker /// Special expression whose address will be used in m_values. /// YulName does not need to be reset because SSAValueTracker is short-lived. Expression const m_zero{Literal{{}, LiteralKind::Number, LiteralValue(u256{0})}}; - std::unordered_map m_values; + util::unordered_flat_map m_values; }; }