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