aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt/share.cc
diff options
context:
space:
mode:
Diffstat (limited to 'passes/opt/share.cc')
-rw-r--r--passes/opt/share.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/passes/opt/share.cc b/passes/opt/share.cc
index 2496f15d3..cb7510553 100644
--- a/passes/opt/share.cc
+++ b/passes/opt/share.cc
@@ -27,6 +27,8 @@
USING_YOSYS_NAMESPACE
PRIVATE_NAMESPACE_BEGIN
+typedef RTLIL::IdString::compare_ptr_by_name<RTLIL::Cell> cell_ptr_cmp;
+
struct ShareWorkerConfig
{
int limit;
@@ -52,8 +54,8 @@ struct ShareWorker
std::set<RTLIL::Cell*> recursion_state;
SigMap topo_sigmap;
- std::map<RTLIL::Cell*, std::set<RTLIL::Cell*>> topo_cell_drivers;
- std::map<RTLIL::SigBit, std::set<RTLIL::Cell*>> topo_bit_drivers;
+ std::map<RTLIL::Cell*, std::set<RTLIL::Cell*, cell_ptr_cmp>, cell_ptr_cmp> topo_cell_drivers;
+ std::map<RTLIL::SigBit, std::set<RTLIL::Cell*, cell_ptr_cmp>> topo_bit_drivers;
std::vector<std::pair<RTLIL::SigBit, RTLIL::SigBit>> exclusive_ctrls;
@@ -937,7 +939,7 @@ struct ShareWorker
ct.setup_internals();
ct.setup_stdcells();
- TopoSort<RTLIL::Cell*> toposort;
+ TopoSort<RTLIL::Cell*, cell_ptr_cmp> toposort;
toposort.analyze_loops = false;
topo_sigmap.set(module);