Emil J. Tywoniak
ea41e61a36
utils: add BitGrouper for shared bit-partition logic
2026-06-10 14:53:13 +02:00
Emil J. Tywoniak
d952b04e54
opt_expr: convert remaining rewrites to patcher
2026-06-10 14:53:05 +02:00
Emil J. Tywoniak
e2a77db87a
opt_expr: evener morer patcherer
2026-06-10 14:53:03 +02:00
Emil J. Tywoniak
edeb649154
opt_expr: even more patcher
2026-06-10 14:53:02 +02:00
Emil J. Tywoniak
fb021b1a6b
opt_expr: more patcher again
2026-06-10 14:53:00 +02:00
Emil J. Tywoniak
c3457e2e5c
WIP
2026-06-10 14:52:50 +02:00
Emil J. Tywoniak
dab9a386cc
opt_expr: WIP use patcher more
2026-05-28 22:51:30 +02:00
Emil J. Tywoniak
b594196a48
opt_expr: cleanup
2026-05-28 14:56:27 +02:00
Emil J. Tywoniak
5cdb189ea0
opt_expr: cleanup
2026-05-28 14:53:21 +02:00
Emil J. Tywoniak
cef8186c4a
patch: infer leaves for gc
2026-05-28 12:56:13 +02:00
Emil J. Tywoniak
1cd0d37511
patch: instead of cell->cell, use port->sig rewrites
2026-05-27 18:07:01 +02:00
Emil J. Tywoniak
b3a33aeeba
opt_expr: use patcher for xor constant folding
2026-05-27 18:06:55 +02:00
Emil J. Tywoniak
8f62d5c657
opt_merge: newcelltypes
2026-05-22 18:41:49 +02:00
Emil J. Tywoniak
7d335ed0d9
opt_merge: factor out hashing code across incremental and parallel
2026-05-22 18:41:49 +02:00
Emil J. Tywoniak
9abee44602
opt_expr: replace invert_map with signorm traversal
2026-05-22 18:41:49 +02:00
Emil J. Tywoniak
6fd7f5c02d
pmgen: hold sigmap pointer instead of owning it
2026-05-22 18:40:01 +02:00
Emil J. Tywoniak
5bfb631085
opt_expr: with -keepdc disable equality optimization rules that break when ports are sigmapped
2026-05-22 18:38:37 +02:00
Emil J. Tywoniak
aecc173f83
opt_dff: sigma harder, FfDataSigMapped
2026-05-22 18:38:37 +02:00
Emil J. Tywoniak
be7beaf91a
opt_dff: temporarily disable signorm due to muxtree traversal
2026-05-22 18:38:37 +02:00
Emil J. Tywoniak
68bb5c6b94
signorm: disable in passes that use swap_names
2026-05-22 18:37:58 +02:00
Emil J. Tywoniak
4d2a6f2b7a
opt_expr: fix invert_map
2026-05-22 18:37:58 +02:00
Emil J. Tywoniak
2f7d0913fc
opt_hier: disable signorm
2026-05-22 18:37:58 +02:00
Emil J. Tywoniak
bb2d6f0e2a
opt_merge_inc: re add initvals deletion
2026-05-22 18:37:13 +02:00
Emil J. Tywoniak
9d86a6636c
wreduce: fixup initvals after setPort
2026-05-22 18:37:13 +02:00
Jannis Harder
423c8be71b
WIP half broken snapshot
2026-05-22 18:37:11 +02: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
Emil J. Tywoniak
7fa660fc60
share: remove -force
2026-05-04 21:34:19 +02: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
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
Emil J. Tywoniak
07ec8708e4
share: use newcelltypes
2026-03-04 12:22:14 +01:00
Emil J. Tywoniak
9e59f05c25
newcelltypes: wrap design celltypes support
2026-03-04 12:22:14 +01:00