3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-11-22 05:36:43 +00:00
Commit graph

1949 commits

Author SHA1 Message Date
Emil J. Tywoniak
d9137fb0b5 rtlil: add source tracking to CaseRule actions 2025-11-19 11:34:05 +01:00
Emil J. Tywoniak
0d151dc09d rtlil: replace SigSig actions with new type SyncAction 2025-11-19 11:34:05 +01:00
Robert O'Callahan
261a0ae9e1 Implement at() methods on SigSpec so that SigSpec::bits().at() continues to work as it did
Fixes a regression caused by commit 745222fa3b, which caused some
third-party code to fail to build, e.g.:
5d7aa035c6/lib/Transforms/YosysOptimizer/RTLILImporter.cpp (L229)
2025-11-17 09:15:55 +00:00
Emil J
84adc82fad
Merge pull request #5484 from YosysHQ/emil/idstring-simpler-final-gc
driver: move IdString collection to yosys_shutdown
2025-11-15 00:10:12 +01:00
Emil J. Tywoniak
c497b3b24c Revert "rtlil: make tracing optional in IdString garbage collection"
This reverts commit 8c76f93fce.
2025-11-14 15:32:10 +01:00
Emil J. Tywoniak
65d7d70507 driver: move IdString collection to yosys_shutdown 2025-11-14 15:31:45 +01:00
Miodrag Milanović
ba99c05902
Merge pull request #5482 from rocallahan/newid-namespace
Add missing `YOSYS_NAMESPACE_PREFIX` to fix callers of `NEW_ID` that aren't in the Yosys namespace
2025-11-14 14:06:15 +01:00
Emil J. Tywoniak
c48bc56f4a driver: fix timing data divison by zero when no passes run 2025-11-13 14:10:52 +01:00
Emil J. Tywoniak
1dd5b150e5 driver: garbage collect IdStrings without tracing at exit 2025-11-13 14:10:52 +01:00
Robert O'Callahan
ead0f922e1 Add missing YOSYS_NAMESPACE_PREFIX to fix callers of NEW_ID that aren't in the Yosys namespace 2025-11-12 22:29:54 +00:00
Emil J. Tywoniak
8c76f93fce rtlil: make tracing optional in IdString garbage collection 2025-11-12 20:22:30 +01:00
Emil J. Tywoniak
1ee4fc9d27 fix YOSYS_XTRACE_GET_PUT 2025-11-12 20:20:51 +01:00
Emil J. Tywoniak
50bfb5c5c9 constids: add $input_port and $connect 2025-11-12 20:19:42 +01:00
Robert O'Callahan
578d658871 Add timing stats for IdString garbage collection 2025-11-12 11:52:04 +01:00
Robert O'Callahan
df8444c5e7 Optimize IdString operations to avoid calling c_str() 2025-11-12 11:52:04 +01:00
Robert O'Callahan
e95ed7bbab Make NEW_ID create IDs whose string allocation is delayed 2025-11-12 11:52:04 +01:00
Robert O'Callahan
8895757364 Ensure that new_id(_suffix)() cannot create collisions with existing IdStrings. 2025-11-12 11:52:04 +01:00
Robert O'Callahan
9577a028c8 Make new_id/new_id_suffix taking string_view to avoid allocating strings 2025-11-12 11:52:04 +01:00
Robert O'Callahan
b3f3f42577 Remove StaticIdString and just use IdString now that we can make it constexpr 2025-11-12 11:52:04 +01:00
Robert O'Callahan
b0e2d75dbe Make IdString refcounts a hashtable containing only the nonzero refcounts
This saves space and doesn't cost very much since we hardly ever have nonzero refcounts any more.

