3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-07-19 13:45:48 +00:00
Commit graph

966 commits

Author SHA1 Message Date
Mohamed Gaber
e58125b605
Merge remote-tracking branch 'upstream/main' into silimate 2026-06-09 16:22:51 +03:00
Miodrag Milanovic
a599999d1f Fixed warnings found by gcc-16 2026-06-03 13:09:38 +02:00
Catherine
a727e7f6e7 Migrate build system to CMake
See #5895 for details.

This commit does not include CI or documentation changes.
2026-06-03 08:58:10 +00:00
Akash Levy
b3ea5770cd opt_argmax pass 2026-06-02 04:11:17 -07:00
Akash Levy
0c3446e8af Fixups for Greptile 2026-06-01 19:03:52 -07:00
Akash Levy
9cc69a3c49 Improvement to opt_balance_tree 2026-06-01 17:56:44 -07:00
Philippe Sauter
c89cfe1e6e peepopt: add shiftpow2 pattern
Rewrite power-of-two indexed word selects to $bmux when the shift
amount already carries the scale as low zero bits.

Keep the rule to non-overlapping selections and bound the generated
mux ways. Add regressions for aligned shifts, padding, signed
extension, and shiftmul handoff cases.
2026-05-31 02:01:32 +02:00
KrystalDelusion
4230ebff71
Merge pull request #5912 from YosysHQ/krys/opt_clean_docs
opt_clean: Set group for docs gen
2026-05-28 08:35:52 +00:00
Krystine Sherwin
680bb69d85
opt_clean: Set group for docs gen 2026-05-28 14:50:11 +12:00
Akash Levy
6a8d800e63 Fixes for filtering small cases and catching more larger ones with trickier signatures 2026-05-27 03:40:44 -07:00
Akash Levy
69edb27ab3 muxpack fix 2026-05-27 03:07:24 -07:00
Akash Levy
5c3fbd2d63 Merge branch 'main' into opt_addcin 2026-05-27 01:52:11 -07:00
Akash Levy
89717069fe Fixup 2026-05-27 01:51:54 -07:00
Akash Levy
46a697e608
Merge pull request #169 from Silimate/opt_andor_pmux
opt_andor_pmux pass
2026-05-27 01:03:58 -07:00
Akash Levy
e39395132d opt_addcin pass 2026-05-27 00:39:25 -07:00
Akash Levy
42d257e523 opt_andor_pmux pass 2026-05-27 00:11:54 -07:00
Akash Levy
5c3c342ea0 Fixup NEW_ID usage 2026-05-27 00:09:12 -07:00
Akash Levy
9ded74751c
Update passes/opt/opt.cc
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-05-26 06:38:27 -07:00
Akash Levy
9a225025d4 opt -max_iter 2026-05-26 06:23:40 -07:00
Akash Levy
a5617f90ac Speed fix 2026-05-20 15:42:26 -07:00
Akash Levy
7eff462881 Make opt_prienc a bit faster 2026-05-20 13:33:19 -07:00
Akash Levy
2ba8a5cac6 opt parallel prefix and priority encoders 2026-05-20 12:14:50 -07:00
Akash Levy
b4e94d9f13 modshr onehot pass 2026-05-20 01:25:28 -07:00
Emil J
e87a9bd9a7
Merge pull request #5888 from mikesinouye/pmux
opt_muxtree: reuse knowledge_t and pass by reference
2026-05-15 16:21:33 +00:00
Miodrag Milanović
36eceed720
Merge pull request #5862 from codexplorer-fish/cleaning-up-log-id
Cleaning up log_id()
2026-05-15 11:07:43 +00:00
Miodrag Milanovic
58df27ce7c Refactor uses of log_id in pgm files 2026-05-14 12:21:32 +02:00
Mike Inouye
e20a57b09e
Reuse knowledge_t and pass by reference 2026-05-13 10:57:18 -07:00
Emil J. Tywoniak
3a150f2883 remove unused hashlib containers 2026-05-12 12:52:10 +02:00
Codexplorer
e41b969da2 Refactored uses of log_id() 2026-05-08 20:59:24 -07:00
Akash Levy
b9fa4f85ba Ignore DW in opt_hier/opt_boundary 2026-05-04 12:52:47 -07:00
Emil J. Tywoniak
7fa660fc60 share: remove -force 2026-05-04 21:34:19 +02:00
Akash Levy
ebf269bdf0 opt_boundary improvements and add to opt pass as option 2026-05-04 10:51:04 -07:00
Stan Lee
325d9b0c0e edit naming 2026-04-24 17:14:42 -07:00
Emil J. Tywoniak
e0b833ac1a opt_muxtree: dense knowledge 2026-04-24 11:07:58 +02:00
Emil J. Tywoniak
4abaca273e opt_reduce: further optimization 2026-04-24 11:07:58 +02:00
Akash Levy
8485d57841 opt_expr for constant comparisons 2026-04-20 02:03:35 -07:00
Emil J. Tywoniak
4f4672d17b muxpack: fix wide Y port handling 2026-03-19 00:12:49 +01:00
Emil J
c8f715fed8
Merge pull request #5664 from rocallahan/parallel-opt-clean
Parallelize `opt_clean` pass
2026-03-16 09:52:34 +00:00
Miodrag Milanovic
52533b0d1c Update opt_lut_ins and stat for analogdevices and remove ecp5 2026-03-06 09:10:36 +01:00
Robert O'Callahan
9c51ba1b09 Reduce opt_clean parallelism 2026-03-06 02:20:16 +00:00
Robert O'Callahan
8d8c05b338 Fix OptCleanPass usage of CleanRunContext to avoid constructing extra KeepCache and ParallelDispatchThreadPool 2026-03-06 02:20:16 +00:00
Robert O'Callahan
32f5044eaf Clarify "Not passing module as function argument" comment
This correct in terms of intent, it's just not fully enforced due to const laundering.
2026-03-06 02:20:16 +00:00
Emil J. Tywoniak
70cc2d67fd opt_clean: refactor 2026-03-06 02:20:14 +00:00
Robert O'Callahan
3603cd52a0 Pass the module Subpool to rmunused_module_signals and parallelize that function 2026-03-06 02:20:08 +00:00
Robert O'Callahan
19a7c8fcf3 Pass the module Subpool to rmunused_module_cells and parallelize that function 2026-03-06 02:20:08 +00:00
Robert O'Callahan
8e044d1045 Pass the module Subpool to rmunused_module_init and parallelize that function 2026-03-06 02:20:06 +00:00
Robert O'Callahan
a7437c636d Pass the toplevel thread pool to rmunused_module, create a Subpool, and parallelize remove_temporary_cells 2026-03-06 02:05:46 +00:00
Robert O'Callahan
887c32cb54 Create a toplevel ParallelDispatchThreadPool and parallelize keep_cache_t::scan_module() with it 2026-03-06 02:05:46 +00:00
Robert O'Callahan
72a21fe01d 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-03-06 02:05:43 +00:00
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