summaryrefslogtreecommitdiff
path: root/passes/sat
diff options
context:
space:
mode:
Diffstat (limited to 'passes/sat')
-rw-r--r--passes/sat/freduce.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/passes/sat/freduce.cc b/passes/sat/freduce.cc
index 893fe516..23ab8a04 100644
--- a/passes/sat/freduce.cc
+++ b/passes/sat/freduce.cc
@@ -441,8 +441,6 @@ struct FreduceWorker
int bits_count = 0;
std::map<std::vector<RTLIL::SigBit>, std::vector<RTLIL::SigBit>> buckets;
- buckets[std::vector<RTLIL::SigBit>()].push_back(RTLIL::SigBit(RTLIL::State::S0));
- buckets[std::vector<RTLIL::SigBit>()].push_back(RTLIL::SigBit(RTLIL::State::S1));
for (auto &batch : batches)
{
for (auto &bit : batch)
@@ -464,6 +462,11 @@ struct FreduceWorker
}
log(" Sorted %d signal bits into %d buckets.\n", bits_count, int(buckets.size()));
+ if (buckets.count(std::vector<RTLIL::SigBit>()) != 0) {
+ buckets[std::vector<RTLIL::SigBit>()].push_back(RTLIL::SigBit(RTLIL::State::S0));
+ buckets[std::vector<RTLIL::SigBit>()].push_back(RTLIL::SigBit(RTLIL::State::S1));
+ }
+
std::vector<std::vector<equiv_bit_t>> equiv;
for (auto &bucket : buckets)
{