Artur Bieniek
16fdd0e93c
Fiix fault on operations on uninitialized strings ( #6520 )
...
Signed-off-by: Artur Bieniek <abieniek@internships.antmicro.com>
2025-10-13 07:29:23 -04:00
Wilson Snyder
01157d414b
Optimize constant string arguments before Emit, and cleanup V3EmitV
2025-10-12 20:09:03 -04:00
Wilson Snyder
eae1e5bdf2
Internals/Tests: Cleanup some missing dev coverage items
2025-10-11 20:58:03 -04:00
Wilson Snyder
71941cc673
Fix incorrect nested interface-class error ( #6549 ).
2025-10-11 19:07:37 -04:00
Wilson Snyder
8785086bc8
Internals/Tests: Add `--debug-preproc-passthru` to cleanup some missing dev coverage items
2025-10-11 14:15:04 -04:00
Wilson Snyder
6e8bd3da19
Internals/Tests: Cleanup some missing dev coverage items
2025-10-11 12:54:55 -04:00
Wilson Snyder
078275034d
Internals: Parse randsequence but still unsupported ( #6131 partial)
2025-10-11 10:47:46 -04:00
Bartłomiej Chmiel
31e73f1645
Support simple cycle delay sequence expressions inside assertion properties ( #6508 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
2025-10-10 16:16:15 +02:00
Igor Zaworski
2ac7cf51a9
Optimization of typedef params ( #6543 ) ( #6547 )
2025-10-10 10:05:47 -04:00
Wilson Snyder
3027f67b6f
Internals/Tests: Cleanup some missing dev coverage items
2025-10-09 22:33:04 -04:00
Wilson Snyder
41b05cb1f8
Fix intent error on quoted strings ( #6544 ).
2025-10-09 21:24:27 -04:00
Wilson Snyder
3306ed146b
Internals: Use multi-character puts. No functional change intended.
2025-10-09 21:23:11 -04:00
Geza Lore
9dc0cf5a7c
Internals: Use a V3Graph for the hierarchical plan ( #6545 )
...
I stared this because the emitted makefiles for hierarchical verilation
were non-deterministic (iterating unordered_map indexed by pointers).
Then I realized that the V3HierPlan is just a dependency graph encoded
in a slightly idiosyncratic way. We do have a data structure to use for
that instead.
With that the output should always be deterministic + have nicer dumps.
2025-10-09 21:41:23 +02:00
Geza Lore
e63d486422
Internals: Fix coverage exclusion
2025-10-09 16:58:06 +01:00
Igor Zaworski
1a91ab02cf
Fix passing typedef value as parameter ( #6543 )
2025-10-09 10:08:06 -04:00
Geza Lore
e33b24fad2
Fix Dfg circular driver tracing with partial assignments
2025-10-09 09:31:19 +01:00
Geza Lore
49c51af841
Deprecate '--make cmake' option ( #6540 )
2025-10-08 09:40:17 -04:00
Artur Bieniek
222a3655ba
[ #84482 ] Fix inconsistent force assignment ( #6541 )
...
Signed-off-by: Artur Bieniek <abieniek@internships.antmicro.com>
2025-10-08 09:39:50 -04:00
Geza Lore
838b8a2bec
Internals: Remove dead code, fix or sign off coverage
...
Remove/fix/signoff uncontroversial code coverage holes. Also added a
couple TODOs that should be investigated at some point
2025-10-08 08:24:06 +01:00
Wilson Snyder
1a8f9f0483
Improve `lint_off` to allow multiple messages and comments ( #2755 partial).
2025-10-07 22:49:42 -04:00
Wilson Snyder
165622a9e9
Add NORETURN warning on functions without return values ( #6534 ).
2025-10-07 21:06:11 -04:00
Wilson Snyder
f979e459e8
Add error on ranges with tristate values ( #6534 ).
2025-10-07 20:36:50 -04:00
Wilson Snyder
9d6f127a4e
Internals: Fix extra spaces in emit. No functional change.
2025-10-07 19:22:16 -04:00
Wilson Snyder
bfe39ce5bc
Fix `--trace-max-width` and increase to 4096. ( #2385 ).
2025-10-07 18:50:31 -04:00
Geza Lore
832f41f0fe
Internals: Hide CC make rules ( #6537 )
...
All code is built as C++ via CXX, but we still have some references to
CC. Trying to make sure we don't add plain C later by hiding the C
compiler. (So it's always enough to override CXX=... in configure)
2025-10-07 17:37:42 +01:00
Bartłomiej Chmiel
888169571b
Fix memory leak for unsupported `$past` ( #6535 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
2025-10-07 09:56:11 -04:00
Wilson Snyder
717667034b
Fix loop exits on $finish
2025-10-06 19:19:15 -04:00
Wilson Snyder
5229ce8660
Fix error on circular structure typedef
2025-10-06 18:45:56 -04:00
Bartłomiej Chmiel
9f5d22b21f
Fix parsing of `eventually[]` and pexpr memory leaks ( #6530 )
...
* Fix parsing of eventually[]
* Fix parser memory leaks for pexpr
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
2025-10-06 15:42:40 +02:00
Wilson Snyder
f09c30df35
Internals: Refector to create single V3Number::emitC. Fix some double emit issues ( #6528 ).
2025-10-04 07:23:13 -04:00
Todd Strader
defe282fe8
Fix always_ff on constant ( #6519 )
2025-10-03 13:16:12 -04:00
Geza Lore
ce0a05691b
Internals: Improve coverage flow ( #6526 )
...
See addes "Code coverage" section in docs/internals.rst
2025-10-03 17:18:24 +01:00
Geza Lore
62dbbbba85
Internals: Rename --enable-asan to --enable-dev-asan and related
2025-10-03 12:26:48 +01:00
Bartłomiej Chmiel
cb5c56dac4
Internals: fix assertion type dumping ( #6523 )
2025-10-02 12:03:45 -04:00
github action
0b23787d6c
Apply 'make format'
2025-10-01 20:26:28 +00:00
Geza Lore
aaa49273cf
Internals: Fix coverage exclusion markers
2025-10-01 21:22:16 +01:00
Geza Lore
e9c48cd1ce
Internals: Optimize temporary memory allocations ( #6517 )
...
This patch gets rid of over 80% of temporary dynamic memory allocations
(when a malloced node is immediately freed with no other malloc in
between). It also gets rid of over 20% of all calls to malloc.
It's worth ~3% average verilation speed up with tcmalloc, and more
without tcmalloc.
2025-10-01 15:01:30 +01:00
Geza Lore
435e1149d5
Internals: Remove dupliacte netSig parse rules
2025-10-01 10:46:55 +01:00
Geza Lore
4d518873d0
Fix stray net delay in parser
...
Fixes #6500
2025-10-01 10:19:39 +01:00
Wilson Snyder
caca1fcef0
Internals: Change order of V3Number constructor args to follow V3Const. No functional change intended.
2025-09-30 22:04:24 -04:00
Szymon Gizler
e21c4fbbb5
Fix .vlt public_flat* and others to support long identifier names ( #6516 )
2025-09-30 16:55:11 -04:00
Geza Lore
b902e4bcf5
Reduce memory use of statistic collection ( #6513 )
2025-09-30 07:06:57 -04:00
Wilson Snyder
c5f3192588
Change default `--expand-limit` to 256 ( #3419 ). ( #6489 )
2025-09-30 06:53:10 -04:00
Geza Lore
e04f51ebd2
Internals: Change AstAssignVarScope into AstAliasScope ( #6280 ) ( #6512 )
...
Rename and make it derive from AstNode instead of AstNodeAssign.
Small step towards #6280 . No functional change.
2025-09-30 06:40:17 +01:00
Geza Lore
283810cbf7
Internals: Make AstNodeBlock an AstNodeStmt ( #6280 ) ( #6511 )
...
Small step towards #6280 . No functional change.
2025-09-30 06:39:51 +01:00
Geza Lore
202a53f4f6
Internals: Parse ++/-- in statement position as AstStmtExpr ( #6280 ) ( #6510 )
...
Small step towards #6280 . No functional change.
2025-09-29 21:01:40 +02:00
Ryszard Rozak
09518ee207
Support aliases with more operands ( #6501 )
2025-09-29 13:23:51 -04:00
Geza Lore
5cd8bd0356
Remove use of VL_INLINE_OPT macro ( #6507 )
2025-09-29 18:07:36 +01:00
Geza Lore
603f4c615a
Improve Loop unrolling ( #6480 ) ( #6493 )
...
This patch implements #6480 . All loop statements are represented using
AstLoop and AstLoopTest.
This necessitates rework of the loop unroller to handle loops of
arbitrary form. To enable this, I have split the old unroller used for
'generate for' statements and moved it into V3Param, and subsequently
rewrote V3Unroll to handle the new representation. V3Unroll can now
unroll more complex loops, including with loop conditions containing
multiple variable references or inlined functions.
Handling the more generic code also requires some restrictions. If a
loop contains any of the following, it cannot be unrolled:
- A timing control that might suspend the loop
- A non-inlined call to a non-pure function
These constructs can change the values of variables in the loop, so are
generally not safe to unroll if they are present. (We could still unroll
if all the variables needed for unrolling are automatic, however we
don't do that right now.)
These restrictions seem ok in the benchmark suite, where the new
unroller can generally unroll many more loops than before.
2025-09-29 15:25:25 +01:00
Geza Lore
5c72b45975
Internals: Clean up V3Branch ( #6505 )
...
No functional change
2025-09-29 14:51:37 +01:00