From c48bc56f4aa8873e8f32d2a7542ade803cc3043c Mon Sep 17 00:00:00 2001 From: "Emil J. Tywoniak" Date: Thu, 13 Nov 2025 11:10:50 +0100 Subject: [PATCH] driver: fix timing data divison by zero when no passes run --- kernel/driver.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/kernel/driver.cc b/kernel/driver.cc index 792f78b7f..d8b104117 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -707,11 +707,16 @@ int main(int argc, char **argv) for (auto &it : pass_register) if (it.second->call_counter) { - total_ns += it.second->runtime_ns + 1; - timedat.insert(make_tuple(it.second->runtime_ns + 1, it.second->call_counter, it.first)); + auto pass_ns = it.second->runtime_ns + 1; + total_ns += pass_ns; + timedat.insert(make_tuple(pass_ns, it.second->call_counter, it.first)); } - timedat.insert(make_tuple(RTLIL::OwningIdString::garbage_collection_ns() + 1, - RTLIL::OwningIdString::garbage_collection_count(), "id_gc")); + { + auto gc_ns = RTLIL::OwningIdString::garbage_collection_ns() + 1; + total_ns += gc_ns; + timedat.insert(make_tuple(gc_ns, + RTLIL::OwningIdString::garbage_collection_count(), "id_gc")); + } if (timing_details) {