aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/log.cc7
-rw-r--r--kernel/log.h1
-rw-r--r--passes/opt/opt_muxtree.cc1
3 files changed, 9 insertions, 0 deletions
diff --git a/kernel/log.cc b/kernel/log.cc
index a7820950c..1a2c89a9c 100644
--- a/kernel/log.cc
+++ b/kernel/log.cc
@@ -420,6 +420,13 @@ void log_pop()
log_flush();
}
+void log_checkpoint()
+{
+ log_id_cache.clear();
+ IdString::checkpoint();
+ log_flush();
+}
+
#if (defined(__linux__) || defined(__FreeBSD__)) && defined(YOSYS_ENABLE_PLUGINS)
void log_backtrace(const char *prefix, int levels)
{
diff --git a/kernel/log.h b/kernel/log.h
index 3e1facae8..3328018f3 100644
--- a/kernel/log.h
+++ b/kernel/log.h
@@ -130,6 +130,7 @@ void log_spacer();
void log_push();
void log_pop();
+void log_checkpoint();
void log_backtrace(const char *prefix, int levels);
void log_reset_stack();
void log_flush();
diff --git a/passes/opt/opt_muxtree.cc b/passes/opt/opt_muxtree.cc
index 6511e091b..79f0e9639 100644
--- a/passes/opt/opt_muxtree.cc
+++ b/passes/opt/opt_muxtree.cc
@@ -204,6 +204,7 @@ struct OptMuxtreeWorker
log(" Analyzing evaluation results.\n");
log_assert(glob_abort_cnt > 0);
+ log_checkpoint();
for (auto &mi : mux2info)
{