From 86699b42f619960bfefd4d0b479dd44a90527ea4 Mon Sep 17 00:00:00 2001 From: gatecat Date: Sat, 26 Feb 2022 15:17:46 +0000 Subject: Switch to potentially-sparse net users array This uses a new data structure for net.users that allows gaps, so removing a port from a net is no longer an O(n) operation on the number of users the net has. Signed-off-by: gatecat --- fpga_interchange/arch.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'fpga_interchange/arch.cc') diff --git a/fpga_interchange/arch.cc b/fpga_interchange/arch.cc index 917af85e..a5e802d3 100644 --- a/fpga_interchange/arch.cc +++ b/fpga_interchange/arch.cc @@ -1377,7 +1377,7 @@ void Arch::merge_constant_nets() } NPNR_ASSERT(net->driver.port == gnd_cell_port); - std::vector users_copy = net->users; + indexed_store users_copy = net->users; for (const PortRef &port_ref : users_copy) { IdString cell = port_ref.cell->name; disconnectPort(cell, port_ref.port); @@ -1400,7 +1400,7 @@ void Arch::merge_constant_nets() } NPNR_ASSERT(net->driver.port == vcc_cell_port); - std::vector users_copy = net->users; + indexed_store users_copy = net->users; for (const PortRef &port_ref : users_copy) { IdString cell = port_ref.cell->name; disconnectPort(cell, port_ref.port); -- cgit v1.2.3