3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-06-20 04:43:40 +00:00
Commit graph

1683 commits

Author SHA1 Message Date
KrystalDelusion
3a5ce2df64
Merge pull request #5112 from YosysHQ/krys/on_shutdown
design.cc: Use on_shutdown method
2025-05-16 09:22:39 +12:00
George Rennie
748600c167
small whitespace cleanup (#5119) 2025-05-14 15:18:57 +02:00
Krystine Sherwin
af75dce660
Fix Crashes with GCC 15 #5088
When building `WITH_PYTHON`, where a global list of modules is maintained, deleting a module also erases the entry in said global list.  This can lead to memory corruption if the global list is destructed before the module.
Using `on_shutdown()` instead means the module destructor is explicitly called before the global list can be destructed, preventing the issue.
Also add a comment to `Pass::~Pass()` to suggest the same for future passes that might try to use that (and see this commit in the blame if they need a reason why).
2025-05-10 09:59:13 +12:00
Emil J. Tywoniak
2e9a194ce9 gzip: reject uncompressing directories 2025-05-09 22:33:30 +02:00
Emil J. Tywoniak
b05c0c70af io: don't accept a directory when file expected 2025-05-09 22:33:30 +02:00
Emil J
5aa9bfbf7d
Merge pull request #5098 from mikesinouye/hashlib-1
Add <optional> to haslib.h which uses std::optional
2025-05-08 19:05:10 +02:00
Emil J
bfbbb8cf98
Merge pull request #5086 from YosysHQ/emil/driver-no-version
driver: add --no-version to suppress writing Yosys version
2025-05-08 16:28:25 +02:00
Emil J
6378ba10eb
Merge pull request #5078 from RonxBulld/main
Change the implementation of log_debug in kernel/log.h
2025-05-07 11:34:46 +02:00
Emil J. Tywoniak
90a2c92370 driver: allow --no-version still write things like Generated by Yosys 2025-05-07 11:34:23 +02:00
mikesinouye
93780bb869
Add <optional> to haslib.h which uses std::optional 2025-05-06 09:57:03 -07:00
Emil J. Tywoniak
d7affb8821 driver: add --no-version to suppress writing Yosys version in command outputs 2025-05-05 13:12:08 +02:00
Emil J
11f2348246
Merge pull request #5073 from YosysHQ/emil/fix-uncompressed-missing-file-error
gzip: refactor file open failure errors
2025-04-30 19:29:13 +02:00
RonxBulld
15cfce061a
Change the implementation of log_debug in kernel/log.h from a macro function to a normal function. 2025-04-29 22:43:10 +08:00
Emil J. Tywoniak
adb1986dc1 gzip: refactor file open failure errors 2025-04-29 10:37:35 +02:00
KrystalDelusion
bfe05965f9
Merge pull request #5066 from YosysHQ/george/opt_expr_shr_sign
opt_expr: fix sign extension for shifts
2025-04-29 09:29:10 +12:00
George Rennie
4fbb2bc1f3 celledges: use capped shift width 2025-04-26 18:34:21 +02:00
Emil J. Tywoniak
3541db8bbb driver: fix -X xtrace backtrace level 2025-04-25 00:51:10 +02:00
KrystalDelusion
1f32f980cd
Merge pull request #5025 from povik/fix-macc_v2-satgen
satgen: Fix $macc_v2 x-prop
2025-04-22 08:55:28 +12:00
Martin Povišer
f8e67c7a08 satgen: Fix $macc_v2 x-prop 2025-04-15 10:31:42 +02:00
Martin Povišer
38beae1e06
Merge pull request #4946 from povik/cost-cc-enhance
cost: Add `$mem_v2`, `$macc_v2` estimates
2025-04-14 11:08:59 +02:00
Krystine Sherwin
ca57df8927
cutpoint: Add $scopeinfo cell
Also adds "blackbox" as a valid TYPE.
2025-04-11 04:12:34 +12:00
Krystine Sherwin
f042c36898
rtlil.h: Extra comment on helper enums
i.e. making explicit the ones that aren't intended for direct use.
2025-04-08 11:59:42 +12:00
Krystine Sherwin
1ef9908a85
rtlil.cc: Fix box checks in selected_modules 2025-04-08 11:59:36 +12:00
Krystine Sherwin
7d7ee5d9bf
rtlil.h: Fix selection ctor ordering 2025-04-08 11:59:32 +12:00
Krystine Sherwin
cd3b914132
Reinstate #4768
Revert the reversion so that we can fix the bugs that the PR missed.
2025-04-08 11:58:05 +12:00
Miodrag Milanović
d49364d96f
Revert "Refactor full_selection" 2025-04-07 12:11:55 +02:00
KrystalDelusion
98d4355b82
Merge pull request #4768 from YosysHQ/krys/refactor_selections
Refactor full_selection
2025-04-05 14:15:27 +13:00
Krystine Sherwin
d8a9ad6860
Add Selection::clear() method
Use method in `select.cc` to reduce code duplication.
2025-04-05 10:56:01 +13:00
Krystine Sherwin
dab67f84da
rtlil.h: Document selections 2025-04-05 10:46:09 +13: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
Emil J. Tywoniak
7aefd4b226 gzip: back to pointers 2025-03-19 13:43:44 +01:00
Emil J. Tywoniak
a8a5463f57 gzip: uphold rules for basic_streambuf::underflow overrides 2025-03-19 13:43:44 +01:00
Emil J. Tywoniak
79985a2bca gzip: minor refactor 2025-03-19 13:43:44 +01:00
Emil J. Tywoniak
ceb7a923da io: smooth out non-POSIX function usage across platforms 2025-03-19 13:43:44 +01:00
Emil J. Tywoniak
ab2ca831c9 io: remove unused unistd.h to fix windows build 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
813f909460 gzip: istream 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
Martin Povišer
251285be4c cost: Add $mem_v2, $macc_v2 estimates 2025-03-18 13:51:09 +01:00
Martin Povišer
91cd382f8b macc: Rename 'ports' to 'terms' throughout codebase 2025-03-18 13:25:10 +01:00
KrystalDelusion
9fa1f0e70c
Merge pull request #4567 from kivikakk/cxxrtl-escape-trailing
cxxrtl: use octal encoding of non-printables.
2025-03-14 16:52:07 +13:00
Krystine Sherwin
68adac691d
rtlil.cc: Add comment to log_assert
Because the use of `RTLIL::AttrObject::get_blackbox_attribute()` is deprecated, but the assert is needed in case users are doing weird things.
2025-03-14 14:40:06 +13:00
Krystine Sherwin
a3968d43f0
Drop deprecation on Design::selected_modules()
Instead, change the default `Design::selected_modules()` to match the behaviour (i.e. `selected_unboxed_modules_warn()`) because it's a lot of files to touch and they don't really _need_ to be updated.
Also change `Design::selected_whole_modules()` users over to `Design::selected_unboxed_whole_modules()`, except `attrmap` because I'm not convinced it should be ignoring boxes.  So instead, leave the deprecation warning for that one use and come back to the pass another time.
2025-03-14 14:08:56 +13:00
Krystine Sherwin
add5eba9b2
Design::selection_stack should never be empty
Add a `log_assert` for it in `Design::check()`.
Remove unneeded checks in other places.
2025-03-14 14:08:16 +13:00
Krystine Sherwin
824f7146aa
Selecting a blackbox sets selects_boxes 2025-03-14 14:08:15 +13:00
Krystine Sherwin
a30bacfcb1
Add Selection::complete_selection
Used to select all modules including boxes, set when both `full` and `boxes` are true in the constructor, pulling down `full_selection`.
Add `Selection::selects_all()` method as short hand for `full_selection || complete_selection`.
Update selection operations to account for complete selections.
Add static methods to `Selection` for creating a new empty/full/complete selection to make it clearer to users when doing so.
Use said static methods to replace most instances of the `Selection` constructor.
Update `Selection::optimize` to use
2025-03-14 14:08:15 +13:00
Krystine Sherwin
d09ae42951
Fixing selections 2025-03-14 14:08:14 +13:00
Krystine Sherwin
091e9488fe
rtlil: Design::top_module() can be const
Since it doesn't change anything and is just a lookup.
2025-03-14 14:08:14 +13:00
Krystine Sherwin
dac2bb7d4d
Use selection helpers
Catch more uses of selection constructor without assigning a design.
2025-03-14 14:08:13 +13:00
Krystine Sherwin
a67b57bd64
rtlil: Add selection helpers
New methods on Design to push/pop selection instead of accessing the selection stack directly. Includes methods for pushing a full/complete/empty selection.
Also helper methods on modules to check `is_selected` and `is_selected_whole`.
2025-03-14 14:05:40 +13:00