3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-11-22 13:41:27 +00:00

Merge pull request #5484 from YosysHQ/emil/idstring-simpler-final-gc

driver: move IdString collection to yosys_shutdown
This commit is contained in:
Emil J 2025-11-15 00:10:12 +01:00 committed by GitHub
commit 84adc82fad
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 6 additions and 7 deletions

View file

@ -158,7 +158,6 @@ extern "C" {
void yosys_atexit() void yosys_atexit()
{ {
RTLIL::OwningIdString::collect_garbage(false);
#if defined(YOSYS_ENABLE_READLINE) || defined(YOSYS_ENABLE_EDITLINE) #if defined(YOSYS_ENABLE_READLINE) || defined(YOSYS_ENABLE_EDITLINE)
if (!yosys_history_file.empty()) { if (!yosys_history_file.empty()) {
#if defined(YOSYS_ENABLE_READLINE) #if defined(YOSYS_ENABLE_READLINE)

View file

@ -246,12 +246,11 @@ struct IdStringCollector {
int64_t RTLIL::OwningIdString::gc_ns; int64_t RTLIL::OwningIdString::gc_ns;
int RTLIL::OwningIdString::gc_count; int RTLIL::OwningIdString::gc_count;
void RTLIL::OwningIdString::collect_garbage(bool trace) void RTLIL::OwningIdString::collect_garbage()
{ {
int64_t start = PerformanceTimer::query(); int64_t start = PerformanceTimer::query();
#ifndef YOSYS_NO_IDS_REFCNT #ifndef YOSYS_NO_IDS_REFCNT
IdStringCollector collector; IdStringCollector collector;
if (trace)
for (auto &[idx, design] : *RTLIL::Design::get_all_designs()) { for (auto &[idx, design] : *RTLIL::Design::get_all_designs()) {
collector.trace(*design); collector.trace(*design);
} }

View file

@ -574,7 +574,7 @@ struct RTLIL::OwningIdString : public RTLIL::IdString {
} }
// Collect all non-owning references. // Collect all non-owning references.
static void collect_garbage(bool trace = true); static void collect_garbage();
static int64_t garbage_collection_ns() { return gc_ns; } static int64_t garbage_collection_ns() { return gc_ns; }
static int garbage_collection_count() { return gc_count; } static int garbage_collection_count() { return gc_count; }

View file

@ -260,6 +260,7 @@ void yosys_shutdown()
delete yosys_design; delete yosys_design;
yosys_design = NULL; yosys_design = NULL;
RTLIL::OwningIdString::collect_garbage();
for (auto f : log_files) for (auto f : log_files)
if (f != stderr) if (f != stderr)