Wilson Snyder
3a5248a919
Internals: Mark structs final/VL_NOT_FINAL. No functional change intended.
2024-01-20 15:06:46 -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
Wilson Snyder
e76f29e5ba
Copyright year update
2024-01-01 03:19:59 -05: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
eb2cfe1d19
Support parameterized virtual interaces ( #4047 ) ( #4743 )
2023-12-06 08:02:04 -05:00
Anthony Donlon
88fcbf5f1d
Fix interface parameters used in loop generate constructs ( #4664 ) ( #4665 )
2023-11-04 13:19:35 -04:00
Anthony Donlon
d0d39c13e7
Fix linking parameterized hierarchical blocks and recursive hierarchical blocks ( #4654 )
2023-11-03 07:55:53 -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
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
Wilson Snyder
b5828a7ce9
Fix header order botched by clang-format in recent commit.
2023-10-18 06:37:46 -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
e99fd2892b
Make VNDeleter a member of VNVisitor. No function change. ( #4573 )
2023-10-17 09:26:53 +02:00
Anthony Donlon
4427f03b08
Fix error message for invalid parameter overrides ( #4559 )
2023-10-15 12:59:36 -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
Anthony Donlon
63db60f646
Fix using type in parameterized classes without #() ( #4281 ) ( #4440 )
...
* Check whether a class is parameterized or not with AstClass::isParameterized method
* Fix usage conflict of user2 pointer in V3Param.cpp
2023-08-26 12:06:26 -01:00
Ryszard Rozak
51266898ec
Fix comparison of string parameters ( #4308 )
2023-06-27 10:40:45 +02:00
Ryszard Rozak
9ee5fd0585
Fix handling of ref types in initial values of type parameters ( #4304 )
2023-06-20 14:10:07 -04:00
Ryszard Rozak
4f7e155e59
Fix class parameters of enum types ( #4219 )
2023-05-24 15:51:03 +02:00
Ryszard Rozak
0198a3fc52
Use unchanged copy of parameterized class for instantation ( #4179 )
2023-05-11 09:56:15 +02:00
Ryszard Rozak
5aecfa98a1
Internals: Add param value string to hash in V3Param.cpp ( #4186 )
2023-05-10 17:52:17 -04:00
Wilson Snyder
add68130b8
Internals: Rename to dumpLevel(), to avoid confusion with make-a-dump()
2023-05-03 18:04:10 -04:00
Ryszard Rozak
09e856d2f3
Fix deleting unused parameterized classes ( #4150 )
2023-04-28 07:20:25 -04:00
Ryszard Rozak
84a46939b3
Fix class extend param references ( #4136 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-04-20 07:11:35 -04:00
Ryszard Rozak
d1b80ffa29
Support parameterized return types of methods ( #4122 )
2023-04-14 08:52:43 -04:00
Ryszard Rozak
f95ce886f1
Fix duplicating parameter class types ( #4115 )
2023-04-14 06:51:33 -04:00
Wilson Snyder
a8ce272e4a
Commentary: spelling
2023-03-14 08:39:54 -04:00
Ryszard Rozak
45f955f175
Fix self references to parameterized classes ( #3962 )
2023-02-17 11:17:35 -05:00
Wilson Snyder
f8b0e359b9
Support class parameters without initial values.
2023-02-13 22:06:52 -05:00
Wilson Snyder
10d0088f73
Fix generate case with empty body statements.
2023-02-12 18:14:18 -05:00
Ryszard Rozak
0e955d503e
Handle references of static members of type aliases of a parametrized class ( #3922 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-02-02 08:36:11 +01:00
github action
41e5f6b7d5
Apply 'make format'
2023-01-19 23:22:37 +00:00
James Shi
c1c0aa61f9
Fix signed/unsigned parameter types ( #3866 )
2023-01-19 18:00:32 -05:00
Wilson Snyder
b24d7c83d3
Copyright year update
2023-01-01 10:18:39 -05:00
Ryszard Rozak
bf4a844f2b
Fix self references when param class instantiated ( #3833 )
2022-12-30 06:05:01 -05:00
github action
f6b101d98b
Apply 'make format'
2022-12-26 09:31:25 +00:00
Larry Doolittle
80a144797d
Commentary: Fix more spelling ( #3828 )
2022-12-26 10:30:41 +01:00
Wilson Snyder
c0499da28b
Spelling fixes
2022-12-23 11:32:38 -05:00
Larry Doolittle
f27cf4c804
Commentary: Fix spelling in C++ comments ( #3797 ) ( #3798 )
2022-12-02 18:46:38 -05:00
Wilson Snyder
f0a7abcef8
Internals: Use named accessors instead of op1p etc. No functional change intended.
2022-11-29 18:17:50 -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
352d0b4582
Internals: Fix constructor style.
2022-11-20 13:11:01 -05:00
Arkadiusz Kozdra
627a144b83
Support access to constructs inside type parameters ( #3702 )
...
This changeset brings support for accesses like:
class Cls#(type TYPE1);
TYPE1::some_method();
endclass
It is done by delaying dot resolution on type parameters until they get
resolved by V3Param, and doing a more thorough reference skip.
2022-10-21 09:00:40 -04:00
Krzysztof Bieganski
22243d1e49
Support class type params without defaults ( #3693 )
2022-10-19 21:59:26 -04:00
Wilson Snyder
10fc1f757c
Internals: cppcheck cleanups. No functional change intended.
2022-10-02 23:04:55 -04:00
Geza Lore
78e659a142
Reduce size of FileLine
...
Multiple tricks to reduce the size of class FileLine from 72 to 40
bytes:
- Reduce file name index from 32 to 16 bits. This still allows 64K
unique input files, which is hopefully enough.
- Intern message/warning enable bitset and use a 16-bit index, again
allowing 64K unique sets which is hopefully enough.
- Put the m_waive flag into the sign bit of one of the line numbers.
- Use explicit reference counting to avoid overhead of shared_ptr.
Added assertions to ensure interned data fits within it's index space.
This saves ~5-10% peak memory consumption at no measurable run-time cost
on various designs.
2022-09-24 20:16:21 +01: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