diff --git a/kernel/driver.cc b/kernel/driver.cc index d8b10411754..726e2530289 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -158,7 +158,6 @@ extern "C" { void yosys_atexit() { - RTLIL::OwningIdString::collect_garbage(false); #if defined(YOSYS_ENABLE_READLINE) || defined(YOSYS_ENABLE_EDITLINE) if (!yosys_history_file.empty()) { #if defined(YOSYS_ENABLE_READLINE) diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc index ee53afe4159..d18a709c94d 100644 --- a/kernel/rtlil.cc +++ b/kernel/rtlil.cc @@ -246,15 +246,14 @@ struct IdStringCollector { int64_t RTLIL::OwningIdString::gc_ns; int RTLIL::OwningIdString::gc_count; -void RTLIL::OwningIdString::collect_garbage(bool trace) +void RTLIL::OwningIdString::collect_garbage() { int64_t start = PerformanceTimer::query(); #ifndef YOSYS_NO_IDS_REFCNT IdStringCollector collector; - if (trace) - for (auto &[idx, design] : *RTLIL::Design::get_all_designs()) { - collector.trace(*design); - } + for (auto &[idx, design] : *RTLIL::Design::get_all_designs()) { + collector.trace(*design); + } int size = GetSize(global_id_storage_); for (int i = static_cast(StaticId::STATIC_ID_END); i < size; ++i) { RTLIL::IdString::Storage &storage = global_id_storage_.at(i); diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 6098d916b01..584c4e11b28 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -574,7 +574,7 @@ struct RTLIL::OwningIdString : public RTLIL::IdString { } // 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 int garbage_collection_count() { return gc_count; } diff --git a/kernel/yosys.cc b/kernel/yosys.cc index bf59302f8e1..4e4abed2021 100644 --- a/kernel/yosys.cc +++ b/kernel/yosys.cc @@ -260,6 +260,7 @@ void yosys_shutdown() delete yosys_design; yosys_design = NULL; + RTLIL::OwningIdString::collect_garbage(); for (auto f : log_files) if (f != stderr)