Wilson Snyder
173f57c636
Changed --no-merge-const-pool to -fno-merge-const-pool ( #3436 ).
2022-06-03 19:41:59 -04:00
Wilson Snyder
1f3e8640f7
Examples: -Os should be a compile flag, not Verilator flag.
2022-06-03 18:45:39 -04:00
Wilson Snyder
6039e9dcc3
Commentary
2022-06-02 21:32:22 -04:00
Yutetsu TAKATSUKASA
d64f979f99
Fix BitOpTree optimization to consider polarity of frozen node ( #3445 ) ( #3459 )
...
* Tests: add a test to another failing case of #3445
* Consider polarity as lsb in BitOpTree optimization.
2022-06-01 09:26:16 +09:00
Huanghuang Zhou
0c53d19113
Commentary: InstrCountVisitor
documentation ( #3457 )
...
Signed-off-by: huanghuang.zhou <huanghuang.zhou@terapines.com>
2022-05-31 07:10:58 -04:00
Geza Lore
c64a07fd09
CI: fix cache keys in test jobs
2022-05-30 18:35:59 +01:00
Geza Lore
694919b9d1
CI: add ubuntu-22.04 regressions
2022-05-30 18:34:41 +01:00
Geza Lore
606b35853b
Configure and compile with C++17 on Ubuntu 22.04
...
The packaged libsystemc on Ubuntu 22.04 uses C++17, so default to that
on that platform. Keep C++14 elsewhere.
2022-05-30 18:34:41 +01:00
Yutetsu TAKATSUKASA
26b7452178
Fix #3445 of BitOpTreeOpt ( #3453 )
...
* Tests: Check BitOpTree statistics in t_const_opt.
* Tests: Add a test to reproduce #3445
* Fix #3445 . Don't forget LSB of frozen node in BitOpTreeOpt.
* Apply suggestions from code review
Co-authored-by: Geza Lore <gezalore@gmail.com>
2022-05-30 19:33:06 +09:00
Geza Lore
b51f887567
Perform VCD tracing in parallel when using --threads ( #3449 )
...
VCD tracing is now parallelized using the same thread pool as the model.
We achieve this by breaking the top level trace functions into multiple
top level functions (as many as --threads), and after emitting the time
stamp to the VCD file on the main thread, we execute the tracing
functions in parallel on the same thread pool as the model (which we
pass to the trace file during registration), tracing into a secondary
per thread buffer. The main thread will then stitch (memcpy) the buffers
together into the output file.
This makes the `--trace-threads` option redundant with `--trace`, which
now only affects `--trace-fst`. FST tracing uses the previous offloading
scheme.
This obviously helps a lot in VCD tracing performance, and I have seen
better than Amdahl speedup, namely I get 3.9x on XiangShan 4T (2.7x on
OpenTitan 4T).
2022-05-29 19:08:39 +01:00
Geza Lore
c4b8675d77
Always inline some small, hot trace routines
2022-05-28 12:47:09 +01:00
Geza Lore
a7cd7a1ed9
Initialize VerilatedTrace members in class
2022-05-28 12:47:07 +01:00
Geza Lore
a48c779367
Rename verilated_trace_imp.cpp -> verilated_trace_imp.h
...
Also fix file header to describe purpose of this file.
2022-05-28 12:20:35 +01:00
Geza Lore
cf1eccc24f
Make local function 'static' in verilated_profiler.h
2022-05-28 12:17:39 +01:00
Geza Lore
d45caca011
Remove legacy VCD tracing API
...
This has not been used by Verilator for a while, but was kept for
compatibility with some external code. Now removed.
2022-05-28 12:07:24 +01:00
Geza Lore
0722f47539
Improve V3MergeCond by reordering statements ( #3125 )
...
V3MergeCond merges consecutive conditional `_ = cond ? _ : _` and
`if (cond) ...` statements. This patch adds an analysis and ordering
phase that moves statements with identical conditions closer to each
other, in order to enable more merging opportunities. This in turn
eliminates a lot of repeated conditionals which reduced dynamic branch
count and branch misprediction rate. Observed 6.5% improvement on
multi-threaded large designs, at the cost of less than 2% increase in
Verilation speed.
2022-05-27 16:57:51 +01:00
github action
a372e010bd
Apply 'make format'
2022-05-25 04:51:51 +00:00
Wilson Snyder
530817191e
Support non-ANSI interface port declarations ( #3439 ).
2022-05-25 00:50:50 -04:00
Geza Lore
1282548a1c
Only consider definitions in t_flag_csplit
2022-05-20 18:02:00 +01:00
Geza Lore
c7610ed044
Fix FST tracing thread in CMake build
2022-05-20 17:04:46 +01:00
Geza Lore
ffc1c51526
Commentary
2022-05-20 16:44:53 +01:00
Geza Lore
b130a8cfeb
Add -DVM_TRACE_VCD in model builds with Make with --trace
2022-05-20 16:44:38 +01:00
Geza Lore
551bd284dd
Rename some internals related to multi-threaded tracing
...
Rename the implementation internals of current multi-threaded tracing to
be "offload mode". No functional change, nor user interface change
intended.
2022-05-20 16:44:35 +01:00
Krzysztof Bieganski
9edccfdffa
Initial support for intra-assignment timing controls, net delays ( #3427 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-17 19:19:44 +01:00
Geza Lore
1a056f6db9
Fix invalid conditional merging when starting at 'c = c ? a : b'
...
Fixes #3409 .
2022-05-17 18:36:40 +01:00
Krzysztof Bieganski
e018eb7bac
Support AstClass::repairCache() after V3Class ( #3431 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-17 09:22:43 -04:00
Krzysztof Bieganski
0a91ddf38a
Tests: Better grep check in t_foreach ( #3435 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-17 09:20:59 -04:00
Krzysztof Bieganski
67bb2c640e
Tests: Rename t_timing_clkgen to t_timing_clkgen1 ( #3430 )
...
This is a pre-PR to #3363 , which will introduce more clock gen tests.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-17 09:19:51 -04:00
Krzysztof Bieganski
561eaa311d
Tests: Enable CI testing with GCC 10 ( #3432 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-17 09:19:06 -04:00
Krzysztof Bieganski
3f7a248ed4
Refactor some of the Begin handling to a separate function ( #3426 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-16 20:45:33 +01:00
Krzysztof Bieganski
ecaa07a72a
Rename AstTimingControl to AstEventControl ( #3425 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-16 20:44:41 +01:00
Wilson Snyder
99bdc27be3
Internals: Cleanup some statics, trivial part towards ( #3419 )
2022-05-15 14:26:55 -04:00
Wilson Snyder
c3c46967dc
Tests: Appease sanitizer ( #3121 ).
2022-05-15 11:50:52 -04:00
Wilson Snyder
7f1a9239ab
Commentary, fix typo ( #3121 )
2022-05-15 11:14:07 -04:00
Geza Lore
c8102c8ffe
Fix typo
2022-05-15 16:01:35 +01:00
Wilson Snyder
5aa12e9b51
Add assert when VerilatedContext is mis-deleted ( #3121 ).
2022-05-15 10:51:03 -04:00
Geza Lore
829437b20b
Commentary - dependencies
2022-05-15 15:25:46 +01:00
Wilson Snyder
3c4131d45d
Fix 'with' operator with type casting ( #3387 ).
2022-05-15 09:53:48 -04:00
Wilson Snyder
ae8d8ee1ac
Fix crash with misuse of display.
2022-05-15 09:29:45 -04:00
Geza Lore
89ec3d16dc
Allow const nodes in VNRef
...
No functional change.
2022-05-15 13:30:07 +01:00
Wilson Snyder
7602c983c5
Commentary
2022-05-14 18:16:31 -04:00
HungMingWu
560efb2c9e
Internals: Fix memory leak in V3FileLine ( #3407 ) ( #3408 ). No functional change intended.
2022-05-14 18:15:38 -04:00
Wilson Snyder
c2328ef46a
Spelling fixes.
2022-05-14 16:12:57 -04:00
Wilson Snyder
f6035447ae
Internals: Use mutable for mutexes. No functional change.
2022-05-13 07:21:39 -04:00
Wilson Snyder
38438b3373
Internals: Cleanup some defaults. No functional change.
2022-05-12 23:30:39 -04:00
Wilson Snyder
71dedccbbe
Support compile time trace signal selection with tracing_on/off ( #3323 ).
2022-05-12 22:28:08 -04:00
Martin Stadler
cddbe4642f
Fix cmake rules to support higher-level targest ( #3377 ) ( #3386 ).
...
Don't add linker flags as generator expression to support linking `TARGET` to higher-level targets in a top-level CMakeLists.txt file.
2022-05-11 21:33:05 -04:00
Wilson Snyder
bdfdc737a0
Internals: Cleanup V3Config. No functional change intended.
2022-05-11 00:47:52 -04:00
Wilson Snyder
3d045c3aee
Internals: Cleanup some verilog.y formatting. No functional change.
2022-05-09 00:37:51 -04:00
HungMingWu
9583f152ee
Fix compile error when enable VL_LEAK_CHECKS ( #3411 ).
...
Signed-off-by: HungMingWu <u9089000@gmail.com>
2022-05-08 20:49:13 -04:00