Commit Graph

16675 Commits

Author SHA1 Message Date
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
Miodrag Milanović ac96f318ef
Merge pull request #5676 from YosysHQ/emil/unit-test-by-default
Run unit tests on make test
2026-02-13 15:02:50 +01:00
github-actions[bot] e2f0c4d9a0 Bump version 2026-02-13 00:35:27 +00:00
Miodrag Milanovic bb7aa7d208 Cleanup of yml files 2026-02-12 14:56:45 +01:00
Miodrag Milanović e4b32d6aae
Merge pull request #5670 from max-kudinov/gowin_mult
Gowin: Add DSP inference for GW1N and GW2A
2026-02-12 14:30:27 +01:00
Miodrag Milanovic e5b3e9fc1f This one should run only vanilla-tests 2026-02-12 14:08:49 +01:00
Miodrag Milanovic c6e48f4bea These are tests from other Makefile 2026-02-12 14:06:08 +01:00
Miodrag Milanovic cc79c6a761 Support building out of tree, but keep always in tests/unit 2026-02-12 12:17:07 +01:00
Maxim Kudinov b055ea05fd gowin: dsp: Add mult inference tests 2026-02-12 14:12:32 +03:00
Maxim Kudinov 5b94a97fb3 gowin: synth_gowin: Add -nodsp option 2026-02-12 13:58:47 +03:00
Maxim Kudinov 542b29fa6a gowin: synth_gowin: Merge flatten label with coarse 2026-02-12 13:58:47 +03:00
Maxim Kudinov 5ea073d45e gowin: format MULT instances 2026-02-12 13:35:49 +03:00
Miodrag Milanović 9b9e7b5ae3
Merge pull request #3389 from uwsampl/support-parameter-default-values-in-json-frontend-and-verilog-backend
Support parameter default values in JSON frontend and Verilog backend
2026-02-12 10:17:56 +01:00
Miodrag Milanović ce5321da8c
Merge pull request #5682 from YosysHQ/update_abc
Update ABC as per 2026-02-11
2026-02-12 08:05:23 +01:00
github-actions[bot] 1319112913 Bump version 2026-02-12 00:32:36 +00:00
Gus Smith 7a0774c3bb Don't dump params by default 2026-02-11 08:33:39 -08:00
Emil J b890b1b43f
Merge pull request #5678 from YosysHQ/emil/remove-dockerfile
Dockerfile: remove
2026-02-11 17:32:21 +01:00
Miodrag Milanovic a13b5c4211 Update ABC as per 2026-02-11 2026-02-11 17:30:08 +01:00
Gus Smith be9c857e72 Fix ABC after merge 2026-02-11 08:12:38 -08:00
Gus Smith b0021e5b10 Add tests 2026-02-11 08:10:57 -08:00
Gus Smith 1ede98797f Update backends/verilog/verilog_backend.cc
Co-authored-by: Marcelina Kościelnicka <236399+mwkmwkmwk@users.noreply.github.com>
2026-02-11 08:10:57 -08:00
Gus Smith 9ad7aed4a5 Update backends/verilog/verilog_backend.cc
Co-authored-by: Marcelina Kościelnicka <236399+mwkmwkmwk@users.noreply.github.com>
2026-02-11 08:10:57 -08:00
Gus Smith 12ace45b89 Support param. default values in JSON FE and SV BE 2026-02-11 08:10:55 -08:00
Gus Smith e3db8fee6f
Merge pull request #3459 from gs-jgj/feature_dsp48e1_presub
Add support for subtract in preadder
2026-02-11 08:02:18 -08:00
Gus Smith 8ab105ac28
Merge pull request #4303 from Coloquinte/sat_choice
Infrastructure to run a Sat solver as a command
2026-02-11 06:54:53 -08:00
Emil J fba29ea8f1
Merge pull request #5679 from YosysHQ/emil/abc9-remove-liberty
abc9: remove -liberty
2026-02-11 12:36:29 +01:00
Emil J. Tywoniak 915912cc76 abc9: remove -dont_use 2026-02-11 11:39:09 +01:00
Emil J. Tywoniak c4094e457b abc9: remove -genlib, -constr 2026-02-11 11:34:54 +01:00
Emil J. Tywoniak fe613f29b9 .github: move gtest to build dependencies 2026-02-11 11:33:27 +01:00
Emil J. Tywoniak 5a46106a46 abc9: remove -liberty 2026-02-11 01:04:50 +01:00
Emil J. Tywoniak a6a07fb39c Dockerfile: remove 2026-02-11 00:59:12 +01:00