aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-07-15 12:12:21 +0200
committerClifford Wolf <clifford@clifford.at>2019-07-15 12:12:21 +0200
commit0e6c83027f24cdf7082606a5631468ad28f41574 (patch)
treebe5de035b899f7cef5f196355de18f67011346c0
parent1122a2e0671ed00b7c03658f5012e34df12f26de (diff)
downloadyosys-0e6c83027f24cdf7082606a5631468ad28f41574.tar.gz
yosys-0e6c83027f24cdf7082606a5631468ad28f41574.tar.bz2
yosys-0e6c83027f24cdf7082606a5631468ad28f41574.zip
Add log_checkpoint function and use it in opt_muxtree
Signed-off-by: Clifford Wolf <clifford@clifford.at>
-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)
{