aboutsummaryrefslogtreecommitdiffstats
path: root/frontend
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2022-02-26 15:17:46 +0000
committergatecat <gatecat@ds0.me>2022-02-27 13:47:05 +0000
commit86699b42f619960bfefd4d0b479dd44a90527ea4 (patch)
tree06997246ae104b75ce472215fcee3ba37ee5c50c /frontend
parent434a9737bb459189b463c8768454ea6c0e151406 (diff)
downloadnextpnr-86699b42f619960bfefd4d0b479dd44a90527ea4.tar.gz
nextpnr-86699b42f619960bfefd4d0b479dd44a90527ea4.tar.bz2
nextpnr-86699b42f619960bfefd4d0b479dd44a90527ea4.zip
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 <gatecat@ds0.me>
Diffstat (limited to 'frontend')
-rw-r--r--frontend/frontend_base.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/frontend/frontend_base.h b/frontend/frontend_base.h
index 8ac61bbe..a2ac219c 100644
--- a/frontend/frontend_base.h
+++ b/frontend/frontend_base.h
@@ -690,7 +690,7 @@ template <typename FrontendType> struct GenericFrontend
// Combine users
for (auto &usr : mergee->users) {
usr.cell->ports[usr.port].net = base;
- base->users.push_back(usr);
+ usr.cell->ports[usr.port].user_idx = base->users.add(usr);
}
// Point aliases to the new net
for (IdString alias : mergee->aliases) {