From 5b24226b3ba16547be5747b012ee07fc014312c6 Mon Sep 17 00:00:00 2001 From: Artur Bieniek Date: Thu, 10 Sep 2026 20:21:37 +0200 Subject: [PATCH] Avoid unnecessary per-vertex allocations in NFA lowering (#8319) Signed-off-by: Artur Bieniek --- src/V3AssertNfa.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/V3AssertNfa.cpp b/src/V3AssertNfa.cpp index 5fa9ee17e..2bd03e9d4 100644 --- a/src/V3AssertNfa.cpp +++ b/src/V3AssertNfa.cpp @@ -2698,11 +2698,8 @@ public: const std::vector edges = graph.allEdges(); // Allocate per-vertex lowering data (stored via V3GraphVertex::userp()). - std::vector> vertexData(N); - for (int i = 0; i < N; ++i) { - vertexData[i] = std::make_unique(); - vtx[i]->userp(vertexData[i].get()); - } + std::vector 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; }