aboutsummaryrefslogtreecommitdiffstats
path: root/passes/proc
diff options
context:
space:
mode:
authorwhitequark <whitequark@whitequark.org>2019-01-18 23:22:02 +0000
committerwhitequark <whitequark@whitequark.org>2019-01-18 23:22:19 +0000
commit95b6c3588222564b86cfa73f0601be44e3af5786 (patch)
tree782154b88c14c839bd7640fd144d16f94a594062 /passes/proc
parentf3556e9f7ac6947be440a51699af773655de4911 (diff)
downloadyosys-95b6c3588222564b86cfa73f0601be44e3af5786.tar.gz
yosys-95b6c3588222564b86cfa73f0601be44e3af5786.tar.bz2
yosys-95b6c3588222564b86cfa73f0601be44e3af5786.zip
proc_clean: fix fully def check to consider compare/signal length.
Fixes #790.
Diffstat (limited to 'passes/proc')
-rw-r--r--passes/proc/proc_clean.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/passes/proc/proc_clean.cc b/passes/proc/proc_clean.cc
index 3919e4b9c..0e2f95226 100644
--- a/passes/proc/proc_clean.cc
+++ b/passes/proc/proc_clean.cc
@@ -82,9 +82,15 @@ void proc_clean_switch(RTLIL::SwitchRule *sw, RTLIL::CaseRule *parent, bool &did
{
if (max_depth != 0)
proc_clean_case(cs, did_something, count, max_depth-1);
+ int size = 0;
for (auto cmp : cs->compare)
- if (!cmp.is_fully_def())
+ {
+ size += cmp.size();
+ if (cmp.is_fully_def())
all_fully_def = false;
+ }
+ if (sw->signal.size() != size)
+ all_fully_def = false;
}
if (all_fully_def)
{