yosys/passes/opt
Robert O'Callahan c2bb7d6a82 Make `keep_cache_t` process all modules up-front instead of on-demand
We will want to query `keep_cache` from parallel threads. If we compute
the results on-demand, that means we need synchronization for cache
access in those queries, which adds complexity and overhead. Instead, prefill
the cache with the status of all relevant modules. Note that this doesn't
actually do more work --- we always consult `keep_cache` for all cells of
all selected modules, so scanning all those cells and determining the kept
status of all dependency modules is always required.

Later in this PR we're going to parallelize `scan_module` itself, and that's also
much easier to do when no other parallel threads are running.
2026-03-06 02:05:04 +00:00
..
.gitignore pmgen: Move passes out of pmgen folder 2025-01-31 15:18:28 +13:00
Makefile.inc Add opt_balance_tree pass for timing optimization 2026-01-13 14:20:11 -08:00
muxpack.cc rtlil: represent Const strings as std::string 2024-10-14 06:28:12 +02:00
opt.cc Move `Design::sort()` calls out of `opt` and `opt_clean` passes into the synth passes that need them. 2026-01-23 01:14:35 +00:00
opt_balance_tree.cc opt_balance_tree: mark experimental 2026-01-19 12:01:25 +01:00
opt_clean.cc Make `keep_cache_t` process all modules up-front instead of on-demand 2026-03-06 02:05:04 +00:00
opt_demorgan.cc opt_demorgan: skip zero width cells 2024-09-24 14:24:59 +01:00
opt_dff.cc OptDff more accurate ctrl/pattern desc. 2026-01-26 22:19:36 +01:00
opt_expr.cc newcelltypes: TurboCellTypes -> StaticCellTypes 2026-03-04 12:22:14 +01:00
opt_ffinv.cc Instead of using builtin_ff_cell_types() directly, go through a method Cell::is_builtin_ff() 2025-09-17 03:24:19 +00:00
opt_hier.cc opt_hier: Adjust messages 2025-09-29 12:27:27 +02:00
opt_lut.cc Remove .c_str() from parameters to log_debug() 2025-09-23 19:10:33 +12:00
opt_lut_ins.cc Remove .c_str() from log_cmd_error() and log_file_error() parameters 2025-09-16 22:59:08 +00:00
opt_mem.cc Update passes/opt to avoid bits() 2025-09-16 03:17:23 +00:00
opt_mem_feedback.cc kernel/mem: Introduce transparency masks. 2021-08-11 00:04:16 +02:00
opt_mem_priority.cc opt_mem_priority: Fix non-ascii char in help message. 2021-12-09 00:56:14 +01:00
opt_mem_widen.cc Add opt_mem_widen pass. 2021-08-14 01:06:23 +02:00
opt_merge.cc Parallelize `opt_merge`. 2026-01-08 04:21:39 +00:00
opt_muxtree.cc Use digit separators for large decimal integers 2026-01-13 16:38:12 +01:00
opt_reduce.cc Remove .c_str() calls from log()/log_error() 2025-09-11 20:59:37 +00:00
opt_share.cc opt_share: Fix input confusion with ANDNOT, ORNOT gates 2023-07-20 20:58:52 +01:00
peepopt.cc Add `muldiv_c` peepopt pass 2025-04-30 08:06:59 -07:00
peepopt_formal_clockgateff.pmg pmgen: Move passes out of pmgen folder 2025-01-31 15:18:28 +13:00
peepopt_muldiv.pmg pmgen: Move passes out of pmgen folder 2025-01-31 15:18:28 +13:00
peepopt_muldiv_c.pmg Add `muldiv_c` peepopt pass 2025-04-30 08:06:59 -07:00
peepopt_shiftadd.pmg pmgen: Move passes out of pmgen folder 2025-01-31 15:18:28 +13:00
peepopt_shiftmul_left.pmg pmgen: Move passes out of pmgen folder 2025-01-31 15:18:28 +13:00
peepopt_shiftmul_right.pmg pmgen: Move passes out of pmgen folder 2025-01-31 15:18:28 +13:00
pmux2shiftx.cc Update passes/opt to avoid bits() 2025-09-16 03:17:23 +00:00
rmports.cc Remove .c_str() calls from log()/log_error() 2025-09-11 20:59:37 +00:00
share.cc share: use newcelltypes 2026-03-04 12:22:14 +01:00
wreduce.cc Update passes/opt to avoid bits() 2025-09-16 03:17:23 +00:00