Avoid unnecessary per-vertex allocations in NFA lowering (#8319)

Signed-off-by: Artur Bieniek <[email protected]>
This commit is contained in:
Artur Bieniek
2026-09-10 20:21:37 +02:00
committed by GitHub
parent 09fd15af7b
commit 5b24226b3b
+3 -6
View File
@@ -2698,11 +2698,8 @@ public:
const std::vector<const SvaTransEdge*> edges = graph.allEdges();
// Allocate per-vertex lowering data (stored via V3GraphVertex::userp()).
std::vector<std::unique_ptr<SvaVertexData>> vertexData(N);
for (int i = 0; i < N; ++i) {
vertexData[i] = std::make_unique<SvaVertexData>();
vtx[i]->userp(vertexData[i].get());
}
std::vector<SvaVertexData> vertexData(N);
for (int i = 0; i < N; ++i) vtx[i]->userp(&vertexData[i]);
// Identify registered vertices (targets of clocked edges).
for (int i = 0; i < N; ++i) {
@@ -2877,7 +2874,7 @@ public:
m_modp->addStmtsp(new AstFinal{flp, new AstIf{flp, condp, firep}});
}
// Clear userp on every vertex before vertexData unique_ptrs are destroyed.
// Clear userp on every vertex before vertexData is destroyed.
for (int i = 0; i < N; ++i) vtx[i]->userp(nullptr);
return sigs;
}