Emil J. Tywoniak
ce6cd32065
newcelltypes: fix MSVC build
2025-11-26 13:17:24 +01:00
Emil J. Tywoniak
e8f7845c5b
register: use newcelltypes
2025-11-26 00:53:01 +01:00
Emil J. Tywoniak
4dddd6fe4b
yosys: use newcelltypes for yosys_celltypes users
2025-11-26 00:50:41 +01:00
Emil J. Tywoniak
46f9e70dce
yosys: use newcelltypes for yosys_celltypes
2025-11-26 00:47:30 +01:00
Emil J. Tywoniak
ab4fd8c623
drivertools: use newcelltypes
2025-11-26 00:16:07 +01:00
Emil J. Tywoniak
299d64ad9f
newcelltypes: comment
2025-11-25 23:52:30 +01:00
Emil J. Tywoniak
a8509aee48
fixup! consteval: use newcelltypes
2025-11-25 23:51:09 +01:00
Robert O'Callahan
b23dc345ae
Make it safe to access .c_str() for autoidx IDs in a multithreaded context
2025-11-25 22:49:41 +00:00
Emil J. Tywoniak
ce3c23f969
consteval: use newcelltypes
2025-11-25 23:47:56 +01:00
Emil J. Tywoniak
9877d189ce
modtools: use newcelltypes
2025-11-25 23:36:40 +01:00
Robert O'Callahan
948001f39f
Merge the two autoidx hashtables into one
...
When something calls `IdString::c_str()` on an autoidx ID, we need to cache the
full string in a thread-safe way. If we need to allocate an entry in some data
structure to do that, it's difficult to do in a thread-safe no-performance-hazard way.
So instead, store the cached string pointer in the same hashtable as the prefix
pointer.
2025-11-25 21:57:46 +00:00
Robert O'Callahan
8f0ecce53f
Forbid creating IdStrings and incrementing autoidx during multithreaded phases, and add dynamic checks for that
...
We could make it safe to increment autoidx during multithreaded passes, but that's
actually undesirable because it would lead to nondeterminism. If/when we need new
IDs during parallel passes, we'll have to figure out how to allocate them in a
deterministic way, and that will depend on the details of what the pass does.
So don't try to tackle that now.
2025-11-25 21:57:46 +00:00
Robert O'Callahan
4c8b537d71
Remove YOSYS_NO_IDS_REFCNT
...
Refcounting is hardly used at all so this option is not that useful.
We might want to have a different option that disables GC if that becomes
a performance issue, but that should be a different option.
2025-11-25 21:57:46 +00:00
Emil J. Tywoniak
4b55e5ff5f
newcelltypes: fix non-cells
2025-11-25 22:48:59 +01:00
Emil J. Tywoniak
746e9f6bcd
newcelltypes: refactor
2025-11-25 22:48:58 +01:00
Emil J. Tywoniak
e2e7e5ef6a
share: use newcelltypes
2025-11-25 22:48:42 +01:00
Emil J. Tywoniak
f4975f27ee
newcelltypes: fix unit test
2025-11-25 22:48:11 +01:00
Emil J. Tywoniak
f6e5ea3027
newcelltypes: bounds check
2025-11-25 22:48:11 +01:00
Emil J. Tywoniak
29453aa053
newcelltypes: wrap design celltypes support
2025-11-25 22:48:11 +01:00
Emil J. Tywoniak
bea80c06b9
newcelltypes: TurboCellTypes -> StaticCellTypes
2025-11-25 22:48:11 +01:00
Emil J. Tywoniak
d1ade01286
opt_expr: use newcelltypes
2025-11-25 22:48:11 +01:00
Robert O'Callahan
7f9de6e48f
Make coverage data thread-safe
2025-11-25 21:46:48 +00:00
Emil J. Tywoniak
b474ce0c67
newcelltypes: init
2025-11-25 15:06:36 +01:00
Emil J
2eff366e8c
Merge branch 'main' into emil/sdc_expand
2025-11-19 16:29:37 +01:00
Emil J. Tywoniak
5a798b64ef
sdc: separate out
2025-11-19 15:25:22 +01:00
Emil Jiří Tywoniak
c281bac461
sdc: add initial stubbed demo
2025-11-19 15:25:03 +01:00
Emil J. Tywoniak
9f07e21e35
rtlil: undeprecate builtin_ff_cell_types
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
9e81db4373
ff: split out type-only information
2025-11-19 15:20:50 +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