3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-07-15 11:45:41 +00:00
yosys/passes
Andreas Wendleder f2d648e499
autoname: avoid O(iterations x module size) full rescan
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.
2026-07-09 11:22:32 +02:00
..
cmds autoname: avoid O(iterations x module size) full rescan 2026-07-09 11:22:32 +02:00
equiv equiv_opt: Add ignore-unknown-cells 2026-06-23 10:54:00 +12:00
fsm Migrate build system to CMake 2026-06-03 08:58:10 +00:00
hierarchy Merge pull request #5886 from YosysHQ/nella/fix-signedness-5745 2026-06-18 16:50:22 +00:00
memory Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
opt Merge pull request #5842 from YosysHQ/nella/opt_dff_elim_improvements 2026-07-06 12:02:50 +00:00
pmgen Migrate build system to CMake 2026-06-03 08:58:10 +00:00
proc End of file fix 2026-06-23 07:23:41 +02:00
sat Remove leftover use of log_id 2026-06-24 08:04:48 +02:00
techmap Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
tests End of file fix 2026-06-23 07:23:41 +02:00
CMakeLists.txt Migrate build system to CMake 2026-06-03 08:58:10 +00:00