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
Sean Luchen
4610889d27
Fix two parsing bugs that were causing private regression tests to fail.
...
These were introduced by 0a6d9f4 .
1) While in a paren "(", don't error on newline.
2) Don't parse an extra token when parsing vector ranges. Let the caller parse the next token as necessary.
2025-04-01 13:01:00 -07:00
Anhijkt
6b5507139e
opt_expr: requsted changes
2025-04-01 20:37:22 +03:00
williamzhu17
bbd132f6ba
updated extract_reduce to not consider xnors
2025-04-01 10:10:06 -07: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
Akash Levy
d743a18ea3
Fix extract_reduce infinite loop
2025-03-31 12:36:43 -07:00
Sean Luchen
23f59e0196
Support array ranges for identifiers in the Liberty parser.
...
This change only handles the case `id : id[range] ;`.
2025-03-31 10:54:00 -07:00
Sean Luchen
ac1033ecd5
Factor parse_vector_range out into its own function.
...
This also fixes the parsing a bit. It was consuming 1 fewer token than
required.
2025-03-31 10:46:18 -07:00
Sean Luchen
0a6d9f4dc9
Factor report_unexpected_token out into its own function.
2025-03-31 10:44:23 -07:00
Akash Levy
f488b0e74c
Add lut2bmux, annotate_unqcoef, and seed tests
2025-03-31 05:55:54 -07:00
Akash Levy
3f00e57076
Improve the naming for opt_reduce
2025-03-31 01:22:42 -07:00
Akash Levy
f72d27fae0
Robustness fixes
2025-03-30 22:23:21 -07:00
Akash Levy
984c6357ba
Add -word mode to lut2mux and improve the naming
2025-03-30 17:54:35 -07:00
Akash Levy
161ff0fa3f
Add muxmode pass and tests
2025-03-30 17:54:18 -07:00
Anhijkt
83b095ab6c
opt_expr: optimize pow of 2 cells
2025-03-30 15:43:41 +03:00
Akash Levy
dacd882383
Remove selectconst
2025-03-28 17:40:40 -07:00
Akash Levy
1a5415b5a2
Merge branch 'YosysHQ:main' into main
2025-03-28 14:56:36 -07:00
Emil J
ec8b745929
Merge pull request #4733 from antmicro/fix-setundef-pass-for-params
...
Fix setting bits of parameters in setundef pass
2025-03-28 13:06:04 +01:00
Akash Levy
3d13f7aae2
Bump to latest
2025-03-26 14:56:10 -07:00
Kelvin Chung
7bbdf6049a
Move implementation to constmap and add test
2025-03-26 11:52:55 +00:00
Kelvin Chung
1113c8c95a
feat: Allow full constant wrapping for hilomap
2025-03-26 11:00:38 +00:00
Emil J
b9131853ff
Merge pull request #4954 from YosysHQ/krys/abstract_default_val
...
Fixes for abstract.cc
2025-03-26 10:40:37 +01:00
Emil J
ea74ad33a5
Merge pull request #4961 from YosysHQ/emil/cutpoint-typo
...
cutpoint: fix typo
2025-03-25 21:30:29 +01:00
Emil J. Tywoniak
4991ed9d4b
cutpoint: fix typo
2025-03-25 18:10:47 +01: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
Akash Levy
cded9861dd
Add muxpacking to extract_reduce
2025-03-21 02:54:39 -07:00
Akash Levy
9f93e9c6e8
Fix stat gzip support for JSON after merge
2025-03-20 17:36:50 -07:00
Akash Levy
95f489beec
Merge nice gzip refactor
2025-03-20 16:47:12 -07: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
9893ed59b7
Merge pull request #4951 from YosysHQ/emil/fix-dft_tag-autoNot
...
dft_tag: fix autoNot not notting
2025-03-20 21:16:34 +01:00
Krystine Sherwin
d704ca8019
abstract: Fix indentation
2025-03-20 17:20:36 +13:00
Krystine Sherwin
452dd1b74b
abstract: Assign default to value
...
Fix `-Wmaybe-uninitialized` on line 43 and 44.
2025-03-20 17:19:22 +13:00
Akash Levy
d1f0c38bac
Merge branch 'YosysHQ:main' into main
2025-03-19 19:32:42 -07:00
Emil J. Tywoniak
199702a392
dft_tag: fix autoNot not notting
2025-03-19 18:28:50 +01: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
980a0a15c1
stat: allow gzipped liberty files
2025-03-19 13:43:44 +01:00
Emil J. Tywoniak
7aefd4b226
gzip: back to pointers
2025-03-19 13:43:44 +01:00
Emil J. Tywoniak
0877798e18
dfflibmap: allow gzipped liberty files
2025-03-19 13:43:44 +01:00
Emil J. Tywoniak
d00259081d
gzip: simplify uncompressed interface
2025-03-19 13:43:44 +01:00
Emil J. Tywoniak
218ec3fc05
dfflibmap: allow gzipped liberty files
2025-03-19 13:43:44 +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
Alain Dargelas
e29c1839c4
Fix corner case with assign stmts for fanout buffering
2025-03-17 14:25:05 -07:00
Akash Levy
d289e5ef1c
Merge branch 'YosysHQ:main' into main
2025-03-17 10:45:27 -07:00
Akash Levy
d9af46538c
opt_expand peepopt (still needs testing)
2025-03-17 04:12:06 -07:00
Akash Levy
dc75774c5b
Breakreduce pass (still needs testing)
2025-03-17 04:10:08 -07:00
Akash Levy
a08ab5a67b
Add opt_expr's missing mux_ornot and mux_andnot cases (still needs testing)
2025-03-17 04:09:28 -07:00
Akash Levy
11dd7becdd
Add opt_balance_tree -arith_only
2025-03-17 02:30:18 -07:00