aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-12-31 16:34:27 +0100
committerClifford Wolf <clifford@clifford.at>2018-12-31 16:37:40 +0100
commit0a840dd88334c382314db3aafc2f1da2a1969df2 (patch)
treeca9d1482ef4312d8449a64cf8edfd0f18582ba14 /passes/opt
parente09e49ca5415d721b395fa5de4124cca50a6908b (diff)
downloadyosys-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>
Diffstat (limited to 'passes/opt')
-rw-r--r--passes/opt/wreduce.cc5
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;