From e451ceaf5d7017b4449b15889367eb74eb595791 Mon Sep 17 00:00:00 2001 From: "Emil J. Tywoniak" Date: Tue, 23 Jun 2026 11:38:40 +0200 Subject: [PATCH] aigerparse: better twines --- frontends/aiger/aigerparse.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/frontends/aiger/aigerparse.cc b/frontends/aiger/aigerparse.cc index f031cb805..d769c8287 100644 --- a/frontends/aiger/aigerparse.cc +++ b/frontends/aiger/aigerparse.cc @@ -426,12 +426,11 @@ void AigerReader::parse_xaiger() uint32_t lutSize = parse_xaiger_literal(f); log_debug("m: dataSize=%u lutNum=%u lutSize=%u\n", dataSize, lutNum, lutSize); ConstEvalAig ce(module); - TwineSearch search(&design->twines); for (unsigned i = 0; i < lutNum; ++i) { uint32_t rootNodeID = parse_xaiger_literal(f); uint32_t cutLeavesM = parse_xaiger_literal(f); log_debug2("rootNodeID=%d cutLeavesM=%d\n", rootNodeID, cutLeavesM); - RTLIL::Wire *output_sig = module->wire(search.find(stringf("$aiger%d$%d", aiger_autoidx, rootNodeID))); + RTLIL::Wire *output_sig = module->wire(design->twines.find(stringf("$aiger%d$%d", aiger_autoidx, rootNodeID))); log_assert(output_sig); uint32_t nodeID; RTLIL::SigSpec input_sig; @@ -442,7 +441,7 @@ void AigerReader::parse_xaiger() log_debug("\tLUT '$lut$aiger%d$%d' input %d is constant!\n", aiger_autoidx, rootNodeID, cutLeavesM); continue; } - RTLIL::Wire *wire = module->wire(search.find(stringf("$aiger%d$%d", aiger_autoidx, nodeID))); + RTLIL::Wire *wire = module->wire(design->twines.find(stringf("$aiger%d$%d", aiger_autoidx, nodeID))); log_assert(wire); input_sig.append(wire); } @@ -461,7 +460,7 @@ void AigerReader::parse_xaiger() log_assert(o.wire == nullptr); lut_mask.set(gray, o.data); } - RTLIL::Cell *output_cell = module->cell(search.find(stringf("$and$aiger%d$%d", aiger_autoidx, rootNodeID))); + RTLIL::Cell *output_cell = module->cell(design->twines.find(stringf("$and$aiger%d$%d", aiger_autoidx, rootNodeID))); log_assert(output_cell); module->remove(output_cell); module->addLut(Twine{stringf("$lut$aiger%d$%d", aiger_autoidx, rootNodeID)}, input_sig, output_sig, std::move(lut_mask)); @@ -553,7 +552,7 @@ void AigerReader::parse_aiger_ascii() // Parse latches RTLIL::Wire *clk_wire = nullptr; if (L > 0 && !clk_name.empty()) { - clk_wire = module->wire(TwineSearch(&design->twines).find(clk_name.str())); + clk_wire = module->wire(design->twines.find(clk_name.str())); log_assert(!clk_wire); log_debug2("Creating %s\n", clk_name.c_str()); clk_wire = module->addWire(design->twines.add(std::string{clk_name.str()})); @@ -680,7 +679,7 @@ void AigerReader::parse_aiger_binary() // Parse latches RTLIL::Wire *clk_wire = nullptr; if (L > 0 && !clk_name.empty()) { - clk_wire = module->wire(TwineSearch(&design->twines).find(clk_name.str())); + clk_wire = module->wire(design->twines.find(clk_name.str())); log_assert(!clk_wire); log_debug2("Creating %s\n", clk_name.c_str()); clk_wire = module->addWire(design->twines.add(std::string{clk_name.str()}));