Geza Lore
bf8a88a0ad
Do not create any empty ExecMTasks ( #4987 )
2024-03-16 12:00:32 +00:00
Geza Lore
878204db73
Do not feed any empty logic into scheduling ( #4972 )
2024-03-16 10:35:56 +00:00
Nolan Poe
08c76b1da6
Fix GCC14 warnings on template specialization syntax ( #4974 ) ( #4975 )
2024-03-15 22:21:08 -04:00
Wilson Snyder
e82c9db6da
Fix unpacked structure upper bit cleaning ( #4978 ).
2024-03-15 21:56:24 -04:00
Wilson Snyder
4a439beae5
Add error on missing pure virtual functions ( #4961 ).
2024-03-11 18:56:30 -04:00
Wilson Snyder
49022c3e73
Add error on calling static function without object ( #4962 ).
2024-03-11 18:23:55 -04:00
Geza Lore
c92ced4ac7
Do not defer deletion in const-bit-op-tree
...
Deferring deletion of unused terms is not necessary, but can cause huge
memory usage increases in some bad cases.
2024-03-11 17:33:40 +00:00
Wilson Snyder
ba47da6587
Internals: Move vl_timescaled_double to verilated_funcs.h. No functional change intended
2024-03-10 22:34:32 -04:00
Geza Lore
c0391990ad
Increase graph ParallelismReprot values to uint64_t
2024-03-10 18:56:31 +00:00
Geza Lore
2247e1e345
Cleanup/simplify V3OrderParallel ( #4959 )
...
No functional change.
2024-03-10 18:15:45 +00:00
Geza Lore
e4847464d4
Split V3Partition into logically separate pieces ( #4958 )
...
V3Partition used to contain 2 conceptually separate set of algorithms
- The MTask partitioning/coarsening algorithm used by V3Order. This has
been moved to V3OrderParallel.cpp
- The lowering of AstExecGraph into per thread functions by packing
tasks into threads and creating additional code
(V3Partition::finalize). This has been moved to the new
V3ExecGraph.cpp
This patch is just code movement/rename with minimal fixes required to
do so.
2024-03-10 15:58:58 +00:00
Geza Lore
a686e547cf
Factor out graph parallelism report into a generic algorithm ( #4957 )
...
This is a generic algorithm parametrised by a cost function, so
implement it as such for easy reuse.
2024-03-10 14:56:43 +00:00
Geza Lore
1481d34959
Add candidate item count to MergeCond stats
2024-03-09 22:11:04 +00:00
Nolan Poe
04512e5d04
Add custom version for verilator --version packaging ( #4954 )
2024-03-09 16:44:25 -05:00
Geza Lore
9a3aed57b1
Internals: Simplify/cleanup V3OrderSerial ( #4955 ). No functional change.
...
Remove redundant data structures and simplify/cleanup implementation.
No functional change. Output is identical.
2024-03-09 16:19:35 -05:00
Geza Lore
5a69321be3
Split V3Order into further part and decouple various components ( #4953 )
...
Continuing the idea of decoupling the implementations of the various algorithms.
The main points:
-Move the former "processDomain" stuff, dealing with assigning combinational logic into the relevant sensitivity domains into V3OrderProcessDomains.cpp
-Move the parallel code construction in V3OrderParallel.cpp (Could combine this with some parts of V3Partition - those not called from V3Partition::finalize - but that's not for this patch).
-Move the serial code construction into V3OrderSerial.cpp
-Factored the very small common code between the parallel and serial code construction (processMoveOneLogic) into V3OrderCFuncEmitter.cpp
2024-03-09 12:43:09 +00:00
Wilson Snyder
5ee938fd1c
Fix assignment of null into struct member ( #4952 ).
2024-03-08 17:33:51 -05:00
Arkadiusz Kozdra
f78783e187
Internals: Use LogOr/LogAnd on inside operator expansion ( #4951 )
...
This will help introducing constrained randomization, as SMT solvers
treat booleans and 1-bit vectors as incompatible types.
2024-03-08 08:17:41 -05:00
Wilson Snyder
8ba494c71f
Fix null characters in shortened identifiers ( #4946 ).
2024-03-07 18:09:55 -05:00
Geza Lore
acb63c929b
Split V3Order.cpp into multiple smaller files ( #4950 ). No functional change intended.
...
Move OrderBuildVisitor into V3OrderGraphBuilder.cpp (and rename to
V3OrderGraphBuilder). Move ProcessMoveBuildGraph to
V3OrderMoveGraphBuilder.cpp (and rename to V3OrderGraphBuilder).
This patch is pure code movement/rename, no refactoring at all.
2024-03-07 17:12:19 -05:00
Geza Lore
26dd5d4550
Add some missing VNUserInUse ( #4949 )
2024-03-07 20:26:58 +00:00
Bartłomiej Chmiel
32f288084a
Add UNUSEDLOOP when unused loop is removed ( #4926 )
2024-03-07 08:33:49 -05:00
Andrew Nolte
6db149c588
Fix generate blocks in vpi_iterate ( #3609 ) ( #4913 )
2024-03-06 18:33:30 -05:00
Geza Lore
0fed5f8b3e
Avoid creating redundant vertices in V3DfgPeephole ( #4944 )
...
Add a new data-structure V3DfgCache, which can be used to retrieve
existing vertices with some given inputs vertices. Use this in
V3DfgPeephole to eliminate the creation of redundant vertices.
Overall this is performance neutral, but is in prep for some future
work.
2024-03-06 18:01:52 +00:00
Geza Lore
a30930bdcc
Fix unsound temporary name generation in V3DfgRegularize
...
Sadly used to produce some conflicting names.
2024-03-05 19:17:41 +00:00
Geza Lore
3a1355fb54
Fix bad assertion in DFG variable elimination
...
Fixes #4943
2024-03-05 18:51:46 +00:00
Geza Lore
745605efe3
Fix DFG removing forceable signals ( #4942 )
...
DFG could remove forceable signals by replacing them with their
in-design driver. This is a bit of a pain to prevent, and ideally the
forcing transform should happen before DFG, but implementing it there is
a pain due to having to rewrite ports based on direction. This is an
attempted fix in DFG. More cases might remain.
2024-03-03 16:22:41 +00:00
Wilson Snyder
0fbd4313b2
Fix __Vlip undefined error in --freloop ( #4824 ).
2024-03-03 11:10:46 -05:00
Wilson Snyder
9f8f61ef2f
Internals: Only show SimulateVisitor note once per type
2024-03-03 11:10:19 -05:00
github action
4b1f4938b8
Apply 'make format'
2024-03-03 15:23:47 +00:00
Kefa Chen
5f1dc73a1b
Support public packed struct / union ( #860 ) ( #4878 )
2024-03-03 10:23:04 -05:00
Geza Lore
5e1fc6e24d
Add DFG 'regularize' pass, and improve variable removal ( #4937 )
...
This functionality used to be distributed in the removeVars pass and the
final dfgToAst conversion. Instead added a new 'regularize' pass to
convert DFGs into forms that can be trivially converted back to Ast, and
a new 'eliminateVars' pass to remove/repalce redundant variables. This
simplifies dfgToAst significantly and makes the code a bit easier to
follow.
The new 'regularize' pass will ensure that every sub-expression with
multiple uses is assigned to a temporary (unless it's a trivial memory
reference or constant), and will also eliminate or replace redundant
variables. Overall it is a performance neutral change but it does
enable some later improvements which required the graph to be in this
form, and this also happens to be the form required for the dfgToAst
conversion.
2024-03-02 19:49:29 +00:00
Wilson Snyder
0ec32ee404
Parse 1800-2023 map expressions and throw UNSUPPORTED
2024-03-02 10:15:19 -05:00
Wilson Snyder
97b21b3849
Parse 1800-2023
2024-03-02 10:15:19 -05:00
Wilson Snyder
214173c6b8
Support 1800-2023 preprocessor ifdef expressions; add PREPROC zero warning.
2024-03-02 10:15:19 -05:00
Wilson Snyder
3786f59e03
Change to IEEE 1800-2023 warning mentions
2024-03-02 10:15:19 -05:00
Wilson Snyder
91dd3c5fac
Support 1800-2023 keywords.
2024-03-02 10:15:19 -05:00
Yutetsu TAKATSUKASA
da9521a351
Internals: Add --debug-width option for developers to check width consistency ( #4923 )
2024-03-02 08:57:26 -05:00
Wilson Snyder
af51107587
Fix statistics missing some additions.
2024-03-01 20:27:57 -05:00
Wilson Snyder
a4813ec677
Add warning on TOP-named modules ( #4935 ).
2024-03-01 17:28:12 -05:00
Kamil Rakoczy
01dadb0a8d
Fix try-lock spuriously fails ( #4931 ) ( #4938 )
2024-03-01 15:29:13 -05:00
Geza Lore
9dcb7ea6a9
Fix minor V3DfgPatternStats coding issues
2024-03-01 14:56:35 +00:00
github action
adfe072b89
Apply 'make format'
2024-03-01 14:15:34 +00:00
Yan Xu
b12f8b3d73
Fix V3Unknown unpacked struct x-assign ( #4934 )
2024-03-01 09:14:49 -05:00
Geza Lore
3af0eb7fa0
Internals: Emit a separate CFunc for each MTask body ( #4932 ) ( #4933 )
2024-02-29 16:53:53 -05:00
Wilson Snyder
a69cb9b044
Tests: Avoid verilated.v include in most tests
2024-02-27 18:08:37 -05:00
Wilson Snyder
e320b0b581
Internals: Favor const_iterators. No functional change intended.
2024-02-25 17:12:13 -05:00
Wilson Snyder
42041f2403
Fix invalid cast on string structure creation ( #4921 ).
2024-02-25 08:19:53 -05:00
Yutetsu TAKATSUKASA
51ae8e13fb
Add --assert-case option ( #4919 )
2024-02-23 23:05:53 +09:00
Geza Lore
0892b39ad2
Fix incorrect code generation for change expression on typedefed unpacked array ( #4915 )
2024-02-23 03:53:42 -05:00
Geza Lore
5964d5cf63
Fix inconsistent driver resolution with typedefs ( #4917 )
2024-02-22 18:33:23 +00:00
Paul Swirhun
e00e4d4245
Fix whitespace in `pragma protect version` ( #4914 )
2024-02-22 03:29:57 -05:00
Yutetsu TAKATSUKASA
4b9532fe24
Improve message for priority case assertion failure ( #4905 )
2024-02-22 03:09:14 -05:00
Yutetsu TAKATSUKASA
a951446f9b
Add --[no]-stop-fail option ( #4904 )
...
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
2024-02-19 21:26:58 +09:00
Yutetsu TAKATSUKASA
65b632a7dd
Improve assertion for unique case ( #4892 )
...
- Use parallel_case, unique, and unique0 in error message
- Distinguish multiple match and no match
- Show the case value that triggers the assertion
2024-02-13 21:53:32 +09:00
Geza Lore
cbc76a7816
Dump DFG patterns with --stats ( #4889 )
...
With --stats, we will print DFG pattern combinations, one per line, as
S-expressions to new stat files, together with their frequency, to aid
discovery of new peephole patterns.
2024-02-11 15:41:10 +00:00
Szymon Gizler
d667b73e8d
Add --json-only and related JSON dumping ( #4715 ) ( #4831 ).
2024-02-09 17:50:09 -05:00
Wilson Snyder
248de2be2e
Fix coverage with member
2024-02-08 21:51:36 -05:00
Wilson Snyder
365537d8e3
Fix coverage of delayed nets
2024-02-08 20:25:17 -05:00
Wilson Snyder
a23cf1ceea
Fix toggle coverage dataDeclp error on multi-edge driven signals.
2024-02-08 19:21:44 -05:00
Wilson Snyder
be471e9ccc
Internals: Minor coverage reformatting/renaming. No functional change.
2024-02-08 19:10:38 -05:00
Wilson Snyder
13b7cce8be
Fix compile error on structs with queues (and ignore toggle coverage on queues).
2024-02-08 08:44:27 -05:00
Wilson Snyder
efff630763
Fix tautological-compare warnings.
2024-02-07 22:16:08 -05:00
Wilson Snyder
e2e0795538
Fix toggle coverage of unpacked unions with reals.
2024-02-07 21:03:32 -05:00
Wilson Snyder
c20634e4f8
Fix coverage of real arrays giving operator^ not defined
2024-02-07 20:11:27 -05:00
Wilson Snyder
715dce546f
Fix debug infinite loop when bad coverage pointers
2024-02-07 19:57:02 -05:00
Wilson Snyder
07d86bf91d
Allow loop unrolling with coverage
2024-02-07 19:56:32 -05:00
Krzysztof Bieganski
fe8c7c5a94
Fix timing with expr on assign LHS ( #4880 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2024-02-06 07:27:19 -05:00
Wilson Snyder
7ada5195d8
Fix `this` in member initialization ( #4710 ). ( #4876 )
2024-02-04 19:44:10 -05:00
Wilson Snyder
a6ad85244f
Backout ( #4710 ) due to leak
2024-02-04 18:13:22 -05:00
Wilson Snyder
f13f2296de
Fix `this` in member initialization ( #4710 ).
2024-02-04 16:09:01 -05:00
Geza Lore
6ca60429ce
Fix incorrect temporary insertion in loop conditions with statements ( #4873 )
...
When the condition of an AstWhile loop contains a statement (e.g.
through an AstExprStmt), temporaries inserted in that statement need to
go before that statement, not in the AstWhile precondition.
2024-02-04 09:19:54 -05:00
Yutetsu TAKATSUKASA
999c9ae21c
Fix #4864 of wrong runtime result ( #4867 )
...
* Fix #4864 . Ignore if EQ/NE is under SHIFTR.
2024-01-30 00:00:00 +09:00
Szymon Gizler
c715cfc254
Add --valgrind switch ( #4828 )
2024-01-29 07:50:05 -05:00
Wilson Snyder
22687a6901
Internals: Use C++14 quoted literal std::string
2024-01-28 21:00:20 -05:00
Wilson Snyder
eecdf4b0f3
Internals: Use C++14 exchange
2024-01-28 21:00:20 -05:00
Wilson Snyder
a84be1844f
MSVC fix, part of fix of null ( #4862 ).
2024-01-28 11:05:38 -05:00
Wilson Snyder
9ccef4180f
Fix $fwrite of null ( #4862 ).
2024-01-28 09:05:50 -05:00
Yutetsu TAKATSUKASA
e4a0e5aad6
Fix #4857 consider NOT when checking EQ/NEQ under AND/OR tree ( #4863 )
2024-01-28 22:36:09 +09:00
Wilson Snyder
d6f8ccd20b
Add `unroll_disable` and `unroll_full` loop control metacomments ( #3260 ).
2024-01-26 07:49:07 -05:00
Wilson Snyder
94460867d3
Fix nondeterministic fork/tristate ordering ( #4690 ).
2024-01-25 20:33:43 -05:00
Wilson Snyder
5b70325e52
Internals: Style/debug cleanups. No functional change.
2024-01-25 20:26:56 -05:00
Wilson Snyder
3aece189ac
Fix tracing chandles ( #4860 ).
2024-01-25 08:13:52 -05:00
Wilson Snyder
d4c8a15407
Add --runtime-debug for Verilated executable runtime debugging.
2024-01-25 07:34:30 -05:00
Wilson Snyder
354a534d68
Add '--decorations node' for inserting debug comments into emitted code.
2024-01-24 21:51:47 -05:00
github action
8a7f36c34b
Apply 'make format'
2024-01-24 12:46:22 +00:00
Jonathan Schröter
31262e81f9
Fix to not emit already waived warnings in waiver output ( #4574 ) ( #4818 )
2024-01-24 07:45:38 -05:00
github action
3d006afacc
Apply 'make format'
2024-01-24 03:08:39 +00:00
Wilson Snyder
74ec50f933
Support interface class diamond relationship.
2024-01-23 22:07:35 -05:00
Wilson Snyder
21e85f87bc
Fix compilation error on multi-inherited interface class usage ( #4819 ).
2024-01-23 19:36:11 -05:00
Wilson Snyder
2989e54eaa
Add unsupported warning on property iff ( #4848 )
2024-01-21 16:18:48 -05:00
Yutetsu TAKATSUKASA
6b8531f0a6
Fix widthMin in replaceShiftOp ( #4837 ) ( #4841 ) ( #4849 )
2024-01-21 10:30:01 -05:00
Yutetsu TAKATSUKASA
50df902b54
Fix incorrect bit-op-tree NOT optimization ( #4832 ) ( #4847 )
...
* Fix #4832 . Bit-op-tree opt. should not touch a subtree under NOT in AND/OR tree.
2024-01-21 07:25:24 -05:00
Wilson Snyder
3a5248a919
Internals: Mark structs final/VL_NOT_FINAL. No functional change intended.
2024-01-20 15:06:46 -05:00
Wilson Snyder
1a92502788
Add --main support for dumping coverage, and +verilator+coverage+file runtime option.
2024-01-20 12:28:49 -05:00
Wilson Snyder
c30b9d04a8
Change unused vars to standard void syntax. No functional change intended.
2024-01-20 08:57:22 -05:00
Wilson Snyder
89cfa0737f
Internals: Fix cppcheck warnings
2024-01-17 19:48:07 -05:00
Szymon Gizler
db3ce29b36
Fix wrong utimes() param ( #4829 )
2024-01-17 08:32:44 -05:00
github action
54922c036a
Apply 'make format'
2024-01-14 00:53:31 +00:00
Adrian Sampson
2e999a5441
Fix too null pointer dereference ( #4810 ) ( #4825 )
2024-01-13 20:52:50 -04:00
Tim Hutt
5073f208af
Internals: Use more standard syntax for avoiding unused variable warnings ( #4826 )
2024-01-13 15:34:59 -05:00
Wilson Snyder
21bf2d62d2
Fix mis-splitting of dump control functions ( #4821 ).
2024-01-12 08:19:30 -05:00
Wilson Snyder
fcdd8e5da6
Fix missing includes with multiple inheritance ( #3819 partial)
2024-01-11 20:19:48 -05:00
Andrew Nolte
ab47fc6656
Fix localparam elaboration ( #3858 ) ( #4794 )
2024-01-11 07:49:07 -05:00
Szymon Gizler
5f52c066e5
Internals: Add serializeOnly() and dumpTreeEitherLevel() ( #4815 ) ( #4715 ). No functional change intended.
2024-01-09 10:35:13 -05:00
Anthony Donlon
55d1b87b34
Support parsing anonymous primitive instantiations ( #4809 )
2024-01-07 10:59:56 -05:00
Wilson Snyder
eec41fd039
Fix lint_off disables on preprocessor warnings ( #4703 ).
2024-01-06 18:49:19 -05:00
Wilson Snyder
0ca90257a5
Add predicted stack overflow warning ( #4799 ).
2024-01-06 16:14:58 -05:00
Wilson Snyder
5294140753
Fix delays using wrong timeunits when modules inlined ( #4806 ).
2024-01-05 18:07:24 -05:00
Wilson Snyder
a36a07c297
Internals: Favor UASSERT over v3fatalSrc. No functional change intended.
2024-01-05 18:00:06 -05:00
github action
4172c0f29e
Apply 'make format'
2024-01-03 12:13:21 +00:00
Pengcheng Xu
ec01008fe3
Change zero replication width error to ZEROREPL warning ( #4753 ) ( #4762 )
2024-01-03 07:11:50 -05:00
Mariusz Glebocki
719954a24a
Internals: Make V3Const.cpp parseable by non-compilers ( #4796 )
2024-01-02 14:51:40 -05:00
Wilson Snyder
e76f29e5ba
Copyright year update
2024-01-01 03:19:59 -05:00
Wilson Snyder
54ad04b6e9
Fix 'for' loop with outside variable reference ( #4660 ).
2023-12-24 10:17:44 -05:00
Fan Shupei
540cd772e4
Add user C/C++ code to final achieve, and make a libmodel.a ( #4749 ) ( #4754 )
2023-12-23 09:31:10 -05:00
Krzysztof Bieganski
621de301c7
Run the `V3Fork` stage only if `--timing` is set ( #4778 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-12-22 22:57:45 +01:00
Wilson Snyder
8769c1a92b
Internals: Add -fno-dead-cells, -fno-dead-assigns for debug use
2023-12-22 16:26:51 -05:00
github action
8e1c0b0852
Apply 'make format'
2023-12-21 12:49:55 +00:00
Jordan McConnon
56d6791205
Support invoking interface methods on virtual interface variables ( #4774 ) ( #4775 )
2023-12-21 07:49:07 -05:00
Krzysztof Bieganski
016e630ecf
Refine dynamic NBA condition ( #4773 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-12-20 18:12:17 +01:00
Wilson Snyder
69b779b4a8
Internals: Cleanup cpp-check warnings. No functional change.
2023-12-20 07:49:03 -05:00
Wilson Snyder
55ad950609
Fix power operator with wide numbers and constants ( #4721 ) ( #4763 )
2023-12-19 19:22:54 -05:00
Todd Strader
654ab117f2
Fix tracing FST enums ( #4661 ) ( #4756 )
2023-12-19 11:07:06 -05:00
Geza Lore
c5ba6e22fa
Minor cleanup of trace internals
2023-12-12 20:27:16 +00:00
Geza Lore
6012ec8eb7
Put dynamic NBA commit in eval_phase__nba
...
Fixes #4634
2023-12-12 18:11:43 +00:00
Mariusz Glebocki
75a44e5aa9
Fix deadlocks in error handler ( #4672 )
2023-12-12 08:10:01 -05:00
Ryszard Rozak
a811f2e17d
Support inside operator on unpacked arrays and queues ( #4751 )
2023-12-12 09:20:22 +01:00
Ryszard Rozak
b60117c713
Fix typedefs pointing to parameterized classes ( #4747 )
...
* Skip handling of ClassOrPackageRef nodes that point to Typedefs
2023-12-08 07:13:38 -05:00
Ryszard Rozak
1ececf1127
Support multiple parameters in virtual interfaces ( #4745 )
2023-12-07 13:56:16 +01:00
Geza Lore
f3bace10ae
Improve V3Premit performance etc. ( #4736 )
...
- Enable creating constant pool entries for RHS of simple
var = const assignments
- Never extract ArraySel (it's just pointer arithmetic)
- Remove unnecessary AstTraceInc precond child tree
- Always fully recurse expressions (fix transplanted from #4617 )
- General cleanup
Overall the patch is performance neutral to slightly positive, but saves
~10% peak Verialtor memory usage due to not creating temporaries (which
are later expanded) for any ArraySels.
2023-12-06 09:42:46 -05:00
Wilson Snyder
39d9bd4d47
Internals: V3LinkDot fix missing restorer.
2023-12-06 08:29:33 -05:00
Ryszard Rozak
eb2cfe1d19
Support parameterized virtual interaces ( #4047 ) ( #4743 )
2023-12-06 08:02:04 -05:00
Ryszard Rozak
ca5a7d7656
Add class name in the error msg about calling 'new' on virtual class ( #4739 )
2023-12-05 16:31:59 +01:00
Krzysztof Bieganski
ea2084392f
Support --timing triggers for virtual interfaces ( #4673 )
2023-12-04 22:11:07 -05:00
Wilson Snyder
b4baa7ce02
Internals: Avoid extranious base class calls in recent commit.
2023-12-01 19:05:21 -05:00
Krzysztof Boroński
bd38c8fe3c
Fix # 0 delays for process resumption, etc. ( #4697 )
2023-12-01 13:08:58 -05:00
Todd Strader
9a0748d8ed
vpi_iterate packages with vpiInstance ( #4726 )
2023-12-01 07:34:09 -05:00
Wilson Snyder
feae9ca4aa
Internals: Use astgen for cross-node pointers. No functional change intended. ( #4727 )
2023-11-30 19:58:16 -05:00
Ryszard Rozak
d1ee9827a0
Fix block names of nested do..while loops ( #4728 )
2023-11-30 14:32:12 +01:00
Krzysztof Bieganski
b820e1b587
Support `iff` in sensitivity list ( #1482 ) ( #4626 )
...
Adds a new field to `AstSenItem` that stores the `iff` condition which is then handled by `SenExprBuilder`.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-11-29 19:10:32 +01:00
Ryszard Rozak
ebfc2a4942
Fix parameter passing to ports ( #4723 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-11-29 17:07:23 +00:00
Wilson Snyder
7167d4bdc0
Fix shift of > 32-bit number ( #4719 ).
2023-11-27 21:41:32 -05:00
William D. Jones
a7a48221d3
Fix Windows include gates in filesystemFlush implementation. ( #4720 )
2023-11-26 05:26:20 +01:00
Wilson Snyder
e5118661a7
Commentary
2023-11-24 13:02:05 -05:00
Wilson Snyder
58d9a5ebac
Use newline instead of endl, for fewer stream flushes
2023-11-24 11:45:52 -05:00
Wilson Snyder
fae7f11222
Fix compilers seeing empty input due to file system races ( #4708 ). Part 2.
2023-11-22 05:18:13 -05:00
Wilson Snyder
1986e62477
Internals: Remove unused append dumpTreeFile option
2023-11-21 22:32:13 -05:00
Wilson Snyder
0ee2a0e6d7
Don't remove DepSet as messes with skip-identical, part of last commit
2023-11-21 22:08:47 -05:00
Wilson Snyder
2b28ddd0c6
Fix MSWIN compile in last commit
2023-11-21 21:49:36 -05:00
Wilson Snyder
b15ef49c57
Fix compilers seeing empty input due to file system races ( #4708 ).
2023-11-21 21:22:35 -05:00
Wilson Snyder
ed05caec93
Rename __hier*.f files to match other generated files
2023-11-21 20:31:54 -05:00
github action
ead27db9f0
Apply 'make format'
2023-11-21 02:02:56 +00:00
Jinyan Xu
4650105d90
Fix conflicted namespace for coroutines ( #4701 ) ( #4707 )
2023-11-20 21:02:10 -05:00
Krzysztof Bieganski
b8417abee5
Fix dynamic NBAs with automatic vars ( #4696 )
...
This patch addresses two issues with NBAs in non-inlined functions/tasks:
- If the NBA writes to a local automatic var, the var could cease to exist before the NBA executes. This is normally addressed by fork dynscopes (#4356 ), but NBA-to-fork transformation happens way after `V3Fork` (in `V3Timing`). To solve this, we put NBAs that write to locals under forks in `V3Fork` already. This way, such locals will be put in dynscopes, and will still exist after the task containing the NBA exits.
- The above change means that any writes in forks other than `fork..join` should be handled by `V3Fork`. Thus, in `V3SchedTiming`, we only have to worry about read references, so we can simply copy all remaining locals. Because we copy, lifetimes are not an issue. This fixes a bug that allowed assignment intravals to be overwritten if they go out of scope in the containing function.
2023-11-16 11:21:23 +01:00
Krzysztof Boroński
cc982ec7fe
Fix range access to fields under classes that depend on parameter resolution ( #4681 )
...
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
2023-11-15 14:24:41 +01:00
Ryszard Rozak
2dba76a7c2
Fix access type of function arguments ( #4692 ) ( #4694 )
2023-11-14 17:02:13 -05:00
Wilson Snyder
9fd5634778
Internals: Remove unneeded private's. No functional change
2023-11-13 21:37:45 -05:00
Wilson Snyder
c8063e5732
Internals: Misc cleanups in V3Graph and V3Dead. No functional change.
2023-11-12 22:08:08 -05:00
Wilson Snyder
ee3ba7c761
Internals: Use faster VNVisitorConst where able. No functional change intended.
2023-11-12 18:26:40 -05:00
Geza Lore
2882737bcd
V3Const: Fix select into And/Or/Xor pattern ( #4689 )
2023-11-12 19:41:18 +00:00
Geza Lore
47588f343b
astgen: Enforce the use of aliased operand accessors ( #4688 )
...
This patch enforces the use of the most specific accessors for operands
which have an '@astgen alias' declaration, by making the superclass
accessors of the same operands private. This ensures client code is
cleaner as you can't use multiple different methods to reference the
same operands (which we used to in some places). Also prep for some
refactoring.
2023-11-12 18:30:48 +00:00
Geza Lore
1c0af6c7bc
Reduce peak memory use of V3Subst ( #4687 )
...
V3Subst is currently the pass responsible for peak memory usage. This
patch saves ~16% of peak memory on OpenTitan.
2 changes:
- It is actually safe to delete the substituted expressions immediately,
but this is the lesser contribution
- More importantly, we only ever substitute STMTTEMP variables, which
are always defined within the same CFunc, so we can limit the scope of
the optimization to CFunc. This allows us to reclaim the SubstVarEntry
structures at the end of every CFunc, rather than at the end of the
whole pass, which gives us most of the memory savings.
Generated output is identical
2023-11-12 16:01:07 +00:00
Geza Lore
b07ffb3c78
Cleanup V3Gate ( #4667 ) ( #4685 )
...
Lot of redundant/dead/obsolete code here. NFCI, but contains some minor
bug fixes.
2023-11-12 15:29:25 +00:00
Geza Lore
bea82def10
Add node memory usage info to V3Stats ( #4684 )
2023-11-12 14:19:53 +00:00
Wilson Snyder
671a857560
Fix compiler warning on 'wait' with non-zero constant.
2023-11-12 08:44:55 -05:00
Wilson Snyder
eff2d977c1
Fix mis-elimination of variables across randomize()
2023-11-12 07:32:08 -05:00
Wilson Snyder
9d7f5bdc26
Internals: Dump CFunc entry points.
2023-11-11 20:34:51 -05:00
Wilson Snyder
99dbd23f1b
Support passing constraints to --xml-only output (still otherwise unsupported) ( #4683 )
2023-11-11 20:20:37 -05:00
Wilson Snyder
cad2780219
Fix display with no % printing assoc array ( #4376 ).
2023-11-11 15:28:44 -05:00
Wilson Snyder
4636a7f14b
Internals: Fix uninitalized variables ( #4636 )
2023-11-11 14:58:54 -05:00
Wilson Snyder
706534ffe1
Fix 'for' loop with outside variable reference ( #4660 ).
2023-11-11 14:47:54 -05:00
Wilson Snyder
f3ae4b8786
Fix spelling
2023-11-10 23:25:53 -05:00
David Ledger
9a65ed4ce2
Fix Mingw Compilation ( #4675 )
2023-11-08 06:27:56 -05:00
Marlon James
5ba7084815
Fix VPI TOP level variable iteration ( #3919 ) ( #4618 )
2023-11-07 07:47:55 -05:00
Wilson Snyder
dc10118d3b
Fix C++20 compilation errors ( #4670 )
2023-11-06 07:13:31 -05:00
Geza Lore
c563175ff0
Fix scheduling of external force signals ( #4668 )
...
Used to set the wrong public flag on forceEn/forceVal, which means they
were not included in ICO as necessary, but V3Gate tended to inline them,
so this was hard to hit.
Fixes #4577
2023-11-05 16:58:22 +00:00
Krzysztof Boroński
b110c55993
Fix a memory leak in V3Fork ( #4628 )
2023-11-05 11:39:06 -05:00
Geza Lore
dc346b7ffa
Remove deprecated options ( #4663 )
2023-11-04 17:28:36 +00:00
Anthony Donlon
88fcbf5f1d
Fix interface parameters used in loop generate constructs ( #4664 ) ( #4665 )
2023-11-04 13:19:35 -04:00
Wilson Snyder
eace1d9c67
Internals: Use UINFO for preproc debug, to avoid stderr/cout output reordering confusion.
2023-11-04 10:51:14 -04:00
Anthony Donlon
d0d39c13e7
Fix linking parameterized hierarchical blocks and recursive hierarchical blocks ( #4654 )
2023-11-03 07:55:53 -04:00
Anthony Donlon
2733d43ea7
Fix identifiers that end with '_' on Windows ( #4655 )
2023-11-02 17:53:52 -04:00
Geza Lore
ae6ec411d0
Remove dead code from V3EmitV
2023-11-02 20:25:44 +00:00
Geza Lore
8a77af7a6d
Remove redundant user*ClearTree calls
2023-11-02 19:16:48 +00:00
Ryszard Rozak
a764c70b4a
Fix handling of static keyword in methods ( #4649 )
2023-10-31 08:15:54 -04:00
Wilson Snyder
a27abab65f
Fix PCH to recompile on version change
2023-10-31 08:10:41 -04:00
Krzysztof Bieganski
f789d28277
Fix signals read via virtual iface optimized out ( #4645 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-10-30 21:26:46 -04:00
Geza Lore
3c144ada53
Delete AstNode user5 ( #4638 )
...
This saves about 5% memory. V3AstUserAllocator is appropriate for most use
cases, performance is marginally up as we are mostly D-cache bound on
large designs.
2023-10-29 01:12:27 +01:00
Wilson Snyder
7ba6647c4f
Internals: Cleanup some V3Graph constructors/funcs and docs. No functional change.
2023-10-28 20:11:28 -04:00
Geza Lore
e708670f9a
Minor memory optimizatoin of AstUser*Allocator
2023-10-28 20:31:57 +01:00
Geza Lore
d60f180f43
Avoid double traversal of maps
...
The typical find/if-not-exists-insert pattern can be achieved with 1
lookup instead of 2 using emplace with a sentinel value. Also maps value
initialize their values when inserted with the [] operator, this is
defined and so there is no need to explicitly insert zeroes for integer
values.
2023-10-28 13:41:43 +01:00
Geza Lore
30318a6654
C++11 cleanup
2023-10-28 11:26:48 +01:00
Geza Lore
2cba167634
Make eval loop construction more unified and the output more readable
2023-10-28 08:48:04 +01:00
Krzysztof Boroński
89743aae5d
Fix stable name generation in V3Fork ( #4615 ) ( #4624 )
2023-10-27 15:08:02 -04:00
Ryszard Rozak
64af83161a
Fix rand fields of reference types ( #4627 )
2023-10-26 17:17:23 -04:00
Chih-Mao Chen
98252634fc
Include systemc instead of systemc.h in model header files ( #4622 ) ( #4623 )
...
This may require that SystemC programs add:
using namespace sc_core;
using namespace sc_dt;
2023-10-26 14:36:18 -04:00
Krzysztof Boroński
a87fb57656
Allow assigning events ( #4403 )
...
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
2023-10-26 16:38:47 +02:00
Geza Lore
34708bbba1
Respect --dump-tree-addrids in tree dumps
2023-10-25 18:17:26 +01:00
Marlon James
cf6e362972
Support VPI variables of real and string data types ( #4594 )
2023-10-24 20:46:20 -04:00
Geza Lore
95c4ade718
Unify code generation for trace declarations in both trace formats ( #4612 )
...
This patch adds some abstract enums to pass to the trace decl* APIs, so
the VCD/FST specific code can be kept in verilated_{vcd,fst}_*.cc, and
removed from V3Emit*. It also reworks the generation of the trace init
functions (those that call 'decl*' for the signals) such that the scope
hierarchy is traversed precisely once during initialization, which
simplifies the FST writer. This later change also has the side effect of
fixing tracing of nested interfaces when traced via an interface
reference - see the change in the expected t_interface_ref_trace - which
previously were missed.
2023-10-24 16:33:29 +01:00
Ryszard Rozak
84125d7c92
Fix virtual methods ( #4616 )
2023-10-24 15:51:46 +02:00
Geza Lore
17721aff55
Remove unused IMPLICITWIRE var type
2023-10-24 10:02:00 +01:00
Geza Lore
d1b6224c2b
Associate trace codes with function indices ( #4610 )
...
For each traced variable, also register the trace function index that
will write it.
2023-10-23 16:01:55 +01:00
github action
1bd31742b9
Apply 'make format'
2023-10-23 14:07:52 +01:00
Geza Lore
165a2ef1b8
Separate tracing of const values from non-const values
...
Some values emitted to the trace files are constant (e.g.: actual
parameter values), and never change. Previously we used to trace these
in the 'full' dumps, which also included all other truly variable
signals. This patch introduces a new generated trace function 'const',
to complement the 'full' and 'chg' flavour, and 'const' now only
contains the constant signals, while 'full' and 'chg' contain only the
truly variable signals. The generate 'full' and 'chg' trace functions
now have exactly the same shape. Note that 'const' signals are still
traced using the 'full*' dump methods of the trace buffers, so there is
no need for a third flavour of those.
2023-10-23 14:07:52 +01:00
Wilson Snyder
b83b9974ee
Fix gcc -O0 incompatible allocator warning
2023-10-22 09:51:02 -04:00
Wilson Snyder
bcbe5059a9
Internal: V3Graph style cleanup. No functional change
2023-10-22 09:50:38 -04:00
Wilson Snyder
5bda901146
Internals: Fix stats report to include main AstCFile made
2023-10-21 20:56:24 -04:00
Geza Lore
978d900e36
Simplify and fix code stats
...
V3Stats for "fast" code have bit-rotted a little and is causing some
problems with tests that rely on stats outputs. The problem is that not
all code is necessarily reachable from eval() any more (due to the
complexity of some the features added over the past few years), so it
might miss some things, as for measuring the "fast" code, it is trying
to trace the execution paths via calls, starting from eval(). It also
appears the fast code can also contain calls to slow code in some
circumstances.
To avoid all that, removed trying to trace dynamic execution, and simply
report the static node counts, which is enough for testing.
Similarly, the variable counts are somewhat dubious, as they don't
include all data types, or all instances of a module in some stages.
Removing these as they are not widely used nor dependable. More specific
stats can be added if required and can be well defined.
2023-10-22 00:25:07 +01:00
Geza Lore
d330100542
Create implicit nets for inputs of gate primitives.
...
Prior to this we failed to create implicit nets for inputs of gate
primitives, which is required by the standard (IEEE 1800-2017 6.10).
Note: outputs were covered due to being modeled as the LHS of
assignments, which do create implicit nets.
2023-10-21 22:45:26 +01:00
Geza Lore
4c0edd2efb
Improve --prof-exec infrastructure and report
...
Again --prof-exec have bit-rotted a little with all the recent changes
to the structure of the generated code. This patch contains a few
improvements:
- Repalce the eval/evl_loop begin/end events with generic
section_push/section_pop events, that can be arbitrarily sprinkled
into the generate code (so long as they are matched correctly) to
measure various sections. The report then contains a nested profile
of the sections, and the VCD trace shows the section names.
- Better handling of exec graphs
- Clearer overall statistics
2023-10-21 21:09:03 +01:00
Geza Lore
146cdc020d
Remove V3AstConstOnly.h
...
This is now redundant with the introduction of VNVisitorConst
2023-10-21 20:41:46 +01:00
Geza Lore
a09506a0ad
Trivial simplification of V3EmitCModel
...
Still some remains of the --threads 0 mode. Remove unnecessary complexity
from V3EmitCModel. (Also don't pretend there is an MTask in single
threaded mode, when there really isn't.)
2023-10-21 20:41:46 +01:00
Geza Lore
10d33238b9
Do not merge entry/exit MTasks during coarsening
2023-10-21 19:31:52 +01:00
Wilson Snyder
eae942b91c
Internals: Fix some lint-py warnings
2023-10-21 12:48:36 -04:00
Geza Lore
1075b006b5
Consider children of AstConcat in V3InstrCount
...
Previously V3InstrCount used to completely ignore an AstConcat,
including its children (see the rational in the comment). The problem is
the operands can be huge and expensive compound expressions (especially
since DFG), and not just a simple variable reference. This fix gains
some MT speed improvement.
2023-10-21 17:15:40 +01:00
Geza Lore
d1c7875406
Fix conditionals on obsolete --threads 0
...
Since we removed --threads 0 support, the 'threads()' option always
returns a value >= 1. Remove corresponding dead code.
Some of the coverage counters appear to use atomics even if the model is
single threaded. I'm under the impression this was a bug originally so
those ones I changed to use threads() > 1 instead.
2023-10-21 15:14:27 +01:00
Quentin Corradi
26e3785963
Fix PLI/DPI user defined system task/function grammar ( #4587 ) ( #4588 )
...
According to 1800-2017 36.3, 1800-2017 A.9.3, 1364-2005 20.2 and 1364-2005 A.9.3, user defined system task and function identifiers can use the same character set for the second character as all the following characters.
2023-10-21 02:43:49 -04:00
Wilson Snyder
f8b7fb72b8
Fix fault on empty clocking block ( #4593 ).
2023-10-21 02:40:08 -04:00
Krzysztof Bieganski
7b12f6a1dd
Support NBAs in non-inlined functions/tasks ( #4496 ) ( #4572 )
2023-10-20 20:01:45 -04:00
Aleksander Kiryk
83a0085c4d
Support `wait fork` ( #4586 )
2023-10-20 07:13:57 -04:00
Wilson Snyder
4cc42133b5
Internals: Rename some parser rules. No functional change.
2023-10-19 20:13:27 -04:00
Wilson Snyder
a773a52559
Cleanup some IEEE references
2023-10-19 19:26:36 -04:00
Wilson Snyder
5af271cf3a
Fix display optimization ignoring side effects ( #4585 ).
2023-10-19 18:33:58 -04:00
Wilson Snyder
0c2bab1f69
Fix method narrowing conversion compiler error ( #4568 ).
2023-10-18 17:51:25 -04:00
Wilson Snyder
b7233d063f
Internals: Fix same() called outside of sameTree ( #4561 ).
2023-10-18 17:36:21 -04:00
Krzysztof Bieganski
8720841c48
Fix to not remap local assign intravals in forks ( #4583 )
2023-10-18 16:49:20 -04:00
Wilson Snyder
8b44a54bb2
Support Verilated precompiled header compilations ( #4580 )
2023-10-18 08:08:15 -04:00
Wilson Snyder
b5828a7ce9
Fix header order botched by clang-format in recent commit.
2023-10-18 06:37:46 -04:00
Wilson Snyder
51a18225ad
cmake: Fix missing headers
2023-10-18 06:37:38 -04:00
Wilson Snyder
28625451dd
Fix MSVC makefile list (part of previous commit)
2023-10-18 06:07:05 -04:00
Wilson Snyder
3914176bc4
Internals: Remove unused IGNORED to fix MSVC warning. No functional change intended.
2023-10-18 06:06:00 -04:00
github action
770cd24f27
Apply 'make format'
2023-10-18 02:50:27 +00:00
Wilson Snyder
431bb1ed16
Support compiling Verilator with gcc/clang precompiled headers ( #4579 )
2023-10-17 22:49:28 -04:00
Ryszard Rozak
45edcbb03e
Fix logical expressions with class objects - caching in v3Const ( #4552 )
2023-10-17 07:38:45 -04:00
Ryszard Rozak
e99fd2892b
Make VNDeleter a member of VNVisitor. No function change. ( #4573 )
2023-10-17 09:26:53 +02:00
Krzysztof Bieganski
99ea16d7fd
Fix dynamic triggers for named events ( #4571 )
2023-10-16 11:06:41 -04:00
Krzysztof Bieganski
bc9ff6d1bf
Fix interface comparison ( #4570 )
2023-10-16 11:05:39 -04:00
Aleksander Kiryk
ad3bcbb1bb
Support `disable fork` ( #4125 ) ( #4569 )
2023-10-16 14:02:29 +02:00
Yutetsu TAKATSUKASA
25dde58297
Internals: Use VN_AS instead of static_cast. Fix some wrong types. ( #4561 )
2023-10-16 05:17:52 -04:00
Anthony Donlon
bba3487dc4
Internals: Fix hash and comparison function for AstBasicDType ( #4564 )
2023-10-15 15:15:46 -04:00
Anthony Donlon
4fdaa46328
Fix using functions/tasks following class definition inside module ( #4553 )
2023-10-15 13:01:32 -04:00
Anthony Donlon
4427f03b08
Fix error message for invalid parameter overrides ( #4559 )
2023-10-15 12:59:36 -04:00
Yutetsu TAKATSUKASA
4e2c63c8cb
Support concatenation of unpacked arrays ( #4558 )
2023-10-15 12:53:35 -04:00
github action
afecde87d8
Apply 'make format'
2023-10-15 11:00:14 +00:00
Wilson Snyder
c14eae6d56
Add SIDEEFFECT warning on mishandled side effect cases ( #487 partial)
2023-10-15 06:44:35 -04:00
Wilson Snyder
684aba0e90
Fix purity calculation during V3Const simplifying Ast
2023-10-15 06:25:42 -04:00
Wilson Snyder
46f8a659b3
Fix shift to remove operation side effects ( #4563 ).
2023-10-14 22:34:37 -04:00
Wilson Snyder
411f563cbe
Internals: Remove unneeded pure checks. No functional change.
2023-10-14 22:23:58 -04:00
github action
fa8eaf7355
Apply 'make format'
2023-10-14 19:20:22 +00:00
Wilson Snyder
7eb09c3445
Fix instance arrays connecting to array of structs ( #4557 ).
2023-10-14 15:19:19 -04:00
Wilson Snyder
1fd8e772b0
Fix loss of warning source content with `line enter (due to earlier commit 472ad90d83).
2023-10-10 20:40:21 -04:00
Anthony Donlon
7ce0bd1181
Fix broken link error for enum references ( #4551 )
2023-10-10 17:55:40 -04:00
Mariusz Glebocki
a5ee8b39ef
Internals: Remove use of V3Width code from V3AstNodes ( #4537 ). No functional change intended.
...
`getCommonClassTypep` and its helper code has been moved to AstNode
class. This is a lot better place for this functionality. Moreover, it
allowed to get rid of the dependency on V3Width from generic AST-related
code.
2023-10-09 17:43:27 -04:00
Ryszard Rozak
5b06c60318
Internals: Change deleteTree to pushDeletep ( #4548 ). No functional change intended.
2023-10-09 09:45:09 -04:00
Wilson Snyder
b306715b4a
Optimize empty expression statements ( #4544 ).
2023-10-09 05:50:31 -04:00
Wilson Snyder
8d99bdac25
Internals: Move afterCommentp to AstNode. No functional change.
2023-10-09 05:03:57 -04:00
github action
e114dfda6d
Apply 'make format'
2023-10-09 08:14:14 +00:00
Wilson Snyder
472ad90d83
Change lint_off to not propagate upwards to files including where the lint_off is.
2023-10-09 04:12:01 -04:00
Wilson Snyder
622f0c047c
Fix reporting `line at wrong spot. Rework some internal fileline parsing functions.
2023-10-08 20:38:45 -04:00
Wilson Snyder
7f38414276
Internals: Rename addIgnoreMatch. No functional change.
2023-10-08 01:02:23 -04:00
Wilson Snyder
1d3d59243c
Fix preprocessor to show `line 2 on resumed file per IEEE.
2023-10-07 14:29:46 -04:00
Wilson Snyder
e2343c03e0
Internals: Create V3WidthCommit from overly fat header. No functional change intended.
2023-10-06 23:18:26 -04:00
Wilson Snyder
0e0df1fb3b
Fix enum functions in localparams ( #3999 ).
2023-10-06 22:38:46 -04:00
Wilson Snyder
800a789f50
Fix inlining of real functions miscasting ( #4543 ).
2023-10-06 21:33:31 -04:00
Wilson Snyder
106664b942
Internals: Fix long lines. No functional change.
2023-10-05 20:07:53 -04:00
Todd Strader
f849073137
Fix non-inlined interface tracing ( #3984 ) ( #4530 )
2023-10-03 19:55:25 -04:00
Ryszard Rozak
1b8228b642
Fix stream operations with operands of struct type ( #4531 ) ( #4532 )
2023-10-03 07:23:20 -04:00
Wilson Snyder
732d03f4e5
Fix conversion of integers in $display %e ( #4528 ).
2023-10-01 13:00:16 -04:00
Wilson Snyder
33787c6add
Internals: Fix number nodep cloning, and assert stays consistent ( #4528 partial)
2023-10-01 12:46:35 -04:00
Ryszard Rozak
44e7d2ebe6
Internals: rename VPurity class and related functions. No functional change ( #4523 )
2023-09-29 12:23:51 +02:00
Wilson Snyder
e49ae663a6
Fix constification of $realtobits, $bitstoreal ( #4522 ).
2023-09-28 22:45:00 -04:00
Wilson Snyder
ad343f8260
Add warning on interface instantiation without parens ( #4094 ).
2023-09-26 22:15:48 -04:00
Wilson Snyder
018d766179
Fix clang error ( #4462 )
2023-09-26 21:07:43 -04:00
Wilson Snyder
72b4a74245
Fix clang error on last commit
2023-09-26 19:58:09 -04:00
Wilson Snyder
36c824d973
Add trace() API even when Verilated without --trace ( #4462 ).
2023-09-26 18:37:50 -04:00
Anthony Donlon
229ce1aecf
Fix handling input file path separator ( #4515 ) ( #4516 )
2023-09-26 15:42:15 -04:00
Anthony Donlon
be45a9b7d5
Style: Update clang-format config to make formatted code consistent between versions. No functional change ( #4520 )
2023-09-26 15:05:57 -04:00
Anthony Donlon
60e9827ffe
Support converting parameters inside modules to localparams ( #4511 )
2023-09-25 11:39:04 -04:00
Anthony Donlon
750b5be5d3
Remove support for parameterized UDPs ( #4518 )
2023-09-25 10:40:44 -04:00
Mariusz Glebocki
28bd7e5b19
Rework multithreading handling to separate by code units that use/never use it. ( #4228 )
2023-09-24 22:12:23 -04:00
Wilson Snyder
9f75068059
Cleanup some error messages to properly quote
2023-09-23 08:52:50 -04:00
Ryszard Rozak
4636e9cffb
Fix passing arguments by reference ( #3385 partial) ( #4489 )
2023-09-20 07:33:11 -04:00
Kamil Rakoczy
a16ea94836
Fix detecting local vars in nested forks ( #4493 ) ( #4506 )
2023-09-19 17:32:42 -04:00
Wilson Snyder
24ff3155ae
Support randc ( #4349 ).
2023-09-18 21:17:21 -04:00
Ryszard Rozak
47b3f464a9
Disable conversion of impure logical expressions to bitwise expressions ( #487 partial) ( #4437 )
2023-09-18 09:21:30 -04:00
github action
cd201f8eb8
Apply 'make format'
2023-09-18 01:44:43 +00:00
Wilson Snyder
016278a759
Commentary
2023-09-17 21:43:00 -04:00
Wilson Snyder
b68f101e81
Support preprocessing __LINE__
2023-09-17 19:49:38 -04:00
Wilson Snyder
ab13548018
Support resizing function call inout arguments ( #4467 ).
2023-09-17 18:23:44 -04:00
Wilson Snyder
761adf1cf0
Internals: Add cloneTreePure to prepare for side effect check.
...
Use cloneTreePure when what is being cloned must be side-effect free.
Use cloneTree when safe to contain side effects (e.g. cloning module).
2023-09-16 22:50:54 -04:00
Wilson Snyder
783b7ecdab
Fix clang override warning (last commit)
2023-09-16 17:52:02 -04:00
Wilson Snyder
8bd1c63b32
Support function non-constant default arguments ( #4470 ).
2023-09-16 17:37:25 -04:00
Wilson Snyder
e6fb7e970d
Fix recursive display causing segfault ( #4480 ).
2023-09-16 10:10:21 -04:00
Wilson Snyder
05d04a3959
Internals: Fix misnamed member. No functional change.
2023-09-15 23:02:34 -04:00
Wilson Snyder
19f7279542
Fix false INFINITELOOP on forever..mailbox.get() ( #4323 ).
2023-09-15 22:05:55 -04:00
Wilson Snyder
aa608472ae
Support recursive function calls ( #3267 ).
2023-09-15 20:46:31 -04:00
Wilson Snyder
d840c612d4
Fix IGNOREDRETURN to not warn on void-cast static function calls.
2023-09-15 19:01:11 -04:00
Wilson Snyder
188cf85b3f
Suppress some debug unknown hash/simulate warnings in UVM.
2023-09-15 18:33:02 -04:00
Wilson Snyder
c52ba28dd0
Tests: Fix commentary to unify issue references.
2023-09-15 18:12:11 -04:00
Wilson Snyder
10c1653e72
Fix ZERODLY to not warn on 'wait(0)'.
2023-09-15 08:53:29 -04:00
Ryszard Rozak
96857c5f95
Fix the error message when the type of ref argument is wrong ( #4490 )
2023-09-15 07:17:24 -04:00
Wilson Snyder
131eb319e0
Tests: Advance UVM through V3LinkDot Param ( #1538 partial)
2023-09-14 20:09:43 -04:00
Wilson Snyder
6e589377f4
Fix reference to extended class in parameterized class ( #4466 ).
2023-09-14 20:07:49 -04:00
Wilson Snyder
2c84b37bf7
Internals: Rename some V3LinkDot variables. No functional change.
2023-09-14 20:06:20 -04:00
Kamil Rakoczy
0d67caff77
Internals: V3Task: refactor common code to connectPort. No functional change intended ( #4488 )
...
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
2023-09-14 07:24:49 -04:00
Anthony Donlon
3dde57d539
Fix lint of case statements with enum and wildcard bits ( #4464 ) ( #4487 )
2023-09-14 07:22:49 -04:00
Kamil Rakoczy
9fe459c820
Internals: V3LockGuard: Add constructor for adopting already locked mutex. ( #4476 )
2023-09-13 13:52:59 -04:00
Wilson Snyder
823e0723fb
Internals: Remove legacy define. No functional change.
2023-09-13 08:46:51 -04:00
Kamil Rakoczy
8bd6d7c5b1
Internals: Add V3ThreadSafety ( #4477 )
2023-09-13 07:57:48 -04:00
Wilson Snyder
839a8fa4d9
Fix error on enum with VARHIDDEN of cell ( #4482 ).
2023-09-12 17:47:57 -04:00
Krzysztof Boroński
24917a187a
Fix V3CUse, do not consider implementations (.cpp) at all ( #4386 )
2023-09-12 17:59:57 +02:00
Ryszard Rozak
6c6f03cf7c
Fix static cast from a stream type ( #4469 ) ( #4485 )
2023-09-12 11:06:12 -04:00
Kamil Rakoczy
5676443139
Internals: Rename and slightly change other threads stopping/resuming methods. ( #4478 )
...
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
2023-09-11 13:43:26 -04:00
Kamil Rakoczy
e77d847671
Check whether V3ERROR_NO_GLOBAL_ is not already defined. ( #4475 )
...
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
2023-09-11 09:01:34 -04:00
Kamil Rakoczy
0baee84e96
Move `dpiTemporaryVarSuffix()` to header. ( #4474 )
...
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
2023-09-11 09:01:09 -04:00
Ryszard Rozak
c446cc2596
Internals: Remove unused constructor. No functional change. ( #4473 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-09-11 07:10:33 -04:00
Ryszard Rozak
b66c4153b1
Compute purity of AstCMethodHard ( #4460 )
2023-09-11 13:06:15 +02:00
Wilson Snyder
d72f1b89fc
Internals: Minor internal code coverage cleanups
2023-09-10 18:53:51 -04:00
Wilson Snyder
b5b278d072
Fix fork crash with no init, test for ( #4471 )
2023-09-10 08:53:21 -04:00
Wilson Snyder
cb5466a90b
Tests: UVM passes V3Param stage
2023-09-09 11:54:55 -04:00
Wilson Snyder
cdd8953085
Disable Subst when not pure
2023-09-08 21:52:33 -04:00
Wilson Snyder
2f2f0164ff
Internals: Use specific types on some cloneTrees. No functional change.
2023-09-08 21:51:59 -04:00
Kamil Rakoczy
6e977e1024
Generate compile_commands.json using bear ( #4463 )
2023-09-08 17:26:11 -04:00
Krzysztof Boroński
70b11f91b4
Support block_item_declaration in forks ( #4455 )
2023-09-08 16:40:14 +02:00
Wilson Snyder
014301587f
Unsupported instead of syntax error on parameter var initial values
2023-09-08 08:37:17 -04:00
Krzysztof Bieganski
139e93d371
Internals: Reduce the number of typechecks in graphs ( #4398 ). No functional change intended.
2023-09-08 07:35:52 -04:00
Krzysztof Bieganski
fb1fc46b06
Internals: Rework self pointers ( #4396 )
2023-09-08 07:34:35 -04:00
Ryszard Rozak
91227d26bb
Internals: Rename pure to dpiPure. No functional change. ( #4461 )
2023-09-08 08:51:19 +02:00
Wilson Snyder
11b5dae88d
Support let
2023-09-07 21:45:51 -04:00
Wilson Snyder
0c7d485417
Fix error printing internal name()
2023-09-06 21:07:06 -04:00
Ryszard Rozak
c40e34b134
Support assignments of stream expressions on queues to packed values ( #4458 )
2023-09-06 15:25:48 +02:00
Wilson Snyder
c65265477f
Tests: Enable cover named property
2023-09-03 21:02:42 -04:00
Wilson Snyder
de77f1ee5c
Improve error that assert-under-assert is unsupported
2023-09-03 09:08:43 -04:00
Wilson Snyder
c8c980c49d
Fix mis-warning on #() in classes' own functions.
2023-09-02 08:33:56 -04:00
Wilson Snyder
ad329612fd
Internals: Remove unnecessary cloneTree.
2023-09-01 20:13:20 -04:00
Wilson Snyder
c324895cbc
Internals: Remove unnecessary cloneTree.
2023-09-01 19:49:57 -04:00
Ryszard Rozak
5b7e32581b
Internals: Cleanup V3Task. No function change intended. ( #4454 )
2023-09-01 08:03:16 -04:00
Wilson Snyder
2f90fb2bec
Set lifetime for repeat variable ( #4451 partial)
2023-08-31 18:34:37 -04:00
Wilson Snyder
8c480fd39e
Internals: Fix cppcheck warnings
2023-08-31 18:29:58 -04:00
Krzysztof Bieganski
ffbbd438ae
Internals: Use runtime type info instead of `dynamic_cast` for faster graph type checks ( #4397 )
2023-08-31 18:00:53 -04:00
Anthony Donlon
96ee81fa3f
Fix unstable output of VHashSha256 ( #4453 )
2023-08-31 13:42:37 -04:00
Wilson Snyder
6d5dde8645
Fix duplicate Vfork functions ( #4418 )
2023-08-30 17:59:25 -04:00
Wilson Snyder
048c9f3fe2
Support extra commas before $display
2023-08-30 17:31:11 -04:00
Wilson Snyder
373265752f
Fix display %x formatting of real.
2023-08-30 17:21:33 -04:00
Wilson Snyder
ccdb52c1d9
Fix lifetime unknown error on enum.name ( #4448 ).
2023-08-30 07:20:25 -04:00
Yinan Xu
b4b74d72f0
Add prepareClone and atClone APIs for Verilated models ( #3503 ) ( #4444 )
...
This API is used if the user copies the process using `fork`
and similar OS-level mechanisms. The `at_clone` member function
ensures that all model-allocated resources are re-allocated, such
that the copied child process/model can simulate correctly.
A typical allocated resource is the thread pool, which every model
has its own pool.
2023-08-30 07:02:55 -04:00
Wilson Snyder
ca6ab584d0
Internals: Remove cloneTreeNull. No functional change intended.
2023-08-29 20:29:11 -04:00
github action
799a502cac
Apply 'make format'
2023-08-29 23:56:25 +00:00