Commit Graph

16200 Commits

Author SHA1 Message Date
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
Emil J. Tywoniak bc3fc21248 microchip: fix IdString memory leak 2025-11-13 14:10:52 +01: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
Emil J d93039a194
Merge pull request #5417 from rocallahan/idstring-gc
Implement garbage collection of `IdString`s
2025-11-12 13:43:53 +01:00
Emil J. Tywoniak ae281720cf tests: remove unstable FPGA synthesis result checks 2025-11-12 11:52:04 +01:00
Robert O'Callahan 578d658871 Add timing stats for IdString garbage collection 2025-11-12 11:52:04 +01:00
Robert O'Callahan 8c2984dc5f Fix AbcModuleState::remap_name() to avoid calling IdString::c_str() 2025-11-12 11:52:04 +01:00
Robert O'Callahan c4c389fdd7 Fix verilog backend to avoid IdString::c_str() 2025-11-12 11:52:04 +01:00
Robert O'Callahan 325b27f43a Avoid calling IdString::c_str() in opt_clean 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 `IdString`s. 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
github-actions[bot] 5f76729cbb Bump version 2025-11-12 00:24:49 +00:00
KrystalDelusion 529886f7fb
Merge pull request #5473 from YosysHQ/krys/unsized_params
Handle unsized params
2025-11-12 07:14:44 +13:00
Miodrag Milanović 26b51148a8
Merge pull request #5480 from YosysHQ/emil/libparse-fix-quoted
libparse: fix parsing and memory safety of quoted values
2025-11-11 15:18:35 +01:00
Emil J. Tywoniak 967e91aa73 libparse: fix parsing and memory safety of quoted values 2025-11-11 13:44:50 +01:00
Miodrag Milanović 596ad37410
Merge pull request #5479 from donn/pyosys_hotfix
hotfix: workaround for pyosys build failure
2025-11-11 13:00:09 +01:00
Mohamed Gaber e29328ec99
hotfix: workaround for pyosys build failure
temporarily exclude `SigSpec::chunks` from the interface until nested structs/classes are supported
2025-11-11 13:48:35 +02:00
Miodrag Milanovic fd40418c10 Next dev cycle 2025-11-11 09:26:05 +01:00
Miodrag Milanovic 03eb2206d7 Release version 0.59 2025-11-11 07:57:22 +01:00
github-actions[bot] f7881ced9e Bump version 2025-11-11 00:25:20 +00:00
Emil J 365c6753c4
Merge pull request #5453 from rocallahan/sigspec-onechunk
Make `SigSpec` const methods multithreading-compatible
2025-11-10 17:48:42 +01:00
Emil J 6a22397c02
Merge pull request #5477 from bhagwat-rahul/fix-non-wildcard-package-imports
Add support for specific package imports
2025-11-10 17:48:27 +01:00
Emil J. Tywoniak 8f53d21ea7 simplify: refactor specific package import 2025-11-10 14:26:10 +01:00
Emil J. Tywoniak 4dac5cd1f8 rtlil: note SigSpec only has one chunk in internal docs 2025-11-10 12:08:35 +01: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
Rahul Bhagwat 54e5eb1c3c
no use vector 2025-11-08 23:16:52 +05:30
Rahul Bhagwat 224109151d
add specific package imports and tests 2025-11-08 23:05:10 +05:30
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