3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-03-01 19:26:55 +00:00
Commit graph

16705 commits

Author SHA1 Message Date
Emil J. Tywoniak
d2d97433b6 opt_clean: refactor 2026-02-27 14:17:58 +01:00
Emil J. Tywoniak
818aad7542 opt_clean: resolve TODOs 2026-02-26 01:41:22 +01:00
Emil J. Tywoniak
c17bbeb291 opt_clean: refactor 2026-02-25 13:55:06 +01:00
Emil J. Tywoniak
71af584530 opt_clean: refactor 2026-02-25 13:41:33 +01:00
Emil J. Tywoniak
89fdc05784 opt_clean: refactor 2026-02-25 13:38:44 +01:00
Emil J. Tywoniak
ff67ef6377 opt_clean: refactor 2026-02-24 15:41:47 +01:00
Emil J. Tywoniak
e4c7a8fdab .github: add gmock to build environment 2026-02-24 13:30:57 +01:00
Emil J. Tywoniak
ba3d62f8f1 opt_clean: fix out of tree build 2026-02-24 13:09:03 +01:00
Emil J. Tywoniak
d33acfe65f opt_clean: refactor 2026-02-24 13:03:16 +01:00
Emil J. Tywoniak
5d3b3ff18d opt_clean: refactor 2026-02-24 12:54:03 +01:00
Emil J. Tywoniak
930bd3acc5 opt_clean: refactor 2026-02-24 12:28:41 +01:00
Emil J. Tywoniak
60681ff126 opt_clean: refactor 2026-02-24 12:11:01 +01:00
Emil J. Tywoniak
e13f989234 opt_clean: refactor 2026-02-24 11:33:06 +01:00
Emil J. Tywoniak
90bd16f600 opt_clean: refactor 2026-02-24 10:39:26 +01:00
Emil J. Tywoniak
723258de2d opt_clean: refactor 2026-02-24 10:39:26 +01:00
Emil J. Tywoniak
ef536c4b1d opt_clean: refactor 2026-02-24 10:39:26 +01:00
Emil J. Tywoniak
17d667eab0 opt_clean: refactor 2026-02-24 10:39:26 +01:00
Emil J. Tywoniak
8dc9c48d4a opt_clean: refactor 2026-02-24 10:39:17 +01:00
Emil J. Tywoniak
97166d5aad opt_clean: refactor 2026-02-24 10:39:13 +01:00
Emil J. Tywoniak
187e91ad65 opt_clean: refactor 2026-02-24 10:39:13 +01:00
Emil J. Tywoniak
17688f053b opt_clean: refactor 2026-02-24 10:39:13 +01:00
Emil J. Tywoniak
090a0fd575 opt_clean: refactor 2026-02-24 10:39:13 +01:00
Emil J. Tywoniak
7d7978a929 opt_clean: more comments 2026-02-24 10:38:59 +01:00
Emil J. Tywoniak
9710be2f84 opt_clean: more comments 2026-02-24 10:38:59 +01:00
Emil J. Tywoniak
a5f554f00a opt_clean: add extra comments 2026-02-24 10:38:59 +01:00
Robert O'Callahan
7f1b4dcf99 Add 'init' attributes to RTLIL fuzzing 2026-02-17 03:25:44 +00:00
Robert O'Callahan
6b9f152a1a Add unit tests for ConcurrentWorkQueue 2026-02-17 03:25:44 +00:00
Robert O'Callahan
e2f939a93f Add some tests for ShardedHashSet 2026-02-17 03:25:44 +00:00
Robert O'Callahan
71c5b6269f Add unit tests for ConcurrentQueue and ThreadPool 2026-02-17 03:25:44 +00:00
Robert O'Callahan
722a4fc335 Add unit-tests for ParallelDispatchThread and friends 2026-02-17 03:25:44 +00:00
Robert O'Callahan
f2340639e8 Pass the module Subpool to rmunused_module_signals and parallelize that function 2026-02-17 03:24:52 +00:00
Robert O'Callahan
e2345d197b Add test that connects a wire with init to a constant 2026-02-17 03:24:52 +00:00
Robert O'Callahan
cbb5d8fa12 Pass the module Subpool to rmunused_module_cells and parallelize that function 2026-02-17 03:24:52 +00:00
Robert O'Callahan
e213437095 Pass the module Subpool to rmunused_module_init and parallelize that function 2026-02-17 03:24:51 +00:00
Robert O'Callahan
2659f32616 Pass the toplevel thread pool to rmunused_module, create a Subpool, and parallelize remove_temporary_cells 2026-02-17 03:24:51 +00:00
Robert O'Callahan
0a64402dde Create a toplevel ParallelDispatchThreadPool and parallelize keep_cache_t::scan_module() with it 2026-02-17 03:24:51 +00:00
Robert O'Callahan
20189460bd 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-17 03:24:51 +00:00
Robert O'Callahan
b153fc2d16 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-17 03:24:51 +00:00
Robert O'Callahan
6bf9fd3e1f Parallelize Design::check() 2026-02-17 03:24:51 +00:00
Robert O'Callahan
704d110560 Parallelize collect_garbage() 2026-02-17 03:24:51 +00:00
Robert O'Callahan
937c7ceb4d Add FfInitVals::set_parallel() method
We'll use this later in the PR.
2026-02-17 03:24:51 +00:00
Robert O'Callahan
8ced93b176 Add MonotonicFlag
We'll use this later in the PR.
2026-02-17 03:24:51 +00:00
Robert O'Callahan
1a461f95c5 Add ConcurrentWorkQueue
We'll use this later in the PR.
2026-02-17 03:24:51 +00:00
Robert O'Callahan
6182db64d2 Add ShardedHashSet
We'll use this later in the PR.
2026-02-17 03:24:51 +00:00
Robert O'Callahan
8a30051fc2 Add ShardedVector
We'll use this later in the PR.
2026-02-17 03:24:51 +00:00
Robert O'Callahan
d711cf6185 Add ParallelDispatchThreadPool
We'll use this later in the PR.
2026-02-17 03:24:51 +00:00
Robert O'Callahan
61482d30e5 Add work_pool_size, IntRange, item_range_for_worker, and ThreadIndex
We'll use these later in this PR.
2026-02-17 03:24:51 +00:00
Robert O'Callahan
ae569486a0 Work around std::reverse miscompilation with empty range
This causes problems when compiling with fuzzing instrumenation enabled.
2026-02-17 03:24:51 +00:00
Robert O'Callahan
af3bb9751f 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-17 03:24:51 +00:00
Robert O'Callahan
577191e44d 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-17 03:24:51 +00:00