3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-06-06 14:13:23 +00:00

Speed up TopoSort. The main sorting algorithm implementation in TopoSort::sort_worker is 11-12x faster. Overall, the complete sequence of building the graph and sorting is about 2.5-3x faster. The overall impact in e.g. the replace_const_cells optimization pass is a ~25% speedup. End-to-end impact on our synthesis flow is about 3%.

This commit is contained in:
Rasmus Munk Larsen 2023-09-20 15:49:05 -07:00
parent 8fb807cd24
commit e0042bdff7
5 changed files with 126 additions and 79 deletions

View file

@ -1032,7 +1032,7 @@ struct ShareWorker
}
bool found_scc = !toposort.sort();
topo_cell_drivers = std::move(toposort.database);
topo_cell_drivers = toposort.get_database();
if (found_scc && toposort.analyze_loops)
for (auto &loop : toposort.loops) {