Commit Graph

9766 Commits

Author SHA1 Message Date
Geza Lore e6a070b93b CI: Turn off bash tracing in pages.yml - missed 2026-06-08 16:47:37 +01:00
Geza Lore 487437f87d CI: Turn off bash tracing in pages.yml 2026-06-08 16:45:40 +01:00
Geza Lore e8489cd38b CI: Fix max-parallel factor for RTLMeter runs
The intention was to run scheduled with max 2 parallel jobs, however,
due to a bug they were run with 7 just like PR runs. This didn't seem to
cause problems, so change it all to 7, except for the hierarchical,
which runs on 6, for a total of a maximum 20 parallel RTLMeter run jobs
per workflow run.
2026-06-08 13:18:01 +01:00
Geza Lore 8fef7989d7 CI: Fail RTLMeter runs fast for PRs 2026-06-08 13:17:50 +01:00
Geza Lore 20e72ae0d0
Configure: Fall back on dynamic malloc libraries if static not available (#7736)
When configured with --enable-partial-static (default on), only the
availability of static libraries were checked. Some platform only
package dynamic libs. If the static library is not found, fall back on
trying the dynamic one.
2026-06-08 11:55:38 +01:00
Wilson Snyder 57c9f22e3c Tests: Enforce 2-space indents on Verilog 2026-06-07 22:00:24 -04:00
Wilson Snyder 96630cee5a Verilog format 2026-06-07 21:55:43 -04:00
Wilson Snyder 53cb913ab6 Internals: Fix lint-py warning 2026-06-07 21:37:16 -04:00
Marco Bartoli 2db34818b3
Fix parameter values in coverage bins widths (#7732) (#7734)
Fixes #7732.
2026-06-07 20:47:43 -04:00
Marco Bartoli 4d556dfcc7
Fix s_eventually on interface (#7731) (#7733)
Fixes #7731.
2026-06-07 20:46:00 -04:00
Wilson Snyder 4e49941b39 CI: Skip later CI on reformat
Small chance a bug gets through, but this will avoid multiple runs on the
common case of reformatting users' pull requests, and related run
cancellation problems.
2026-06-07 16:02:29 -04:00
Geza Lore 5cb8d8291a
CI: Load RTLMeter cases to run from separate file (#7730)
Add a script that prints the job matrix of cases to run with RTLMeter.
This enables running different sets based on parameters. It will run
everything on scheduled nightly runs, but only a subset on PRs (to reduce
time and variance due to short cases).

Also prints the job matrix in descending duration order, which
effectively makes GitHub actions schedule longest jobs first to reduce
total workflow latency.
2026-06-07 20:50:31 +01:00
Geza Lore 220e46994c
CI: Combine RTLMeter collate step to reduce job count (#7729) 2026-06-07 20:30:57 +01:00
Geza Lore 83ef69d866
CI: Run RTLMeter on the same machine with target commit (#7726) 2026-06-07 15:36:34 +01:00
Wilson Snyder d9cbc27902 Disable blank github issues 2026-06-07 08:47:00 -04:00
Wilson Snyder d62ebf9e6d Update github issue templates 2026-06-07 08:40:07 -04:00
Wilson Snyder f20076c4a3 Commentary: Changes update 2026-06-07 08:34:17 -04:00
Geza Lore 4e3be56415
CI: Improve RTLMeter reports (#7725) 2026-06-07 11:50:02 +01:00
Geza Lore 4ee19c4065 CI: Generate whole RTLMeter report in ci-rtlmeter-report.bash 2026-06-07 09:54:40 +01:00
Geza Lore 067cd6c9c6 CI: Show summary tables in 'pr: rtlmeter' results 2026-06-06 19:10:27 +01:00
em2machine 680ef8dda9
Fix for HIERPARAM - relax checking (#7570) (#7690) 2026-06-06 11:55:47 -04:00
Wilson Snyder 85d9c38ebf Commentary: Changes update 2026-06-06 10:46:18 -04:00
Wilson Snyder 629266a988 Fix whitespace 2026-06-06 10:46:02 -04:00
Geza Lore e35b2429ff Optimize $countones constant in Dfg 2026-06-06 06:11:13 +01:00
Geza Lore ca376d681a Optimize $onehot in Dfg 2026-06-06 06:11:13 +01:00
Geza Lore e53d6d9006 Improve procedural loop unrolling
- Enable unrolling of nested loops when the inner loop updates the
  outer loop condition
- Enable unrolling 'for' loops with break statements
2026-06-06 06:11:13 +01:00
github action e9274be247 Apply 'make format' 2026-06-06 00:44:02 +00:00
Nikolai Kumar bc86701bec
Support forceable on unpacked array variables (#7677) (#7678)
Fixes #7677.
2026-06-05 20:43:06 -04:00
Wilson Snyder 816ab67826 Commentary: Changes update 2026-06-05 18:36:55 -04:00
Ryszard Rozak 0851d1fbe5
Fix optimizations of assignments with timing controls (#7718) 2026-06-05 12:21:21 -04:00
Matthew Ballance 2886291eba
Support covergroups, coverpoints, and bins (#784) (#7117)
Fixes #784.
2026-06-05 09:35:01 -04:00
Mateusz Gancarz 7e2fe64ae2
Fix splitting functions containing fork logic (#7717) 2026-06-05 09:32:52 -04:00
Larry Doolittle 99f62fca62
Adjust installredirect Makefile action to not write to ${srcdir} (#7715) 2026-06-05 06:53:50 -04:00
Yogish Sekhar 947a08965e
Add hierarchy-aware reporting to `verilator_coverage` (#7657) 2026-06-04 09:32:19 -04:00
Geza Lore 14cf611c72 Internals: Factor out inlining predicate in V3Gate
No functional change.
2026-06-04 09:33:24 +01:00
Nick Brereton 81282c3d57
Fix (const) ref default task argument handling (#7698) 2026-06-03 22:31:21 -04:00
Nick Brereton 4d5393c191
Fix tristate lowering for interface inout ports (#7134 repair) (#7708) (#7710)
Fixes #7708.
2026-06-03 19:51:49 -04:00
Todd Strader 7bd41bfbb9
Fix MULTIDRIVEN in generates (#7709) 2026-06-03 19:50:56 -04:00
Artur Bieniek 72db0b575e
Support if/if-else in properties (#7692) 2026-06-03 15:54:15 -04:00
Nick Brereton bbd8d927ee
Support printing enum names for %p and %s (#5523) (#7338 repair) (#7521) (#7527) 2026-06-03 14:55:00 -04:00
Geza Lore 41811d436f
Optimize runtime assertOn() checks (#7707)
Combine consecutive assertOn() checks into one, and hoist past enclosing
'if' statements if possible. This enables combining a lot of them, which
can be worth 10% performance on some assertion heavy designs depending
on how the assertions are written.
2026-06-03 18:09:49 +01:00
Nick Brereton 1af9c39759
Fix ref-arg type check for packed arrays with differing range directions (#7700) 2026-06-03 12:49:14 -04:00
Igor Zaworski bbf8471c2a
Fix of ignoring not found pruned modules with encoded names (#7706) 2026-06-03 12:19:33 -04:00
Geza Lore c878a7e735 Optimize VL_ONEHOT
Equivalent to `__builtin_popcount(_) == 1` and a few instructions
shorter.
2026-06-03 11:24:34 +01:00
Geza Lore 7b45b3ee8a Optimize string formatting runtime functions
Add an overload that takes `const char*` format string. This avoids
having to construct/destruct a temporary `std::string` at the call site
when calling these functions with a string literal, which is fairly
common. This is worth 25% code size on some assertion heavy design.

Also use `std::string::clear()` instead of assigning an empty string
which is more efficient.
2026-06-03 11:18:38 +01:00
Geza Lore 715f5f0c13
Optimize $sformatf into $sformat (#7701)
Turn `x = $sformatf(...)` into `$sformat(x, ...)`. The former requires
checking and running a destructor for `x` at the call site, the later
does it in the callee VL_SFORMAT. This reduces the size of the call
site, which can be significant e.g. in the presence of many assertions.

Also added a rewrite of `$sformat(x, "const-string")` back into `x =
"const-string"` for the cases where the `$sformatf` would have been
folded into a constant string.
2026-06-03 08:43:05 +01:00
Geza Lore efb83c55de
Optimize VL_SFORMAT when result is string (#7702)
Omit unused bit width parameter. Emit rule is simple enough to change
and the unused parameter just bloats code size.
2026-06-03 08:42:48 +01:00
Geza Lore 970e7983d3
Optimize $sformat in V3Life (#7703)
Treat AstSFormat as a special form of assignment in V3Life. This allows
eliminating earlier redundant assignments to strings when an $sformat
later sets the string. UVM has lot of these.
2026-06-03 08:41:58 +01:00
Geza Lore 0026a73ca0
Optimize DPI import argument passing (#7704)
Pass inputs to DPI import wrappers by reference (unless fits in a
register). This eliminates a lot of temporary constructors/destructors.
2026-06-03 08:41:33 +01:00
Krzysztof Bieganski 7664bbb3ef
Support generic interface arrays (#7604) 2026-06-02 22:28:50 -04:00