aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-08-14 10:42:18 -0700
committerGitHub <noreply@github.com>2019-08-14 10:42:18 -0700
commite2797f13084931b55d7f1759cdedfecd9eb91268 (patch)
treef23296adb386bd6e69674bb7dd37b54eeda04035
parent19d6b8846f55b4c7be705619f753bec86deadac8 (diff)
parent0e128510c0f4441014dd8e07fe820efe0304f28a (diff)
downloadyosys-e2797f13084931b55d7f1759cdedfecd9eb91268.tar.gz
yosys-e2797f13084931b55d7f1759cdedfecd9eb91268.tar.bz2
yosys-e2797f13084931b55d7f1759cdedfecd9eb91268.zip
Merge pull request #1294 from YosysHQ/revert-1288-eddie/fix_1284
Revert "Since $_ANDNOT_ is not symmetric, do not sort leaves"
-rw-r--r--passes/techmap/extract_fa.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/passes/techmap/extract_fa.cc b/passes/techmap/extract_fa.cc
index befaf68a4..b541ceb6b 100644
--- a/passes/techmap/extract_fa.cc
+++ b/passes/techmap/extract_fa.cc
@@ -153,10 +153,12 @@ struct ExtractFaWorker
}
}
- void check_partition(SigBit root, const pool<SigBit> &leaves)
+ void check_partition(SigBit root, pool<SigBit> &leaves)
{
if (config.enable_ha && GetSize(leaves) == 2)
{
+ leaves.sort();
+
SigBit A = SigSpec(leaves)[0];
SigBit B = SigSpec(leaves)[1];
@@ -194,6 +196,8 @@ struct ExtractFaWorker
if (config.enable_fa && GetSize(leaves) == 3)
{
+ leaves.sort();
+
SigBit A = SigSpec(leaves)[0];
SigBit B = SigSpec(leaves)[1];
SigBit C = SigSpec(leaves)[2];
@@ -233,7 +237,7 @@ struct ExtractFaWorker
}
}
- void find_partitions(SigBit root, const pool<SigBit> &leaves, pool<const pool<SigBit>> &cache, int maxdepth, int maxbreadth)
+ void find_partitions(SigBit root, pool<SigBit> &leaves, pool<pool<SigBit>> &cache, int maxdepth, int maxbreadth)
{
if (cache.count(leaves))
return;
@@ -289,8 +293,8 @@ struct ExtractFaWorker
continue;
SigBit root = it.first;
- const pool<SigBit> leaves = { root };
- pool<const pool<SigBit>> cache;
+ pool<SigBit> leaves = { root };
+ pool<pool<SigBit>> cache;
if (config.verbose)
log(" checking %s\n", log_signal(it.first));