Files
yosys/kernel
Jannis Harder 0d30a4d479 rtlil: Add packed extract implementation for SigSpec
Previously `extract` on a `SigSpec` would always unpack it. Since a
significant amount of `SigSpec`s have one or few chunks, it's worth
having a dedicated implementation.

This is especially true, since the RTLIL frontend calls into this for
every `wire [lhs:rhs]` slice, making this `extract` take up 40% when
profiling `read_rtlil` with one of the largest coarse grained RTLIL
designs I had on hand.

With this change the `read_rtlil` profile looks like I would expect it
to look like, but I noticed that a lot of the other core RTLIL methods
also are a bit too eager with unpacking or implementing
`SigChunk`/`Const` overloads that just convert to a single chunk
`SigSpec` and forward to the implementation for that, when a direct
implementation would avoid temporary std::vector allocations. While not
relevant for `read_rtlil`, to me it looks like there might be a few easy
overall performance gains to be had by addressing this more generally.
2024-04-22 13:26:17 +02:00
..
2022-11-30 18:24:35 +01:00
2024-02-06 17:51:24 +01:00
2022-05-27 12:37:03 +02:00
2021-10-08 15:44:07 +02:00
2024-04-02 12:13:22 +02:00
2023-11-01 08:13:27 +01:00
2022-05-13 00:37:14 +02:00
2022-01-28 23:34:41 +01:00
2024-02-06 17:51:24 +01:00
2024-02-06 18:01:26 +01:00
2024-02-06 18:01:26 +01:00
2023-04-17 10:53:05 -07:00
2023-01-11 18:07:16 +01:00