3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-12-05 03:26:46 +00:00
Commit graph

16298 commits

Author SHA1 Message Date
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
Robert O'Callahan
7f9de6e48f Make coverage data thread-safe 2025-11-25 21:46:48 +00:00
Miodrag Milanović
10fd97821e
Merge pull request #5511 from YosysHQ/update_abc
Update ABC as per 2025-11-24
2025-11-25 14:56:28 +01:00
Miodrag Milanovic
cae020a581 Update ABC as per 2025-11-24 2025-11-25 11:29:48 +01:00
github-actions[bot]
5d3599a78c Bump version 2025-11-25 00:23:19 +00:00
Emil J
510f9ef63d
Merge pull request #5499 from mikesinouye/abc_new
Enable abc_new pass when not in NDEBUG
2025-11-24 16:57:29 +01:00
Emil J. Tywoniak
e8cbc92462 abc_new: sorted -> is_sorted 2025-11-24 11:46:09 +01:00
Emil J
faa1e8fac4
Merge pull request #5500 from mikesinouye/xaiger2
Enable xaiger2 pass when not in NDEBUG
2025-11-24 11:44:36 +01:00
Miodrag Milanović
0d954f2f4c
Merge pull request #5498 from YosysHQ/krys/check_enable_abc
Check ENABLE_ABC validity
2025-11-24 08:09:45 +01:00
Miodrag Milanović
d550757b4e
Merge pull request #5501 from rocallahan/tcl-size
Use `Tcl_Size` instead of `int` to fix build errors
2025-11-24 08:07:00 +01:00
Robert O'Callahan
53614a37a1 Use Tcl_Size instead of int to fix build errors
Fixes these build errors I'm getting locally with `tcl-devel-9.0.0-7.fc42.x86_64`.
I guess Tcl 9 broke this.

