aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-07-19 14:40:57 -0700
committerEddie Hung <eddie@fpgeh.com>2019-07-19 14:40:57 -0700
commit09beeee38a5af767f70d24e86c976e43b1b27547 (patch)
treec5655a7c18ef02dc8a90e8c166511d6d85851444 /passes/opt
parentc926eeb43a9c42a0ecc34871f383f4181b7a45f9 (diff)
downloadyosys-09beeee38a5af767f70d24e86c976e43b1b27547.tar.gz
yosys-09beeee38a5af767f70d24e86c976e43b1b27547.tar.bz2
yosys-09beeee38a5af767f70d24e86c976e43b1b27547.zip
Try and fix again
Diffstat (limited to 'passes/opt')
-rw-r--r--passes/opt/wreduce.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/passes/opt/wreduce.cc b/passes/opt/wreduce.cc
index 908a85d5b..22af0bd8b 100644
--- a/passes/opt/wreduce.cc
+++ b/passes/opt/wreduce.cc
@@ -372,13 +372,12 @@ struct WreduceWorker
int i;
for (i = 0; i < GetSize(sig); i++) {
- if (B.at(i, Sx) != S0 && (sub || A.at(i, Sx) != S0))
- break;
- if (B[i] == S0)
+ if (B.at(i, Sx) == S0 && A.at(i, Sx) != Sx)
module->connect(sig[i], A[i]);
- else if (A[i] == S0)
+ else if (!sub && A.at(i, Sx) == S0 && B.at(i, Sx) != Sx)
module->connect(sig[i], B[i]);
- else log_abort();
+ else
+ break;
}
if (i > 0) {
cell->setPort("\\A", A.extract(i, -1));