Geza Lore
16d32cdd4a
Internals: Refactor Ast to Dfg conversion for reusability. ( #6276 )
...
This is mainly code motion, with minimal algorithmic changes to
facilitate reusing parts in future code. No functional change intended.
2025-08-08 22:53:12 +01:00
Wilson Snyder
d1f851e1e1
Internals: Optimize empty 'if' into StmtExpr
2025-08-08 05:10:40 -04:00
Wilson Snyder
6a225d5d00
Internals: Remove AstSysFuncAsTask
2025-08-08 05:09:54 -04:00
Artur Bieniek
5b7188fcaf
Fix same variable on the RHS forced to two different LHSs. ( #6269 )
2025-08-06 17:37:00 -04:00
github action
dc049fdd74
Apply 'make format'
2025-08-06 21:30:37 +00:00
Michael Bedford Taylor
218659f4e8
Support parameter resolution of 1D unpacked array slices ( #6257 ) ( #6268 )
2025-08-06 17:29:40 -04:00
Igor Zaworski
6c1cfc68cf
Fix dynamic cast purity ( #6267 )
...
Signed-off-by: Igor Zaworski <izaworski@internships.antmicro.com>
2025-08-06 07:09:44 -04:00
Wilson Snyder
c005486acf
Support by ignoring delay2 on UDPs
2025-08-05 17:34:42 -04:00
Wilson Snyder
6467351752
Add error on class 'function static'.
2025-08-05 17:12:00 -04:00
Wilson Snyder
870c398094
Fix incorrect Non-ANSI I/O declaration conflict error ( #6258 ) broke with #bd1ac038
2025-08-05 16:33:28 -04:00
Geza Lore
86c56e8e14
Fix true cycle detection in DFG
2025-08-05 15:04:07 +01:00
Geza Lore
25d968b833
Fix infinite loop in VString::replaceSubstr
...
If the replaced string was a suffix of the replacement, we used to get
an infinite loop.
2025-08-05 14:41:38 +01:00
Geza Lore
158a54a7ff
Defer deletion of eliminated Ast variables until end of Dfg pass. ( #6263 )
...
This is currently unnecessary but future patch will depend on it.
2025-08-05 14:29:33 +01:00
Geza Lore
8c9a4fec83
Emit memory addresses of vertices in Dfg dumps
2025-08-05 13:03:57 +01:00
Geza Lore
53332ae03e
Unify the two DFG cycle finding algorithms. ( #6262 )
...
Both V3DfgBreakCycles.cpp and V3DfgDecomposition.cpp used to contain an
implementation of the same algorithm to color strongly connected
components. Now there is only one, and it lives in V3DfgColorSCCs.cpp.
2025-08-05 13:03:30 +01:00
Geza Lore
4a5935d248
Merge DFG components made acyclic into the original acyclic sub-graph. ( #6261 )
...
After making a cyclic DFG component acyclic, merge that component back
into the acyclic sub-graph of the input graph. This enables optimizing
through the components that were made acyclic in their larger context.
2025-08-05 12:11:02 +01:00
Geza Lore
78c9e7773a
Allow more variable removal in scoped DFG ( #6260 )
2025-08-05 11:18:33 +01:00
Geza Lore
d2edab458e
Refactor Dfg variable flags ( #6259 )
...
Store all flags in a DfgVertexVar relating to the underlying
AstVar/AstVarScope stored via AstNode::user1(). user2/user3/user4 are
then usable by DFG algorithms as needed.
2025-08-05 10:24:54 +01:00
Geza Lore
d415757b0e
Remove unhelpful DFG debug dumps
2025-08-05 05:06:44 +01:00
Ryszard Rozak
7d2b6bd921
Internals: Optimize updates of Vtogcov signals. No functional change intended. ( #6110 )
2025-08-04 13:29:56 +01:00
Wilson Snyder
52ac3b3a0d
Add error on too many pattern members for structure
2025-08-03 17:26:51 -04:00
Wilson Snyder
f106c1eaec
Fix genvar check to be more strict about generate-for usage only
2025-08-03 16:57:12 -04:00
Wilson Snyder
309129ebcf
Add PARAMNODEFAULT error, for parameters without defaults.
2025-08-03 15:27:37 -04:00
Geza Lore
deed20fb78
Fix partial DFG conversion of concat assignments ( #6255 )
...
When we had a `{a, b} = ...`, and the DFG conversion of `a = ...`
succeeded, but `b = ...` failed, we still used to include `a = ...` in
the DFG, which then caused a spurious multi-driver error for `a` on
a subsequent DFG pass, as the original `{a, b} = ...` was still present
in the Ast, but we also had the extra `a = ...` from converting out of
DFG on the previous pass.
In this patch we only convert assignments with a concatenation on the
LHS, if all target LValues can be converted into DFG.
This is the proper fix for #4231
2025-08-03 14:52:20 +01:00
Wilson Snyder
36577bb549
Add check for missing 'parameter' on implicit types
2025-08-02 17:02:45 -04:00
Wilson Snyder
473d54aa95
Internals: Fis emit spacing etc. No functional change
2025-08-02 13:47:07 -04:00
Wilson Snyder
dca504c706
Internals: Use UINFOTREE istead of dumpTree
2025-08-02 13:44:40 -04:00
Ryszard Rozak
f9bdab65f0
Fix coverage of variables of complex types ( #6250 )
2025-08-01 13:24:18 +02:00
Szymon Gizler
61f4c97f40
Support unassigned virtual interfaces ( #5265 ) ( #6245 )
2025-08-01 12:39:13 +02:00
Rodrigo Batista de Moraes
d0f0919830
Fix write of 0 in '%c' ( #6248 ) ( #6249 )
2025-08-01 07:54:18 +02:00
Wilson Snyder
bd1ac03828
Add I/O versus data declaration checking.
2025-07-31 18:38:50 -04:00
Ryszard Rozak
d8f1e1113a
Fix error when force assignment is used with ref function args ( #6244 )
2025-07-31 12:48:37 +02:00
Wilson Snyder
9d38e63269
Remove error on missing forward declarations of typedef in class ( #6207 ).
2025-07-30 09:14:13 -04:00
Geza Lore
9d2adf3e49
Internals: Enable EmitV to output formatted code to std::ostream ( #6239 )
...
Introduce V3OutStream as a V3OutFormatter that writes to a stream
instead of a file. This can be used to emit formatted code fragments
e.g. in debug prints and graph dumps.
2025-07-30 13:41:21 +02:00
Igor Zaworski
2b62f5a625
Add error when trying to assign class object to variable of non-class types ( #6237 )
2025-07-30 09:48:02 +02:00
Wilson Snyder
0da9f6eb03
Fix queue typedef with unbounded slice ( #6236 ).
2025-07-28 19:36:52 -04:00
Ryszard Rozak
a5b0a0d9dd
Add support for `$countones` in constraints ( #6144 ) ( #6235 )
2025-07-28 16:14:03 +02:00
Wilson Snyder
0bd291e6cd
Fix unused variable compile error ( #6222 partial)
2025-07-28 02:27:55 -04:00
Wilson Snyder
5c1d7f3ce9
Fix negate of wide structure selections ( #6186 ).
2025-07-28 02:20:57 -04:00
Wilson Snyder
e69df457fd
Fix MODDUP with duplicate packages to take first package ( #6222 ).
2025-07-28 01:45:03 -04:00
Wilson Snyder
47c5b220b3
Support non-ansi ports with `wire` before `input`
2025-07-27 17:13:56 -04:00
Wilson Snyder
64a82508f2
Fix error on `with` to give UNSUPPORTED ( #6134 )
2025-07-27 16:12:16 -04:00
Paul Swirhun
bd2cb989d1
Support bit queue streaming ( #5830 ) ( #6103 ).
2025-07-27 15:29:56 -04:00
github action
92a4bff047
Apply 'make format'
2025-07-27 14:31:15 +00:00
Wilson Snyder
d359fffcdc
Internals: Refactor V3Task and add loop assert ( #6218 )
2025-07-27 10:30:19 -04:00
Wilson Snyder
c4b3f1e99c
Tests: Add test and assert for nested simulated loops ( #6223 )
2025-07-27 09:43:46 -04:00
Geza Lore
895b85a16e
Fix Replicate with unsigned count but MSB set ( #6231 ) ( #6233 )
...
Correctly compute witdh of AstReplicate in its constructor when the
count is unsigned but its MSB is set.
2025-07-27 12:30:19 +02:00
Wilson Snyder
1725ee9c52
Fix loop initialization visibility outside loop ( #4237 ).
2025-07-27 03:42:41 -04:00
Wilson Snyder
d93abd002f
Internals: V3Unroll refactoring. No functional change intended
2025-07-27 03:36:41 -04:00
Wilson Snyder
470f99694e
Revert d8dbb08a: Support bit queue streaming ( #5830 ) ( #6103 )
2025-07-26 17:59:52 -04:00