```
passes/cmds/sdc/sdc.cc:438:6: error: no matching function for call to 'Tcl_ListObjLength'
  438 |         if (Tcl_ListObjLength(interp, listObj, &listLength) == TCL_OK) {
      |             ^~~~~~~~~~~~~~~~~
/usr/include/tclDecls.h:1788:13: note: candidate function not viable: no known conversion from 'int *' to 'Tcl_Size *' (aka 'long *') for 3rd argument
 1788 | EXTERN int              Tcl_ListObjLength(Tcl_Interp *interp,
      |                         ^
 1789 |                                 Tcl_Obj *listPtr, Tcl_Size *lengthPtr);
      |                                                   ~~~~~~~~~~~~~~~~~~~
passes/cmds/sdc/sdc.cc:446:8: error: no matching function for call to 'Tcl_ListObjLength'
  446 |                         if (Tcl_ListObjLength(interp, subListObj, &subListLength) == TCL_OK) {
      |                             ^~~~~~~~~~~~~~~~~
/usr/include/tclDecls.h:1788:13: note: candidate function not viable: no known conversion from 'int *' to 'Tcl_Size *' (aka 'long *') for 3rd argument
 1788 | EXTERN int              Tcl_ListObjLength(Tcl_Interp *interp,
      |                         ^
 1789 |                                 Tcl_Obj *listPtr, Tcl_Size *lengthPtr);
      |                                                   ~~~~~~~~~~~~~~~~~~~
```
2025-11-24 18:46:56 +13:00
github-actions[bot]
33a49452d9 Bump version 2025-11-22 00:23:19 +00:00
Mike Inouye
f098352ae6
Enable xaiger2 pass when not in NDEBUG 2025-11-21 14:23:32 -08:00
Mike Inouye
615e338acd
Fix abc_new pass when not in NDEBUG 2025-11-21 14:10:05 -08:00
KrystalDelusion
542723d121
Check ENABLE_ABC validity
From https://github.com/YosysHQ/yosys/pull/5497#issuecomment-3561398279, for ENABLE_ABC=1 to be valid, either ABC must be linked (LINK_ABC=1), or it must be possible to spawn executables (DISABLE_SPAWN=0).  This configuration (ENABLE_ABC=1 LINK_ABC=0 DISABLE_SPAWN=1) already fails compilation in `abc.cc` trying to call `run_command()` which doesn't exist if DISABLE_SPAWN=1.  All we are doing here is catching the known bad configuration and providing an explanation for why it isn't working.
2025-11-22 09:51:07 +13:00
KrystalDelusion
bf70581efa
Merge pull request #5497 from YosysHQ/krys/abc_done
Fix ABC completion detection edge case
2025-11-22 09:37:50 +13:00
Krystine Sherwin
44ab884b06 bug5495.sh: Skip test if timeout isn't available 2025-11-21 04:03:39 +00:00
Robert O'Callahan
e33ca17388 Force a newline to appear before YOSYS_ABC_DONE 2025-11-21 03:50:07 +00:00
Krystine Sherwin
4d1b688717
Tests: Add testcase for problematic ABC DONE check 2025-11-21 14:46:01 +13:00
Emil J
8ea51e1479
Merge pull request #5493 from YosysHQ/emil/sdc-fix-leak
sdc: use Tcl memory management functionality
2025-11-20 11:39:36 +01:00
github-actions[bot]
25ba41f424 Bump version 2025-11-20 00:24:25 +00:00
Emil J. Tywoniak
6eb9e823e0 sdc: use Tcl memory management functionality 2025-11-20 00:21:15 +01:00
Emil J
b5625f9189
Merge pull request #5237 from YosysHQ/emil/sdc_expand
SDC expansion with OpenSTA
2025-11-19 23:27:33 +01:00
Miodrag Milanović
e83d721cb0
Merge pull request #5492 from donn/getitem
pyosys: __getitem__ for supported classes
2025-11-19 17:58:01 +01:00
Mohamed Gaber
58e831486d
pyosys: __getitem__ for supported classes
- functions that have a const `[]` operator method now support `__getitem__` in Python
- fields of a pointer type now return a `reference_internal` instead of a `copy` because classes referenced to by pointers typically aren't copyable (e.g. RTLIL::Wire, RTLIL::Module, etc)
- removed duplicate of test_script.py
2025-11-19 18:09:41 +02:00
Emil J
2eff366e8c
Merge branch 'main' into emil/sdc_expand 2025-11-19 16:29:37 +01:00
Emil J
2cc0770305
Merge pull request #5412 from YosysHQ/emil/sdc-read-only
Add sdc command with smart flattening
2025-11-19 16:02:55 +01:00
Emil J. Tywoniak
1edc32dcd0 opensta, sdc_expand: mark as experimental 2025-11-19 15:31:17 +01:00
Emil J. Tywoniak
920f4793fb sdc: error on unknown getters 2025-11-19 15:26:02 +01:00
Emil J. Tywoniak
229123eb87 sdc: disable without YOSYS_ENABLE_TCL 2025-11-19 15:26:02 +01:00
Emil J. Tywoniak
033a2d5a67 sdc: remove vestigial code for tracked constraint followup work 2025-11-19 15:26:02 +01:00
Emil J. Tywoniak
f56e121ddb sdc: add help 2025-11-19 15:26:02 +01:00
Emil J. Tywoniak
650392d4ec sdc: specialize stubs for the call graph 2025-11-19 15:26:02 +01:00
Emil J. Tywoniak
07de7509bf sdc: add -keep_hierarchy test 2025-11-19 15:26:02 +01:00
Emil J. Tywoniak
224ed524fa sdc: move to directory 2025-11-19 15:26:01 +01:00
Emil J. Tywoniak
94dd248dfb sdc: graph mode only 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
8a54e51300 sdc: add -keep_hierarchy 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
d4228efae8 sdc: keep_hiearchy 2025-11-19 15:25:24 +01:00
Emil Jiří Tywoniak
075237f73b sdc: refactor more 2025-11-19 15:25:24 +01:00
Emil Jiří Tywoniak
48ff9d4950 sdc: refactor find_matching 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
ae1235210d sdc: functional graph 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
c6491629d8 sdc: start graph 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
24a6412ea8 sdc: bit selections 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
21c68e0022 sdc: unknown handler experiment 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
420a083d9b sdc: simple mode, remove per-tool stubs 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
834125a076 sdc: return resolved patterns 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
dc48ceadd9 sdc: collect strictly matching objects 2025-11-19 15:25:24 +01:00
Emil J. Tywoniak
9a3c7f70ad sdc: stubs SDC commands supported by OpenSTA 2025-11-19 15:25:24 +01:00