mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 01:54:01 +02:00
Optimize covergroup bin metadata lookup (#8404)
This commit is contained in:
@@ -67,11 +67,12 @@ std::string VlCoverpoint::normalBinName(uint32_t crossIdx) const {
|
||||
}
|
||||
|
||||
const VlCovNamer& VlCoverpoint::namerFor(uint32_t i) const {
|
||||
// Namers are appended in ascending order covering [0, m_total),
|
||||
for (const VlCovNamer& nm : m_namers) {
|
||||
if (i < nm.base() + nm.count()) return nm;
|
||||
}
|
||||
VL_UNREACHABLE; // LCOV_EXCL_LINE
|
||||
// Namers are appended in ascending order covering [0, m_total).
|
||||
const auto it = std::upper_bound(
|
||||
m_namers.begin(), m_namers.end(), i,
|
||||
[](uint32_t bin, const VlCovNamer& namer) { return bin < namer.base(); });
|
||||
assert(it != m_namers.begin());
|
||||
return *std::prev(it);
|
||||
}
|
||||
|
||||
std::string VlCoverpoint::binName(uint32_t i) const {
|
||||
|
||||
Reference in New Issue
Block a user