Commit Graph

15932 Commits

Author SHA1 Message Date
Akash Levy c0a6985adb
Merge branch 'YosysHQ:main' into main 2025-04-07 14:48:16 -07:00
KrystalDelusion e08aeae1d0
Merge pull request #4989 from YosysHQ/krys/fix_4590
opt_expr: Fix #4590
2025-04-08 08:30:18 +12:00
Akash Levy de375d6542 Accommodate reversion and fix wreduce naming 2025-04-07 07:35:39 -07:00
Akash Levy 06c614a010
Merge branch 'YosysHQ:main' into main 2025-04-07 07:28:06 -07:00
Emil J cc8fd3efc3
Merge pull request #4986 from jix/faster-liberty-caching
Liberty file caching with new `libcache` command
2025-04-07 15:15:41 +02:00
Miodrag Milanović 1a820e259c
Merge pull request #4998 from YosysHQ/revert-4768-krys/refactor_selections
Revert "Refactor full_selection"
2025-04-07 15:12:59 +02:00
Miodrag Milanović d49364d96f
Revert "Refactor full_selection" 2025-04-07 12:11:55 +02:00
Akash Levy 5c332df764 Bump abc 2025-04-07 00:43:58 -07:00
Akash Levy 6f44b93749 Bump abc 2025-04-07 00:24:31 -07:00
Akash Levy f86204b8ba Fix pyosys for NamedObject 2025-04-06 22:52:59 -07:00
Akash Levy 0dab4308a3 Actual merge here 2025-04-06 18:53:43 -07:00
Akash Levy 69ce16c4a0 Bump abc to latest 2025-04-06 18:50:32 -07:00
KrystalDelusion 98d4355b82
Merge pull request #4768 from YosysHQ/krys/refactor_selections
Refactor full_selection
2025-04-05 14:15:27 +13:00
github-actions[bot] 331952f78d Bump version 2025-04-05 00:22:08 +00:00
KrystalDelusion 40c5694650
Merge pull request #4901 from akashlevy/pyosys_copy_abc
Copy `abc` stuff for pyosys to enable use of the `abc` pass
2025-04-05 10:57:02 +13:00
Krystine Sherwin d8a9ad6860
Add Selection::clear() method
Use method in `select.cc` to reduce code duplication.
2025-04-05 10:56:01 +13:00
Krystine Sherwin dab67f84da
rtlil.h: Document selections 2025-04-05 10:46:09 +13:00
Akash Levy 276800c39b wreduce shifter signedness fix 2025-04-04 14:27:38 -07:00
Akash Levy 61715c2c28 Fix memory too large issue 2025-04-04 03:22:22 -07:00
Akash Levy c3657eee6d Fix Silimate tests 2025-04-04 03:21:53 -07:00
Akash Levy f218b5ba58 Revert "Represent memory size with size_t"
This reverts commit bb5f8415af.
2025-04-04 03:20:07 -07:00
Akash Levy bb5f8415af Represent memory size with size_t 2025-04-04 02:04:34 -07:00
Akash Levy 507308d34e Add muxpacker draft 2025-04-03 21:38:16 -07:00
Akash Levy d4119e1ad3 lut2bmux fix 2025-04-03 21:37:27 -07:00
Akash Levy 9c0da98531 Updates 2025-04-03 17:47:48 -07: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
Akash Levy 809a38a597
Merge pull request #78 from williamzhu17/extract_reduce-tests
extract_reduce tests and removed XNOR functionality from extract_reduce
2025-04-03 15:23:09 -07:00
Akash Levy 439d859bba
Merge branch 'YosysHQ:main' into main 2025-04-03 10:48:42 -07:00
williamzhu17 05a3c28f39 small name change 2025-04-03 10:38:55 -07:00
williamzhu17 ba709dc0ed added stress tests 2025-04-03 10:37:32 -07:00
George Rennie 63b3ce0c77
Merge pull request #4971 from Anhijkt/pow-optimization
opt_expr: optimize pow of 2 cells
2025-04-03 14:34:36 +02:00
Jannis Harder 0f13b55173 Liberty file caching with new `libcache` command
This adds optional in-memory caching of parsed liberty files to speed up
flows that repeatedly parse the same liberty files. To avoid increasing
the memory overhead by default, the caching is disabled by default. The
caching can be controlled globally or on a per path basis using the new
`libcache` command, which also allows purging cached data.
2025-04-03 13:39:35 +02:00
Jannis Harder 26a4b9b0c6
Merge pull request #4981 from jix/faster-liberty-lexing
Improve lexer performance for read_liberty
2025-04-03 13:32:33 +02:00
KrystalDelusion 1cfe1e2813
Merge pull request #4974 from YosysHQ/micko/config_exitcode
yosys-config: Propagate exit code for help command
2025-04-03 09:56:13 +13:00
Akash Levy 4bd08ac362
Merge branch 'YosysHQ:main' into main 2025-04-01 22:10:43 -07:00
github-actions[bot] f03b44959b Bump version 2025-04-02 00:23:07 +00:00
williamzhu17 58d903eee6 deleted old file 2025-04-01 17:19:04 -07:00
williamzhu17 776479d7aa wip tests 2025-04-01 17:17:39 -07:00
Anhijkt c57cbfa8f9 opt_expr: add test 2025-04-01 21:54:46 +03:00
williamzhu17 bc2d9d1f33 added deeper cases for gates 2025-04-01 11:10:50 -07:00
williamzhu17 2f9e6e08f0 added tests with constants 2025-04-01 10:39:33 -07:00
Anhijkt 6b5507139e opt_expr: requsted changes 2025-04-01 20:37:22 +03:00
williamzhu17 8991707dee zero indexed wires 2025-04-01 10:19:54 -07:00
williamzhu17 101f775b64 added extra test for muxes 2025-04-01 10:18:20 -07:00
williamzhu17 8f5f4ecab4 inital extract_reduce tests 2025-04-01 10:11:17 -07:00
williamzhu17 bbd132f6ba updated extract_reduce to not consider xnors 2025-04-01 10:10:06 -07:00
Miodrag Milanović 402af3ece7
Merge pull request #4982 from YosysHQ/micko/verific_fix_restore
verific: fix restoring msg state after blackbox import
2025-04-01 18:32:08 +02:00
Miodrag Milanovic 72f2185a94 verific: fix restoring msg state after blackbox import 2025-04-01 17:35:59 +02:00
Jannis Harder bc01468c75 read_liberty: Faster std::string construction in the liberty lexer
This extends the `LibertyInputStream` added in the previous commit to
allow arbitrary lookahead. Then this uses the lookahead to find the
total length of the token within the input buffer, instead of consuming
the token byte by byte while appending to a std::string. Constructing
the std::string with the total length is known avoids any reallocations
from growing std::string's buffer.
2025-04-01 14:12:12 +02:00
Jannis Harder 119e998f12 read_liberty: Faster input handling for the liberty lexer
The lexer for liberty files was using istream's `get` and `unget` which
are notorious for bad performance and that showed up during profiling.

This replaces the direct `istream` use with a custom LibertyInputStream
that does its own buffering to provide `get` and `unget` that behave the
same way but are implemented with a fast path that is easy to inline and
optimize.
2025-04-01 14:12:12 +02:00