3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-02-14 12:51:48 +00:00
Commit graph

16620 commits

Author SHA1 Message Date
Robert O'Callahan
56c0da2f43 Add unit tests for ConcurrentQueue and ThreadPool 2026-02-08 22:52:17 +00:00
Robert O'Callahan
f34c6fec19 Add unit-tests for ParallelDispatchThread and friends 2026-02-08 22:52:17 +00:00
Robert O'Callahan
a1aa9ab4aa Make gmock available in test environment 2026-02-08 22:52:17 +00:00
Robert O'Callahan
fb05c13b33 Pass the module Subpool to rmunused_module_signals and parallelize that function 2026-02-08 22:52:17 +00:00
Robert O'Callahan
e5cf1a90f1 Add test that connects a wire with init to a constant 2026-02-08 22:52:17 +00:00
Robert O'Callahan
c81d7b00da Pass the module Subpool to rmunused_module_cells and parallelize that function 2026-02-08 22:52:17 +00:00
Robert O'Callahan
e4dde705dc Pass the module Subpool to rmunused_module_init and parallelize that function 2026-02-05 21:22:29 +00:00
Robert O'Callahan
84932e3207 Pass the toplevel thread pool to rmunused_module, create a Subpool, and parallelize remove_temporary_cells 2026-02-05 21:22:29 +00:00
Robert O'Callahan
9990bda187 Create a toplevel ParallelDispatchThreadPool and parallelize keep_cache_t::scan_module() with it 2026-02-05 21:22:29 +00:00
Robert O'Callahan
c10374c771 Introduce RmStats struct to encapsulate removal statistics
Turns out this is not strictly necessary for this PR but it's
still a good thing to do and makes it clearer that the stats
are not modified in a possibly racy way.
2026-02-05 21:22:29 +00:00
Robert O'Callahan
cba49642aa 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-02-05 21:22:29 +00:00
Robert O'Callahan
c8298aae02 Parallelize Design::check() 2026-02-05 21:22:29 +00:00
Robert O'Callahan
63aa31172c Parallelize collect_garbage() 2026-02-05 21:22:29 +00:00
Robert O'Callahan
e551e30fa3 Add FfInitVals::set_parallel() method
We'll use this later in the PR.
2026-02-05 21:22:29 +00:00
Robert O'Callahan
d5950a6c03 Add MonotonicFlag
We'll use this later in the PR.
2026-02-05 21:22:29 +00:00
Robert O'Callahan
b18ca8710e Add ConcurrentWorkQueue
We'll use this later in the PR.
2026-02-05 21:22:29 +00:00
Robert O'Callahan
d0276169d3 Add ShardedHashSet
We'll use this later in the PR.
2026-02-05 21:22:29 +00:00
Robert O'Callahan
b06e903906 Add ShardedVector
We'll use this later in the PR.
2026-02-05 18:58:17 +00:00
Robert O'Callahan
0004708177 Add ParallelDispatchThreadPool
We'll use this later in the PR.
2026-02-05 18:58:17 +00:00
Robert O'Callahan
fb24763a15 Add work_pool_size, IntRange, item_range_for_worker, and ThreadIndex
We'll use these later in this PR.
2026-02-05 18:58:17 +00:00
Robert O'Callahan
9e523e2fd7 Work around std::reverse miscompilation with empty range
This causes problems when compiling with fuzzing instrumenation enabled.
2026-02-05 18:58:17 +00:00
Robert O'Callahan
3b563b877e Make log_error() work in a Multithreaded context.
`log_error()` causes an exit so we don't have to try too hard here. The main
thing is to ensure that we normally are able to exit without causing a stack
overflow due to recursive asserts about not being in a `Multithreaded` context.
2026-02-05 18:58:17 +00:00
Robert O'Callahan
81fd03c6e4 Add IdString::unescape() method
We've already talked about adding this as an alternative to `log_id()`, and we'll
need it later in this PR.
2026-02-05 18:58:17 +00:00
Emil J
8bbde80e02
Merge pull request #5631 from rocallahan/cleanup-compare-signals
Clean up `compare_signals()` in `opt_clean`
2026-02-04 17:45:05 +01:00
Emil J
2aa0e1d009
Merge pull request #5629 from rocallahan/remove-zero-wires
Avoid scanning entire module in `Module::remove()` if there are no wires to remove
2026-02-04 17:44:24 +01:00
Emil J
992e64342c
Merge pull request #5621 from rocallahan/remove-opt-sort
Remove `Design::sort()` calls from optimization passes
2026-02-04 16:55:56 +01:00
Miodrag Milanović
776b4d06a6
Merge pull request #5669 from YosysHQ/release/v0.62
Release version 0.62
2026-02-04 08:55:31 +01:00
Miodrag Milanovic
ddfa34d743 Next dev cycle 2026-02-04 08:54:38 +01:00
Robert O'Callahan
7326bb7d66
Only reuse ABC processes if we're using yosys-abc and it was built with ENABLE_READLINE
(cherry picked from commit 5054fd17d7)
2026-02-04 17:19:10 +13:00
Miodrag Milanovic
fc11754557 Release version 0.62 2026-02-03 12:09:24 +01:00
Miodrag Milanović
6dbe03f0f5
Merge pull request #5667 from Logikable/vhdl
Guard vhdl_file::UNDEFINED behind VERIFIC_VHDL_SUPPORT.
2026-02-03 07:59:52 +01:00
github-actions[bot]
153ddc0c84 Bump version 2026-02-03 00:33:37 +00:00
Sean Luchen
224549fb88 Guard vhdl_file::UNDEFINED behind VERIFIC_VHDL_SUPPORT.
Signed-off-by: Sean Luchen <seanluchen@google.com>
2026-02-02 15:26:03 -08:00
KrystalDelusion
414b1b6019
Merge pull request #5651 from rocallahan/abc-error-nonfatal
Handle ABC nonfatal "Error:" messages
2026-02-03 08:55:05 +13:00
Emil J
59653da599
Merge pull request #5609 from nataliakokoromyti/upstream-design-run-pass
Add Design::run_pass()
2026-02-02 19:30:18 +01:00
Miodrag Milanović
f5c8368f7a
Merge pull request #5662 from YosysHQ/update_abc
Update ABC as per 2026-02-02
2026-02-02 13:44:56 +01:00
Miodrag Milanovic
b88d6588bc Update ABC as per 2026-02-02 2026-02-02 11:25:57 +01:00
Miodrag Milanović
ac427a79b0
Merge pull request #5644 from nataliakokoromyti/upstream-linux-perf-unistd
Add unistd header for Linux
2026-01-30 08:17:43 +01:00
Miodrag Milanović
382b28acbe
Merge pull request #5648 from YosysHQ/verific_moreopts
verific: fixed -sv2017 option and added ability to set VHDL standard
2026-01-30 08:17:19 +01:00
Robert O'Callahan
9c56c93632 Add missing newlines to some 'log_error's 2026-01-30 01:52:19 +00:00
Robert O'Callahan
6af1b5b19c Don't treat ABC 'Error:' output as indicating a fatal error, since these messages aren't necessarily fatal 2026-01-30 01:52:19 +00:00
github-actions[bot]
106f289e31 Bump version 2026-01-30 00:30:58 +00:00
KrystalDelusion
5a4ad6a6d0
Merge pull request #5640 from YosysHQ/krys/fix_mod.py
Don't use `module mod_name(...)` style in cell libs
2026-01-30 11:40:07 +13:00
Emil J
a68fee1115
Merge pull request #5646 from rocallahan/debug-design_equal
Dump module details when `design_equal` fails
2026-01-29 18:57:24 +01:00
Natalia
61b1c3c75a use run_pass in ecp5 add/sub test 2026-01-29 02:42:23 -08:00
Natalia
7439d2489e add assertion to run_pass test 2026-01-29 02:23:07 -08:00
Miodrag Milanovic
b70f527c67 verific: fixed -sv2017 option and added ability to set VHDL standard if applicable 2026-01-29 10:32:30 +01:00
Miodrag Milanović
6ba8f3dc19
Merge pull request #5647 from YosysHQ/update_abc
ABC update (MINGW fix)
2026-01-29 10:12:25 +01:00
Miodrag Milanović
43db5c9488
Merge pull request #5645 from nataliakokoromyti/upstream-verific-mixed-sv-vhdl
Upstream verific mixed sv vhdl
2026-01-29 10:12:09 +01:00
Miodrag Milanovic
6007b68e9c ABC update (MINGW fix) 2026-01-29 09:30:12 +01:00