Robert O'Callahan
3f2c4f6f83
Remove redundant construction of assign_map
.
...
We call 'assign_map.set()' below which wipes the `SigMap` and reconstructs it.
This operation is expensive because it scans the whole module. I think it's
better to make heavyweight operations more visible so I'm removing
the less obvious operation.
2025-08-17 23:34:11 +00:00
Krystine Sherwin
3959d19291
Reapply "Add groups to command reference"
...
This reverts commit 81f87ce6ed
.
2025-08-06 13:52:12 +12:00
Lofty
7537a49f0d
Merge pull request #5241 from Anhijkt/opt_dff-simplify-pt
...
opt_dff: implement simplify_patterns
2025-08-04 09:44:57 +01:00
Anhijkt
85e0e8ca67
typo
2025-07-30 21:40:20 +03:00
Anhijkt
bfff7a47f1
typo
2025-07-30 21:34:42 +03:00
Anhijkt
206d2a4553
opt_dff: refactor simplify_patterns
2025-07-30 21:31:34 +03:00
N. Engelhardt
81f87ce6ed
Revert "Add groups to command reference"
2025-07-23 14:41:49 +00:00
Anhijkt
d9fc6dda9e
typo
2025-07-21 14:42:52 +03:00
Anhijkt
ca8af1f8c8
opt_dff: implement simplify_patterns
2025-07-21 14:15:26 +03:00
Krystine Sherwin
f2ef17b581
cmdref: Assign rmports to greenpak group
...
Also tidy `#include`s.
2025-07-21 10:35:57 +12:00
Martin Povišer
22a44e4333
Start opt_hier
2025-07-05 16:45:52 +02:00
George Rennie
8c38e2081d
opt_dff: don't emit cells until all have been visited to prevent UAF
2025-06-06 23:46:07 +01:00
George Rennie
19cdbc5a0c
opt_dff: don't remove cells until all have been visited to prevent UAF
2025-06-04 21:02:21 +01:00
George Rennie
6331f92d00
Merge pull request #5101 from georgerennie/george/opt_expr_shift_ovfl
...
opt_expr: fix shift optimization with overflowing shift amount
2025-05-22 15:16:19 +01:00
Emil J
3823157c25
Merge pull request #5080 from akashlevy/muldiv_c
...
Add `muldiv_c` peepopt
2025-05-15 11:03:25 +02:00
George Rennie
748600c167
small whitespace cleanup ( #5119 )
2025-05-14 15:18:57 +02:00
George Rennie
0dcd94b6ad
opt_expr: saturate shift amount instead of overflowing for large shifts
2025-05-07 14:41:13 +02:00
Akash Levy
4bd91fbb11
Add muldiv_c
peepopt pass
2025-04-30 08:06:59 -07:00
George Rennie
c952ab417f
opt_expr: only sign extend shift arguments for arithmetic right shift
2025-04-26 12:40:04 +02:00
Jannis Harder
4b273a4ae9
share: Cleanup and additional testing
...
Fixes a typo and adds another test case that triggers the fallback
behavior as the existing tests all trigger the new optimization.
2025-04-15 12:34:46 +02:00
Jannis Harder
7593b5b224
share: Only print optimized activation patterns when different
...
This removes redundant information from the log and makes it easier to
spot where the new optimization had an effect.
2025-04-15 12:34:46 +02:00
Jannis Harder
27ed77ea24
share: Keep filtered activation patterns for the supercell
...
The previous commit introduced code that optimizes the activation
patterns to be able to generate smaller activation logic. The resulting
supercell was then enqueued as shareable using those optimized
activation patterns. The condition represented by the optimized patterns
is an over-approximation of the actual activiation condition. This means
using it as activiation for the supercell loses precision and pessimises
sharing of the supercell with further cells, breaking the sat/share
test.
This commit fixes that by using the optimized activiation patterns only
for the generation of activation logic and using the original patterns
for enqueuing the supercell.
2025-04-15 12:34:46 +02:00
Jannis Harder
6dff9e7787
share: Restrict activation patterns to potentially relevant signals
...
In case the two sets of activation patterns are mutually exclusive
without considering the logic feeding into the activation signals, an
activation condition can only be relevant if present in both sets with
opposite polarity.
This detects pattern-only mutual exclusion by running an additional SAT
query before importing the input cone logic. If that is already UNSAT,
we remove all non-relevant condition and re-simplify the remaining
patterns.
In cases of pattern-only mutual exclusion, this will often produce much
smaller selection logic and avoid the more costly SAT query that
includes the input cones.
2025-04-15 12:34:46 +02:00
Martin Povišer
38beae1e06
Merge pull request #4946 from povik/cost-cc-enhance
...
cost: Add `$mem_v2`, `$macc_v2` estimates
2025-04-14 11:08:59 +02:00
Krystine Sherwin
cd3b914132
Reinstate #4768
...
Revert the reversion so that we can fix the bugs that the PR missed.
2025-04-08 11:58:05 +12:00
Krystine Sherwin
406b400458
opt_expr: Fix #4590
...
If all the (non-select) inputs of a `$_MUX{4,8,16}_` are undefined, replace it, just like we do for `$mux` and `$_MUX_`.
Add `tests/opt/opt_expr_mux_undef.ys` to verify this.
This doesn't do any const folding on the wide muxes, or shrinking to less wide muxes. It only handles the case where all inputs are 'x and the mux can be completely removed.
2025-04-04 12:25:31 +13:00
Anhijkt
6b5507139e
opt_expr: requsted changes
2025-04-01 20:37:22 +03:00
Anhijkt
83b095ab6c
opt_expr: optimize pow of 2 cells
2025-03-30 15:43:41 +03:00
KrystalDelusion
a647731812
Merge pull request #4677 from YosysHQ/emil/opt_merge-hashing
...
opt_merge: hashing performance and correctness
2025-03-25 10:36:02 +13:00
KrystalDelusion
b06a661913
Merge pull request #4834 from YosysHQ/emil/gzip-refactor
...
Memory-efficient zlib usage across Liberty file consumers
2025-03-21 10:01:00 +13:00
Emil J
b33787edcb
Merge pull request #4948 from YosysHQ/emil/share-fix-log-again
...
share: re-add SAT solver cell count to log message
2025-03-19 13:54:17 +01:00
Emil J. Tywoniak
4f3fdc8457
io: refactor string and file work into new unit
2025-03-19 13:43:42 +01:00
Emil J. Tywoniak
061cf5c6c4
share: re-add SAT solver cell count to log message
2025-03-19 10:27:23 +01:00
Martin Povišer
91cd382f8b
macc: Rename 'ports' to 'terms' throughout codebase
2025-03-18 13:25:10 +01:00
Emil J
05cd1e2942
Merge pull request #4904 from YosysHQ/emil/share-limit-effort
...
share: add -pattern-limit to limit analysis effort
2025-03-15 18:00:42 +01:00
Emil J. Tywoniak
6c9857403c
share: use share.pattern_limit from scratchpad
2025-03-11 14:57:00 +01:00
Emil J. Tywoniak
ca9176cd0f
share: bail better on too many patterns
2025-03-10 17:55:04 +01:00
Martin Povišer
d8a4991289
Merge pull request #4931 from povik/buf-clean
...
opt_clean, simplemap: Add `$buf` handling
2025-03-10 15:10:17 +01:00
Emil J. Tywoniak
1d773b50a4
opt_merge: fix dangling pointers in known_cells when keep attribute is used
2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
176faae7c9
opt_merge: fix trivial binary regression
2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
8903740147
opt_merge: switch to unordered_set
2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
ffc057a89c
opt_merge: fix the many collisions case
2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
cbb776c626
opt_merge: avoid hashing strings
2025-03-10 13:14:06 +01:00
Emil J
8bb24badf2
Merge pull request #4895 from YosysHQ/emil/fix-share-portbit-infinite-loop
...
share: fix infinite loop in find_terminal_bits on $mux loop
2025-03-08 13:14:11 +01:00
Martin Povišer
557047fe1e
opt_clean, simplemap: Add $buf
handling
2025-03-07 16:08:38 +01:00
Emil J
912c93ca0b
share: help message formatting
...
Co-authored-by: KrystalDelusion <93062060+KrystalDelusion@users.noreply.github.com>
2025-03-03 18:52:05 +01:00
KrystalDelusion
9106d6b3bd
Merge pull request #4881 from YosysHQ/pmgen-pass-restructure
...
Move passes out of the passes/pmgen folder
2025-03-01 10:22:54 +13:00
Emil J. Tywoniak
8968986b54
share: add -pattern-limit to set analysis effort on branch-unbranch mux regions
2025-02-14 21:13:07 +01:00
Krystine Sherwin
4c728968a3
Fix runtime error on shr INT_MAX
2025-02-14 14:01:36 +13:00
Emil J. Tywoniak
01d2bfcf00
share: fix infinite loop in find_terminal_bits on $mux loop
2025-02-12 10:16:44 +01:00