summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/core')
-rw-r--r--src/lib/netlist/core/exec.h11
-rw-r--r--src/lib/netlist/core/queue.h3
2 files changed, 6 insertions, 8 deletions
diff --git a/src/lib/netlist/core/exec.h b/src/lib/netlist/core/exec.h
index be796ab95fd..50c718e3da6 100644
--- a/src/lib/netlist/core/exec.h
+++ b/src/lib/netlist/core/exec.h
@@ -38,10 +38,8 @@ namespace netlist
void process_queue(netlist_time_ext delta) noexcept;
void abort_current_queue_slice() noexcept
{
- if (!NL_USE_QUEUE_STATS || !m_use_stats)
- m_queue.retime<false>(detail::queue_t::entry_t(m_time, nullptr));
- else
- m_queue.retime<true>(detail::queue_t::entry_t(m_time, nullptr));
+ qremove(nullptr);
+ qpush(m_time, nullptr);
}
const detail::queue_t &queue() const noexcept { return m_queue; }
@@ -95,9 +93,8 @@ namespace netlist
const log_type &log() const noexcept { return m_state.log(); }
void print_stats() const;
- bool use_stats() const { return m_use_stats; }
- bool stats_enabled() const noexcept { return m_use_stats; }
+ constexpr bool stats_enabled() const noexcept { return m_use_stats; }
void enable_stats(bool val) noexcept { m_use_stats = val; }
private:
@@ -115,8 +112,8 @@ namespace netlist
//PALIGNAS_CACHELINE()
//PALIGNAS(16)
- detail::queue_t m_queue;
bool m_use_stats;
+ detail::queue_t m_queue;
// performance
plib::pperftime_t<true> m_stat_mainloop;
plib::pperfcount_t<true> m_perf_out_processed;
diff --git a/src/lib/netlist/core/queue.h b/src/lib/netlist/core/queue.h
index 7e38c3f0ef9..350329ed3f1 100644
--- a/src/lib/netlist/core/queue.h
+++ b/src/lib/netlist/core/queue.h
@@ -21,12 +21,13 @@
#include <unordered_map>
#include <utility>
#include <vector>
+#include <queue>
namespace netlist
{
namespace detail {
// Use timed_queue_heap to use stdc++ heap functions instead of linear processing.
- // This slows down processing by about 25% on a Kaby Lake.
+ // This slows down processing by about 35% on a Kaby Lake.
// template <class T, bool TS>
// using timed_queue = plib::timed_queue_heap<T, TS>;