Revert "Only sort leaves on non-ANDNOT/ORNOT cells"
authorEddie Hung <eddie@fpgeh.com>
Wed, 14 Aug 2019 22:23:25 +0000 (15:23 -0700)
committerEddie Hung <eddie@fpgeh.com>
Wed, 14 Aug 2019 22:23:25 +0000 (15:23 -0700)
This reverts commit 5ec5f6dec7d4cdcfd9e1a2cda999886605778400.

passes/techmap/extract_fa.cc

index 6e45c47d4ded9042e70a1f3353fc115a05a6e7aa..b541ceb6b8a7723199c56fefe8d2eb2ff16794cc 100644 (file)
@@ -153,12 +153,11 @@ struct ExtractFaWorker
                }
        }
 
-       void check_partition(SigBit root, pool<SigBit> &leaves, IdString cell_type)
+       void check_partition(SigBit root, pool<SigBit> &leaves)
        {
                if (config.enable_ha && GetSize(leaves) == 2)
                {
-                       if (!cell_type.in("$_ANDNOT_", "$_ORNOT_"))
-                               leaves.sort();
+                       leaves.sort();
 
                        SigBit A = SigSpec(leaves)[0];
                        SigBit B = SigSpec(leaves)[1];
@@ -238,7 +237,7 @@ struct ExtractFaWorker
                }
        }
 
-       void find_partitions(SigBit root, pool<SigBit> &leaves, pool<pool<SigBit>> &cache, int maxdepth, int maxbreadth, IdString cell_type)
+       void find_partitions(SigBit root, pool<SigBit> &leaves, pool<pool<SigBit>> &cache, int maxdepth, int maxbreadth)
        {
                if (cache.count(leaves))
                        return;
@@ -249,7 +248,7 @@ struct ExtractFaWorker
                // log("\n");
 
                cache.insert(leaves);
-               check_partition(root, leaves, cell_type);
+               check_partition(root, leaves);
 
                if (maxdepth == 0)
                        return;
@@ -271,7 +270,7 @@ struct ExtractFaWorker
                        if (GetSize(new_leaves) > maxbreadth)
                                continue;
 
-                       find_partitions(root, new_leaves, cache, maxdepth-1, maxbreadth, cell_type);
+                       find_partitions(root, new_leaves, cache, maxdepth-1, maxbreadth);
                }
        }
 
@@ -303,7 +302,7 @@ struct ExtractFaWorker
                        count_func2 = 0;
                        count_func3 = 0;
 
-                       find_partitions(root, leaves, cache, config.maxdepth, config.maxbreadth, it.second->type);
+                       find_partitions(root, leaves, cache, config.maxdepth, config.maxbreadth);
 
                        if (config.verbose && count_func2 > 0)
                                log("    extracted %d two-input functions\n", count_func2);