diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-12-31 16:34:27 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-12-31 16:37:40 +0100 |
commit | 0a840dd88334c382314db3aafc2f1da2a1969df2 (patch) | |
tree | ca9d1482ef4312d8449a64cf8edfd0f18582ba14 | |
parent | e09e49ca5415d721b395fa5de4124cca50a6908b (diff) | |
download | yosys-0a840dd88334c382314db3aafc2f1da2a1969df2.tar.gz yosys-0a840dd88334c382314db3aafc2f1da2a1969df2.tar.bz2 yosys-0a840dd88334c382314db3aafc2f1da2a1969df2.zip |
Fix handling of (* keep *) wires in wreduce
Signed-off-by: Clifford Wolf <clifford@clifford.at>
-rw-r--r-- | passes/opt/wreduce.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/passes/opt/wreduce.cc b/passes/opt/wreduce.cc index 0164f58d6..8063b86a6 100644 --- a/passes/opt/wreduce.cc +++ b/passes/opt/wreduce.cc @@ -235,8 +235,11 @@ struct WreduceWorker } else { while (GetSize(sig) > 0) { - auto info = mi.query(sig[GetSize(sig)-1]); + auto bit = sig[GetSize(sig)-1]; + if (keep_bits.count(bit)) + break; + auto info = mi.query(bit); if (info->is_output || GetSize(info->ports) > 1) break; |