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