It also allows for IdStrings with negative indexes, which we're going to add.
2025-11-12 11:52:04 +01:00
Robert O'Callahan
54bde15329 Implement IdString garbage collection instead of refcounting. 2025-11-12 11:52:04 +01:00
Robert O'Callahan
5133b4bdea Create RTLIL::OwningIdString and use it in a few places 2025-11-12 11:52:04 +01:00
Robert O'Callahan
d28f97e9da Remove YOSYS_USE_STICKY_IDS 2025-11-12 11:52:04 +01:00
Robert O'Callahan
0fe79ce01b Make RTLIL::Design::get_all_designs() unconditionally defined 2025-11-12 11:52:04 +01:00
Robert O'Callahan
e84bc3c6c5 Remove explicit empty-string check when looking up IdStrings 2025-11-12 11:52:04 +01:00
Robert O'Callahan
20639906e3 Store IdString lengths and use them 2025-11-12 11:52:04 +01:00
Robert O'Callahan
32641bbf93 Make IdString::contains take std::string_view so we avoid a strlen when the parameter is a string constant 2025-11-12 11:52:04 +01:00
Robert O'Callahan
2319d82efb Make IdString::begins_width/ends_with take std::string_view so we avoid a strlen when the parameter is a string constant 2025-11-12 11:52:04 +01:00
KrystalDelusion
529886f7fb
Merge pull request #5473 from YosysHQ/krys/unsized_params
Handle unsized params
2025-11-12 07:14:44 +13:00
Emil J. Tywoniak
ee5b8a97b9 rtlil: avoid clang warning 2025-11-10 12:02:36 +01:00
Emil J. Tywoniak
0452955069 rtlil: add explanatory note to SigSpec::Chunks 2025-11-10 12:02:21 +01:00
Robert O'Callahan
1cf3497d15 Repack SigSpecs when possible 2025-11-07 15:54:56 +00:00
Robert O'Callahan
38d1d071a5 Implement SigSpec::updhash() using a relaxed atomic for thread-safety 2025-11-07 15:54:56 +00:00
Robert O'Callahan
745222fa3b Make SigSpec::unpack() non-const 2025-11-07 15:54:56 +00:00
Robert O'Callahan
870ae18a2d Switch the SigSpec packed representation to allow just a single chunk that's inline in the SigSpec.
Single-chunk SigSpecs are very common and this avoids a heap allocation. It also simplifies
some algorithms.
2025-11-07 15:54:56 +00:00
Robert O'Callahan
e1169d03fe Use chunks iterator for SigSpec::extract() 2025-11-07 15:54:56 +00:00
Robert O'Callahan
4939484840 Don't reset the hash when unpacking, instead clear the hash whenever bits are modified 2025-11-07 15:54:56 +00:00
Robert O'Callahan
aa4a0fe815 Use size() instead of direct access to width_ in many places 2025-11-07 15:54:56 +00:00
Robert O'Callahan
619f49eabe Remove unnecessary pack() from SigSpec::extend_u0() 2025-11-07 15:54:55 +00:00
Robert O'Callahan
b612c1bb39 Simplify SigSpec::as_bit() 2025-11-07 15:54:55 +00:00
Robert O'Callahan
a69d48dd19 Instead of using packing and hashing to compute SigSpec ordering and equality, just use the width and chunkwise comparisons
This avoids having to pack and compute hashes, and generally results in a
simpler ordering.
2025-11-07 15:54:55 +00:00
Robert O'Callahan
92ea557979 Build a temporary SigChunk list in the iterator in the cases where that's needed 2025-11-07 15:54:55 +00:00
Robert O'Callahan
7394a2c597 Make SigSpec conversion to vector of SigChunk use chunks iterator 2025-11-07 15:54:55 +00:00
Robert O'Callahan
974b4dbe25 Make SigSpec::parse_rhs use is_chunk to avoid direct access to chunks_ 2025-11-07 15:54:55 +00:00
Robert O'Callahan
62cd3ddfb8 Make SigSpec::to_sigbit_pool use chunk iterator 2025-11-07 15:54:55 +00:00
Robert O'Callahan
4ed25c0538 Make SigSpec::to_sigbit_set use chunk iterator 2025-11-07 15:54:55 +00:00
Robert O'Callahan
39b89aae88 Use SigSpec::try_as_const in some places 2025-11-07 15:54:55 +00:00
Robert O'Callahan
dd3940c8bb Make SigSpec::is_one_hot use try_as_const 2025-11-07 15:54:55 +00:00
Robert O'Callahan
ce597dc38c Fix try_as_const/as_wire/as_chunk 2025-11-07 15:54:55 +00:00
Robert O'Callahan
0281ed1458 Add try_as_const and use the const iterator a bit more 2025-11-07 15:54:55 +00:00