Jiamin Zhu
1c88c3083c
Fix splitting coroutines ( #4297 ) ( #4307 )
2023-06-23 06:01:38 -04:00
Ryszard Rozak
4522834f7a
Fix duplicate fork names ( #4295 )
2023-06-22 06:51:53 -04:00
Ryszard Rozak
9ee5fd0585
Fix handling of ref types in initial values of type parameters ( #4304 )
2023-06-20 14:10:07 -04:00
Wilson Snyder
63b2dbb827
Fix error when multiple duplicate DPI exports ( #4301 ).
2023-06-20 06:26:46 -04:00
Wilson Snyder
d45deccc0a
Internals: Favot std::array. No functional change intended.
2023-06-16 19:44:40 -04:00
Ryszard Rozak
d1ff81a41c
Fix class reference assignment checking ( #4296 )
2023-06-15 14:00:47 +02:00
Krzysztof Bieganski
43fa6858f6
Fix `VlForkSync` redeclaration ( #4277 )
...
Given nested forks, if the inner fork had a `join` or `join_any` at the end,
`V3Sched::transformForks()` would decide that the fork's `VlForkSync` variable
should be passed in from the outside. This resulted in the `VlForkSync` getting
redeclared as a function argument. Ultimately, it led to C++ compilation errors
due to variable redeclaration.
Fixed by rearranging the `if`s that decide whether a variable should be passed
in or left as-is.
2023-06-15 07:49:50 -04:00
Krzysztof Boronski
21c01ba97b
V3Fork - transform processes that can outlive their parents into separate tasks ( #4253 )
...
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
2023-06-14 20:44:53 +02:00
Ryszard Rozak
b517fb5ee3
Support some stream operations on queues ( #4292 )
2023-06-13 22:46:42 -04:00
Wilson Snyder
48e98ea2bd
Internals: Sort some error codes ( #4253 ). No functional change intended.
2023-06-13 08:52:13 -04:00
Julien Margetts
ac4315e145
Fix LATCH warning on function local variables ( #4221 ) ( #4284 )
2023-06-12 09:24:46 -04:00
Àlex Torregrosa
4b7b185d05
Fix VCD scope types ( #4227 ) ( #4282 )
2023-06-08 11:43:04 -04:00
Aleksander Kiryk
6cb0335d28
Support array max ( #4275 )
2023-06-07 07:44:21 -04:00
Aleksander Kiryk
c248318958
Fix struct redefinition ( #4276 )
2023-06-06 18:28:35 -04:00
Ryszard Rozak
c3e5db5f04
Fix names of foreach blocks ( #4264 )
2023-06-06 16:24:42 +02:00
Krzysztof Bieganski
058233fc87
Set the global `usesTiming` flag if forks exist ( #4274 )
2023-06-06 09:35:12 -04:00
Mariusz Glebocki
186c851695
Internals: Avoid pessimistic mutex locking in waitIfStopRequested() ( #4272 ). No functional change intended.
...
`stopRequested()` reads only atomic variables. It doesn't need a mutex
to do this.
This function is called in `waitIfStopRequested()`, which in turn
is called before execution of every job, and inside some jobs. With this
change the mutex inside `waitIfStopRequested` needs to be locked only in
very rare cases instead of every time.
2023-06-05 19:40:36 -04:00
Mariusz Glebocki
5aa36357f6
Internals: Use `auto` instead of SFINAE in return type ( #4271 ). No functional change intended.
2023-06-05 18:53:19 -04:00
github action
a7b0551d23
Apply 'make format'
2023-06-03 14:11:23 +00:00
John Wehle
dc34968fe7
Add class specific same methods for AstVarScope, AstVar, and AstScope ( #4203 ) ( #4250 )
2023-06-03 10:07:39 -04:00
Jiamin Zhu
45f064f7cb
Fix missing assignment for wide class members. ( #4267 )
2023-06-03 06:40:23 -07:00
Krzysztof Boroński
545caba720
Give iterated variables in foreach loops VAUTOM lifetimes ( #4265 )
...
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
2023-06-02 17:16:42 +02:00
Krzysztof Boroński
0e24f36fef
Use STATIC lifetime for variables created from clocking items ( #4262 )
...
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
2023-06-01 17:49:27 +02:00
Aleksander Kiryk
db7935faf3
Add std::process class ( #4212 )
2023-06-01 10:02:08 -04:00
Adrien Le Masle
9cc218db3e
Fix incorrect multi-driven lint warning ( #4231 ) ( #4248 )
2023-06-01 08:43:17 -04:00
Ryszard Rozak
15f8ebc562
Fix static methods with prototypes ( #4220 )
2023-05-31 21:18:32 -04:00
Don Williamson
df2746de71
Add --main-top-name option for C main TOP name ( #4235 ) ( #4249 )
2023-05-31 09:02:26 -07:00
Risto Pejašinović
7f471d862e
Fix operator == for unpacked struct, if elements are VlUnpacked arrays ( #4247 )
2023-05-31 08:34:34 -04:00
Risto Pejašinović
338acabe2b
Fix AstStructSel clean when data type is structure ( #4241 ) ( #4244 )
2023-05-30 23:44:48 -04:00
Ryszard Rozak
4f1f487ae4
Fix function calls in with statements ( #4245 )
2023-05-30 09:02:59 -04:00
Krzysztof Bieganski
77502aeb97
Add warning that timing controls in DPI exports are unsupported ( #4238 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-05-30 09:00:10 -04:00
Ryszard Rozak
ba82d43ca1
Support for condition operator on class objects ( #4214 )
2023-05-30 08:59:00 -04:00
Wilson Snyder
e9135598b3
Fix method calls on function return values.
2023-05-29 18:51:27 -04:00
Risto Pejašinović
1c0739db10
Fix unpacked struct == and != operators ( #4234 ) ( #4240 )
2023-05-29 12:08:39 -04:00
Ryszard Rozak
dfd3907787
Mark AstMemberSel as clean ( #4236 )
2023-05-29 09:35:53 +02:00
Wilson Snyder
1069652701
Fix some AstExprStmt handling issues, towards side effect fixes.
2023-05-27 12:43:40 -04:00
Wilson Snyder
70b82f1aec
Internals: V3Dead cleanups. No functional change.
2023-05-27 11:46:25 -04:00
Wilson Snyder
5573bdb219
Internals: Cleanup V3SplitAs VL_RESTORED. No functional change intended.
2023-05-27 10:43:04 -04:00
Wilson Snyder
cf68578261
Internals: Cleanup V3SplitAs VL_RESTORED. No functional change intended.
2023-05-27 10:17:51 -04:00
Wilson Snyder
f407d442d4
Commentary
2023-05-27 09:43:23 -04:00
Wilson Snyder
5efe9367d2
Fix SystemC signal copy macro use ( #4135 ).
2023-05-27 07:00:26 -04:00
Krzysztof Bieganski
519792d02b
Fix to commit coroutines immediately on `wait` statements ( #4229 )
...
Event-triggered coroutines live in two stages: 'uncommitted' and 'ready'. First
they land in 'uncommitted', meaning they can't be resumed yet. Only after
coroutines from the 'ready' queue are resumed, the 'uncommitted' ones are moved
to the 'ready' queue, and can be resumed. This is to avoid self-triggering in
situations like waiting for an event immediately after triggering it.
However, there is an issue with `wait` statements. If you have a `wait(b)`, it's
being translated into a loop that awaits a change in `b` as long as `b` is
false. If `b` is false at first, the coroutine is put into the `uncommitted`
queue. If `b` is set to true before it's committed, the coroutine won't get
resumed.
This patch fixes that by immediately committing event controls created from
`wait` statements. That means the coroutine from the example above will get
resumed from now on.
2023-05-25 20:20:44 -04:00
Jiamin Zhu
bfa1f2d7ce
Fix missing assignment for wide unpacked structs ( #4233 )
2023-05-25 20:13:02 -04:00
Mariusz Glebocki
8303938d0e
Internals: Make mutex classes uncopyable. ( #4223 )
2023-05-25 07:35:14 -04:00
Mariusz Glebocki
0ece155418
Internals: Move some includes to .cpp files. ( #4224 )
2023-05-24 18:53:14 -04:00
Ryszard Rozak
4f7e155e59
Fix class parameters of enum types ( #4219 )
2023-05-24 15:51:03 +02:00
Wilson Snyder
19d0aabe7a
Internals: Fix extra cast on ExprStmt.
2023-05-23 20:52:30 -04:00
Krzysztof Boroński
167a30be1c
Fix deep traversal of class inheritance timing ( #4216 )
2023-05-23 09:01:57 -04:00
Wilson Snyder
5982528274
Fix duplicate std:: declaration with -I ( #4215 ).
2023-05-22 20:32:20 -04:00
Krzysztof Boroński
de3095e3b4
Fix missing class forward declarations ( #4151 )
2023-05-22 08:29:01 -04:00