Wilson Snyder
54ad04b6e9
Fix 'for' loop with outside variable reference ( #4660 ).
2023-12-24 10:17:44 -05: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
Wilson Snyder
706534ffe1
Fix 'for' loop with outside variable reference ( #4660 ).
2023-11-11 14:47:54 -05: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
9f75068059
Cleanup some error messages to properly quote
2023-09-23 08:52:50 -04:00
Wilson Snyder
188cf85b3f
Suppress some debug unknown hash/simulate warnings in UVM.
2023-09-15 18:33:02 -04:00
Wilson Snyder
5be0813893
Explicity reference std:: in header files ( #4338 ). No functional change intended.
2023-07-08 13:20:40 -04:00
Wilson Snyder
1069652701
Fix some AstExprStmt handling issues, towards side effect fixes.
2023-05-27 12:43:40 -04:00
Wilson Snyder
65667356b6
wip
2023-05-21 12:24:00 -04:00
Wilson Snyder
f2aac8c49a
Internals: Use VNVisitorConst where possible, for better performance. No functional change indended.
2023-03-18 12:23:17 -04:00
Wilson Snyder
85fd88ace2
Optimize duplicate JumpBlocks away ( #4028 )
2023-03-16 22:29:06 -04:00
Wilson Snyder
5aa4f46101
Internals: Add some std::. No functional change intended.
2023-02-10 20:32:39 -05:00
Todd Strader
4eb280601e
handle constant format field widths ( #3946 )
2023-02-09 10:09:00 -05:00
Todd Strader
9121a81a74
Fix constant enum methods ( #3621 )
2023-02-08 18:50:27 -05:00
Wilson Snyder
93517b8378
Support unpacked unions.
2023-01-27 22:41:12 -05:00
Ryszard Rozak
b56e7f6910
Support static function variables ( #3830 )
2023-01-23 08:35:10 -05:00
Wilson Snyder
b24d7c83d3
Copyright year update
2023-01-01 10:18:39 -05:00
Wilson Snyder
2c7f1ef40f
Internals: Cleanup debug dumps so can grep-out leading-dashed lines
2022-11-27 08:31:22 -05:00
Wilson Snyder
833780fac1
Internal: cppcheck fixes. No functional change intended.
2022-11-27 05:52:40 -05:00
Wilson Snyder
66d85b3381
Internals: Fix cppcheck warnings. No functional change intended.
2022-11-21 21:40:49 -05:00
Wilson Snyder
25f970eac2
Internals: Fix constructor style.
2022-11-20 15:06:49 -05:00
Geza Lore
3abb65d732
Strengthen AstNode types to AstNodeExpr
...
Declare every AstNode children and variables as AstNodeExpr where we
statically know this is the appropriate sub-type.
2022-11-20 19:31:28 +00:00
Wilson Snyder
aacb38b776
Support assignment expressions.
2022-11-19 15:23:37 -05:00
Wilson Snyder
fbf2e59c85
Fix loss of V3Simulate on expression statements.
2022-11-10 20:49:11 -05:00
Geza Lore
63c694f65f
Streamline dump control options
...
- Rename `--dump-treei` option to `--dumpi-tree`, which itself is now a
special case of `--dumpi-<tag>` where tag can be a magic word, or a
filename
- Control dumping via static `dump*()` functions, analogous to `debug()`
- Make dumping independent of the value of `debug()` (so dumping always
works even without the debug flag)
- Add separate `--dumpi-graph` for dumping V3Graphs, which is again a
special case of `--dumpi-<tag>`
- Alias `--dump-<tag>` to `--dumpi-<tag> 3` as before
2022-09-22 17:24:41 +01:00
Geza Lore
ce03293128
Generate AstNode accessors via astgen
...
Introduce the @astgen directives parsed by astgen, currently used for
the generation child node (operand) accessors. Please see the updated
internal documentation for details.
2022-09-21 13:56:03 +01:00
Geza Lore
0c70a0dcbf
Remove redundant 'virtual' keywords from overridden methods
...
'virtual' is redundant when 'override' is present, so keep only
'override'.
Add t/t_dist_cppstyle.pl to check for this.
2022-09-16 15:19:38 +01:00
Wilson Snyder
2dc85a5acd
Internals: enum constructor cleanups. No functional change intended.
2022-09-15 19:58:10 -04:00
Wilson Snyder
ea55db7286
Internals: Cleanup some string constructors. No functional change.
2022-08-30 01:02:39 -04:00
Mariusz Glebocki
2b12fe5773
Internals: Construct V3Number with correct type instead of changing it manually. ( #3529 )
2022-08-08 08:17:02 -04:00
Geza Lore
96a4b3e5a5
Update clang-format config and apply
...
- Regroup and sort #include directives (like we used to, but automatic)
- Set AlwaysBreakTemplateDeclarations to true
2022-08-05 12:00:24 +01:00
Wilson Snyder
a2d26b45bb
Internals: Fix some clang-tidy issues. No functional change intended.
2022-07-30 11:54:28 -04:00
Wilson Snyder
a4fddb3fbe
Fix table misoptimizing away display ( #3488 ).
2022-07-09 07:55:46 -04:00
Wilson Snyder
3d71716a8a
Internals: Constructor style cleanup. No functional change.
2022-07-09 07:40:07 -04:00
HungMingWu
880a9be3b1
Internal: Add C++20ish reverse_view for range loops. No functional change ( #3388 ).
...
Signed-off-by: HungMingWu <u9089000@gmail.com>
2022-04-18 13:03:56 -04:00
Wilson Snyder
33105f017c
Commentary
2022-03-30 20:17:59 -04:00
Wilson Snyder
50094ca296
Internals: Add cpplint control file and related cleanups
2022-01-09 16:49:38 -05:00
Wilson Snyder
15b32dc140
Internals: cpplint cleanups. No functional change.
2022-01-08 12:01:39 -05:00
Wilson Snyder
b989ac6db5
Internals: Support linking recursive function calls (but not later stages)
2022-01-03 18:50:41 -05:00
Wilson Snyder
e6857df5c6
Internals: Rename Ast on non-node classes ( #3262 ). No functional change.
...
This commit has the following replacements applied:
s/\bAstUserInUseBase\b/VNUserInUseBase/g;
s/\bAstAttrType\b/VAttrType/g;
s/\bAstBasicDTypeKwd\b/VBasicDTypeKwd/g;
s/\bAstDisplayType\b/VDisplayType/g;
s/\bAstNDeleter\b/VNDeleter/g;
s/\bAstNRelinker\b/VNRelinker/g;
s/\bAstNVisitor\b/VNVisitor/g;
s/\bAstPragmaType\b/VPragmaType/g;
s/\bAstType\b/VNType/g;
s/\bAstUser1InUse\b/VNUser1InUse/g;
s/\bAstUser2InUse\b/VNUser2InUse/g;
s/\bAstUser3InUse\b/VNUser3InUse/g;
s/\bAstUser4InUse\b/VNUser4InUse/g;
s/\bAstUser5InUse\b/VNUser5InUse/g;
s/\bAstVarType\b/VVarType/g;
2022-01-02 14:03:20 -05:00
Wilson Snyder
0c3ffa1841
Support force/release ( #2491 ) ( #2593 ).
2022-01-01 12:24:19 -05:00
Wilson Snyder
24a0d2a0c9
Internals: Favor member assignment initialization. No functional change intended.
2022-01-01 11:46:49 -05:00
Wilson Snyder
ca42be982c
Copyright year update.
2022-01-01 08:26:40 -05:00
Wilson Snyder
cd737065f2
Internals: More const. No functional change intended.
2021-11-26 17:55:36 -05:00
Wilson Snyder
05e12ab60e
Internals: More const. No functional change intended.
2021-11-26 10:52:45 -05:00
Geza Lore
381c87a1eb
Remove VN_CAST_CONST and VN_AS_CONST.
...
The _CONST suffix on these macros is only lexical notation, pointer
constness can be preserved by overloading the underlying
implementations appropriately. Given that the compiler will catch
invalid const usage (trying to assign a non-const pointer to a const
pointer variable, etc.), and that the declarations of symbols should
make their constness obvious, I see no reason to keep the _CONST
flavours.
2021-10-24 11:43:48 +01:00
Geza Lore
70603bb752
Add static assertions for unnecessary VN_IS/VN_AS/VN_CAST
...
Fail at compile time if the result of these macros can be statically
determined (i.e.: they aways succeed or always fail). Remove unnecessary
casts discovered. No functional change.
2021-10-22 19:39:24 +01:00
Geza Lore
dae9fa5053
Use VN_AS wherever possible and obvious. No functional change.
2021-10-22 14:06:00 +01:00
Wilson Snyder
f9806595f2
Add error when constant function under a generate ( #3103 ).
2021-08-21 10:33:20 -04:00
Wilson Snyder
b8e804f05b
Internals: Some clang-tidy cleanups. No functional change intended.
2021-07-25 13:38:27 -04:00