mirror of
https://github.com/YosysHQ/yosys
synced 2026-07-15 11:45:41 +00:00
AutonamePass rescanned every selected cell/wire from scratch on every iteration, and naming only propagates one hop per iteration, so cost scaled with O(iterations x module_size). On a large, fully flattened netlist with long dependency chains this meant multi-hour runtime and 40+ GB RSS. Likely the same issue as #5394, #4509 and #2816. Replace the full-rescan loop with a ModuleAutonamer that keeps a persistent worklist and only recomputes an object's proposal when a direct neighbor was just renamed, using precomputed adjacency. Same round-by-round batching as before, so the final naming is unchanged. Adds tests/various/autoname_scaling.sh, which checks a 10000-cell propagation chain still autonames within a time budget the old algorithm could not meet. |
||
|---|---|---|
| .. | ||
| cmds | ||
| equiv | ||
| fsm | ||
| hierarchy | ||
| memory | ||
| opt | ||
| pmgen | ||
| proc | ||
| sat | ||
| techmap | ||
| tests | ||
| CMakeLists.txt | ||