Wilson Snyder
609a5dc26d
Fix cppcheck warnings. No functional change intended.
2020-02-03 23:21:56 -05:00
Wilson Snyder
0aabe6ce00
Internals: Fix cppcheck warning including missing init.
2020-02-03 22:10:29 -05:00
Wilson Snyder
73f5e3f808
Internals: Add missing const. No functional change.
2020-02-02 10:34:29 -05:00
Wilson Snyder
119162912a
Internals: Determine emit forward declaraions in new pass, towards classes.
2020-02-01 16:51:05 -05:00
Wilson Snyder
80d94891e1
Internals: Allow const & non-member CFuncs for class branch. No functional change.
2020-02-01 10:57:55 -05:00
Wilson Snyder
68fa82fb14
Support $typename, and use to cleanup error messages.
2020-01-26 13:21:25 -05:00
Geza Lore
ef5250f0ca
Internals: Further performance improvement of AstNode type tests, #2138 . No functional change intended.
...
Replace the virtual type() method on AstNode with a non-virtual, inlined
accessor to a const member variable m_type. This means that in order to be
able to use this for type testing, it needs to be initialized based on the
final type of the node. This is achieved by passing the relevant AstType
value back through the constructor call chain. Most of the boilerplate
involved is auto generated by first feeding V3AstNodes.h through astgen to
get V3AstNodes__gen.h, which is then included in V3Ast.h. No client code
needs to be aware and there is no functional change intended.
Eliminating the virtual function call to fetch the node type identifier
results in measured compilation speed improvement of 5-10% as it
eliminates up to 20% of all mispredicted branches from the execution.
2020-01-25 15:29:44 -05:00
Geza Lore
c5d04631d1
Internals: More performance efficient AstNode casting. Closes #2133 .
...
dynamic_cast can have large run-time cost, so here we implement type
tests for AstNode instances by checking the unique type() property, which
in turn is a constant generated by astgen. For leaf types in the AstNode
type hierarchy, this is a simple equality check. To handle intermediate
types, we generate the type ids of leaf types in a pre-order traversal of
the type hierarchy. This yields contiguous ranges of ids for sub-type
trees, which means we can check membership of a non-leaf type via 2
comparisons against a low and high id. This single patch makes Verilator
itself 6-13% faster (depending on which optimizations are enabled) on a
large design of over 250k lines of Verilog.
2020-01-22 19:07:48 -05:00
Wilson Snyder
abf3850d08
Internals: Misc cleanups for classes.
2020-01-20 16:53:27 -05:00
Wilson Snyder
e8ff191a17
Internals: Prepare for hierarchical NodeModule's. No functional change intended.
2020-01-20 13:27:27 -05:00
Wilson Snyder
835f668aaa
Internals: Refactor statement tracking. No functional change intended.
2020-01-18 13:02:42 -05:00
Stefan Wallentowitz
fad465abf1
Add lint_off -match waivers ( #2102 )
...
* Add more directives to configuration files
Allow to set the same directives in configuration files that can also
be set by comment attributes (such as /* verilator public */ etc).
* Add support for lint messsage waivers
Add configuration file switch '-match' for lint_off. It takes a string
with wildcards allowed and warnings will be matched against it (if
rule and file also match). If it matches, the warning is waived.
Fixes #1649 and #1514
Closes #2072
2020-01-12 10:03:17 +01:00
Wilson Snyder
f23fe8fd84
Update copyright year.
2020-01-06 18:05:53 -05:00
Wilson Snyder
37b9f254a2
Internals: Add origNameProtect. No functional change intended.
2019-12-24 08:47:30 -05:00
Wilson Snyder
53c6b7df63
Internals: Rename NodeClassDType. No functional change.
2019-12-16 22:46:09 -05:00
Wilson Snyder
700f2072c0
Framework for WDatas being vectors of 64-bit EDatas, but not supporting this at this time.
2019-12-08 21:36:38 -05:00
Wilson Snyder
d65d8fda54
Optimize returns at end of functions.
2019-12-01 17:19:18 -05:00
Wilson Snyder
b81295230a
Support associative arrays.
2019-12-01 11:52:48 -05:00
Wilson Snyder
704f40b1a2
Internals: Prep work for simulation of array parameters, bug1315. No functional change intended.
2019-11-09 15:27:10 -05:00
Wilson Snyder
5811ec07e6
Update URLs to https://verilator.org
2019-11-07 22:33:59 -05:00
Wilson Snyder
2aed499e00
Fix detecting missing reg types, bug1570.
2019-11-05 21:15:44 -05:00
Wilson Snyder
8a5b8d5f38
Internals: Fix VFlagBitPacked giving 4-state types.
2019-11-01 20:10:45 -04:00
Wilson Snyder
f852ba8a33
Add --trace-coverage.
2019-10-27 09:27:18 -04:00
Wilson Snyder
17ee8579a4
Internals: Make cleanOut/sizeMatters const. No functional change intended.
2019-10-20 11:58:41 -04:00
Wilson Snyder
94f7133c6f
Internals: make dump const. No functional change intended.
2019-10-20 11:49:41 -04:00
Wilson Snyder
91f1acd85f
Add --protect-ids to obscure information in objects, bug1521.
2019-10-06 13:24:21 -04:00
Wilson Snyder
d472ef63e9
Internals: Cleanup some misnamed classes. No functional change.
2019-10-05 08:17:21 -04:00
Wilson Snyder
771a301f66
Commentary: Remove newlines, upsets some patches. No functional change.
2019-10-04 20:17:11 -04:00
Wilson Snyder
e556269692
Commentary - Spelling fixes
2019-09-12 07:22:22 -04:00
Wilson Snyder
fa904f386c
Commentary - Spelling fixes
2019-09-09 07:50:21 -04:00
Wilson Snyder
71265a8ec9
Internals: Rename unsized functions. No functional change.
2019-08-04 12:39:35 -04:00
Wilson Snyder
3a720204c2
Internals: Remove m_logicMap as m_detailedMap covers it. No functional change intended.
2019-08-04 08:16:24 -04:00
Wilson Snyder
a95f58749f
Fix internal error on gate optimization of assign, bug1475.
2019-08-03 21:49:39 -04:00
Todd Strader
4a14788c9b
When showing an error, show the instance location
2019-07-26 12:52:38 -04:00
Wilson Snyder
173efbc829
Offer suggestions on bad identifier errors.
2019-07-14 10:08:53 -04:00
Wilson Snyder
0f857ce423
In errors, single quote signals and other from-user data.
2019-07-11 22:09:30 -04:00
Wilson Snyder
dacf45fea9
Fix error message continuations to avoid linenumber repetition
2019-07-11 19:15:40 -04:00
Wilson Snyder
bea34d0ced
Internals: Misc enum cleanups. No functional change.
2019-07-06 15:50:25 -04:00
Wilson Snyder
01ef7122e9
Internals: Add lcov code coverage markers.
2019-06-30 22:37:03 -04:00
Wilson Snyder
8e7559c6c9
Show included-from filenames in warnings, bug1439.
2019-06-22 17:01:39 -04:00
Wilson Snyder
b83b606267
Internals: Detab and fix spacing style issues. No functional change.
...
When diff, recommend using "git diff --ignore-all-space"
When merging, recommend using "git merge -Xignore-all-space"
2019-05-19 16:13:13 -04:00
Wilson Snyder
1fb0af7fba
Internals: Fix some -Wsuggest-attribute=const suggestions.
2019-05-14 21:46:19 -04:00
Todd Strader
eac3458647
Internals: V3Number tracks node information, part of bug1305.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2019-05-09 20:03:19 -04:00
Wilson Snyder
60f2f176a2
Fix DPI export void compiler error, bug1391.
2019-01-16 00:38:42 -05:00
Wilson Snyder
62a7d713a7
Fix internal error on xrefs into unrolled functions, bug1387.
2019-01-06 17:38:27 -05:00
Wilson Snyder
3505486ec8
Internals: Spacing; fix assertion
2019-01-05 05:46:37 -05:00
Wilson Snyder
8a4aeddbb0
Copyright year update.
2019-01-03 19:17:22 -05:00
Wilson Snyder
940dc98c66
Add CONTASSREG error on continuous assignments to regs, bug1369.
2018-12-01 10:12:10 -05:00
Wilson Snyder
5cc11839b5
Add PROCASSWIRE error on behavioral assignments to wires, msg2737.
2018-11-26 17:58:18 -05:00
Wilson Snyder
ad2929dff0
Support "ref" and "const ref" pins and functions, bug1360.
2018-10-30 20:50:09 -04:00
Wilson Snyder
b8098098d8
Internals: Refactor input/output to new class in prep for ref support.
2018-10-27 17:29:00 -04:00
Wilson Snyder
304a24d03a
Internals: Fix many clang-tidy issues. No functional change intended.
2018-10-14 18:39:33 -04:00
Wilson Snyder
d87b9d25ca
Internals: Cleanup and standardize include order. No functional change intended.
2018-10-14 13:59:40 -04:00
Wilson Snyder
595419b370
Internals: Sort includes for clang-tidy. No functional change intended.
2018-10-14 07:04:18 -04:00
Wilson Snyder
8b738c0022
Compute struct/union/enum names from surrounding typedefs.
2018-10-07 18:07:42 -04:00
Wilson Snyder
75f28fd446
Internals: Fix spacing of function calls. No functional change.
2018-08-25 09:52:45 -04:00
Wilson Snyder
ec8dbbffed
MAJOR: Add multithreaded model generation.
2018-07-22 20:54:28 -04:00
Wilson Snyder
338ebcd6f0
Internal: Minor style cleanups for next merge. No functional change.
2018-07-14 17:27:05 -04:00
Wilson Snyder
86d85412e1
Merge from master
2018-06-22 18:51:02 -04:00
Wilson Snyder
35a40b4930
Commentary
2018-06-22 06:35:27 -04:00
Wilson Snyder
4c7a397dc4
Merge from master
2018-06-16 18:05:26 -04:00
Wilson Snyder
047a08c999
Internals: Clean some UASSERTs. No functional change.
2018-06-16 18:00:21 -04:00
Wilson Snyder
5988bba9fb
Merge from master
2018-06-12 21:25:26 -04:00
Wilson Snyder
1c5c9e2435
cppcheck fixes
2018-06-12 21:14:20 -04:00
Wilson Snyder
05a8a9ee28
Remove NULL checks of this, as upsets some compilers.
2018-05-26 08:28:19 -04:00
Wilson Snyder
cd4e6b35b3
Internals: Standardize debug() function generation. No functional change intended.
2018-05-14 06:50:47 -04:00
Wilson Snyder
05db8ce6c8
Internals: Move iterators to AstNVisitor to avoid null this.
2018-05-10 20:55:37 -04:00
Wilson Snyder
02f18fc21b
Merge from master
2018-03-15 23:31:59 -04:00
Wilson Snyder
7922a1de28
Internals: Misc cleanups related to V3LinkDot. No functional change intended.
2018-03-15 19:46:05 -04:00
Wilson Snyder
d08a91b71e
Fix GCC lint complaint of calling NULL->cloneTree. No functional change intended.
2018-03-10 17:44:17 -05:00
Wilson Snyder
2c30aecc5b
Merge from master
2018-03-10 16:51:34 -05:00
Wilson Snyder
770045676f
Internals: Split some extremely long lines. No functional change.
2018-03-10 16:32:04 -05:00
Wilson Snyder
f0ba17a19b
Merge from master.
2018-02-27 07:24:31 -05:00
John Coiner
a7a790416e
Internals: Fix passing bool as int. No functional change.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2018-02-27 07:16:16 -05:00
Wilson Snyder
597d28b505
Fix internals to make null-pointer-check clean. Also add more const's. No functional change intended, but likely something will break.
2018-02-01 21:32:58 -05:00
Wilson Snyder
94e8cf1de9
Internals: Use explicit std:: instead of using namespace std. No functional change intended.
2018-02-01 21:24:41 -05:00
Wilson Snyder
8e65d93d6d
Copyright year update. No functional change.
2018-01-02 18:05:06 -05:00
Wilson Snyder
49fe4d081c
Support DPI open arrays, bug909, bug1245.
2017-12-17 16:28:58 -05:00
Wilson Snyder
d1b8f53711
Support DPI time and svLogicVal.
...
Note older version incorrectly assumed svBitVal even for logicals.
2017-12-09 20:17:37 -05:00
Wilson Snyder
ea91b10086
Internals: Add charIQWN. Proper capitalization.
2017-12-09 14:44:55 -05:00
Wilson Snyder
54b3f92951
Commentary
2017-11-28 18:21:43 -05:00
Wilson Snyder
ae9179f412
Fix partial slicing with pattern assignments, bug991.
2017-11-23 14:55:32 -05:00
Wilson Snyder
a579e9273b
Support self-recursive modules, bug659.
2017-11-18 17:42:35 -05:00
Wilson Snyder
c0afe96b80
Fix addition of data types to --xml.
2017-11-09 18:04:16 -05:00
Wilson Snyder
add5cc8b56
Internals: Add VL_UNCOPYABLE to make classes uncopyable. No functional change intended.
2017-11-01 18:51:41 -04:00
Wilson Snyder
52c3031a82
Internals: Rename selfTest, no functional change.
2017-10-30 19:01:58 -04:00
John Coiner
df471e87eb
Internals: Break unnecessary dependencies in V3Order.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2017-10-28 13:31:04 -04:00
Wilson Snyder
ec6fae5d1a
Internals: Add const to same() methods. No functional change.
2017-10-28 10:26:34 -04:00
Wilson Snyder
bbed4d50ab
Fix clang and cppcheck warnings.
2017-10-14 14:51:57 -04:00
Wilson Snyder
a1a8f17617
Internals: Add const's. No functional change
2017-10-10 20:24:10 -04:00
Chris Randall
264b888ef2
Add /*verilator tag*/ for XML extraction applications.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2017-10-06 07:33:52 -04:00
Wilson Snyder
b532a47e4a
Internals: Prep for V3Slice rewrite. No functional change intended.
2017-10-04 21:15:19 -04:00
Wilson Snyder
82460b0da3
Commentary
2017-10-01 23:06:16 -04:00
Wilson Snyder
590ad964b1
Add assertion on bad formed lvalues, used to debug bug1187.
2017-08-13 18:08:44 -04:00
Wilson Snyder
7b642bcbb4
Support packed struct DPI imports, bug1190.
2017-08-11 19:07:47 -04:00
Wilson Snyder
70daadf987
Fix cpp-check warnings; support XML format 2
2017-07-06 20:25:59 -04:00
Wilson Snyder
ea82bfcced
Fix GCC 6 warnings.
2017-07-06 19:07:23 -04:00
Wilson Snyder
96a5445d44
Support ports of array of reals, bug1154.
2017-04-28 06:10:14 -04:00
Wilson Snyder
be6a3d0f10
Fix wreal not handling continuous assign, bug1150.
2017-03-30 18:32:37 -04:00
Wilson Snyder
e6d7e7e329
Version bump
2017-01-15 12:13:13 -05:00
Wilson Snyder
2d0084308d
Internals: Convert AstNUser to non-pointer to avoid NULL call. No functional change intended.
2016-11-27 09:40:12 -05:00
Wilson Snyder
7efa40966a
Internals: Remove second argument to visitors. No functional change intended.
2016-11-27 08:11:38 -05:00
Wilson Snyder
183cabc77d
Internals: Have cloning return node's type to avoid casts. No functional change.
2016-11-08 21:16:22 -05:00
Wilson Snyder
ad39931e87
Internals: Cleanup uses of accept in V3Width. No functional change.
2016-11-07 19:14:45 -05:00
Wilson Snyder
e52f5f1b63
Internals: Remove extraneous castNode() calls. No functional change.
2016-11-05 10:06:43 -04:00
Wilson Snyder
bda4b326ab
Internals: Use mixed case for AstType enums. No functional change.
2016-11-05 09:47:56 -04:00
Wilson Snyder
e8e4f1777d
Internals: Add cloneType method. Unused - for next checkin.
2016-07-23 16:54:36 -04:00
Wilson Snyder
e64b2d3372
Internals: user#inc now has optional increment value.
2016-05-06 22:26:15 -04:00
Wilson Snyder
04977ef721
Internals: Show clocker in debug dumps. Part of bug1009.
2016-05-05 22:40:19 -04:00
Wilson Snyder
a509b6a21c
Internals: Fix compares to null, ongoing part of bug1030. No functional change intended.
2016-02-08 22:15:44 -05:00
Wilson Snyder
d1acaea611
Internals: Fix compares to null, ongoing part of bug1030. No functional change intended.
2016-02-03 20:44:31 -05:00
Wilson Snyder
b738d1960a
Copyright year update
2016-01-06 20:36:41 -05:00
Wilson Snyder
318ded4198
Internals: Cleanup cppcheck warnings.
2015-10-03 22:33:06 -04:00
Wilson Snyder
d0ec991bb2
Fix mis-optimizing public DPI functions, bug963.
2015-09-18 19:06:15 -04:00
Wilson Snyder
a950e4816d
Support extraction of enum bits, bug951.
2015-08-12 21:33:40 -04:00
Wilson Snyder
7312de6bc2
Fix sign extension in large localparams, bug910.
2015-05-14 21:46:07 -04:00
Wilson Snyder
486d69da5f
Add --clk and related optimizations, msg1533.
2015-03-12 19:20:46 -04:00
Wilson Snyder
4c91ade61d
Copyright year update
2015-01-07 18:25:53 -05:00
Wilson Snyder
c1593f856d
Support enum.first/name and similar methods, bug848.
2014-11-28 20:34:23 -05:00
Wilson Snyder
43be4cf2b5
Add 'string' printing and comparisons, bug746, bug747, etc.
2014-11-28 15:01:50 -05:00
Wilson Snyder
8b457b9b66
Internal: Rename string functions. No functional change.
2014-11-28 13:50:37 -05:00
Wilson Snyder
6da13c6486
Internals: Split V3Error into V3FileLine. No functional change.
2014-11-22 11:48:39 -05:00
Wilson Snyder
3f82fd2f37
Add public enums, bug833.
2014-11-07 07:50:11 -05:00
Wilson Snyder
8bfb5cc5e9
Internals: Add sameGateTree.
2014-11-02 19:52:49 -05:00
Wilson Snyder
27af9b6b06
Fix clang warnings, bug818.
2014-09-11 21:28:53 -04:00
Wilson Snyder
8031f0ed7f
Fix duplicate anonymous structures in , bug788.
2014-06-15 11:18:47 -04:00
Wilson Snyder
2accba2e71
Update WIDTH warning message formats to match future commit.
2014-04-29 21:11:57 -04:00
Wilson Snyder
2e10555f03
Fix tracing of packed arrays without --trace-structs, bug742.
2014-04-15 20:20:45 -04:00
Glen Gibb
d34275150c
Support streaming operators, bug649.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2014-04-09 20:29:35 -04:00
Wilson Snyder
14fcfd8a40
Fix signed extension problem with -Wno-WIDTH, bug729.
2014-04-05 15:52:05 -04:00
Wilson Snyder
ed39c66715
Internals: Make const iterator to fix missed-edits on dump. Merge from bug683 branch.
2014-03-31 20:24:05 -04:00
Wilson Snyder
17b8b660f0
Internals: Fix assignment pattern replication. From bug355 branch.
2014-03-30 10:20:12 -04:00
Wilson Snyder
2d61e0270e
Support case inside, bug708.
2014-01-20 21:59:53 -05:00
Wilson Snyder
4422de0c6c
Copyright year update.
2014-01-06 19:28:57 -05:00
Wilson Snyder
7e54281e26
Fix array assignment from const var, bug693.
2013-10-31 22:39:26 -04:00
Wilson Snyder
15f512bdee
Debug: With --debug, run check tree at all steps even if no --dump-more
2013-10-30 23:25:54 -04:00
Wilson Snyder
4f6d80c602
Add UNPACKED warning to convert unpacked structs.
2013-10-28 20:41:05 -04:00
Wilson Snyder
d6e8b0263c
Fix crash on 32-bit Ubuntu, bug670.
2013-09-03 21:40:43 -04:00
Wilson Snyder
23bb045a72
Support interfaces and modports, bug102.
2013-05-27 21:39:19 -04:00
Wilson Snyder
24fcae4f49
Internals: When broken link fatal, say which rule violated
2013-05-25 17:05:22 -04:00
Wilson Snyder
d581582339
Add ALWCOMBORDER warning.
2013-04-30 22:55:28 -04:00
Varun Koyyalagunta
e0edb596ea
Add duplicate clock gate optimization, msg980.
...
Experimental and disabled unless -OD or -O3 used (for now),
Please try it as may get some significant speedups.
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2013-02-20 20:14:15 -05:00
Wilson Snyder
f07f6a26a8
cppcheck fixes
2013-02-03 13:27:37 -05:00
Wilson Snyder
929aeebf12
Support , and related functions, bug448.
2013-01-20 12:19:22 -05:00
Wilson Snyder
d4ef86afc0
Fix signed/unsigned parameter misconversion, bug606.
2013-01-18 21:35:43 -05:00
Wilson Snyder
de4016dcff
Internals: Ast classes create declRange().
2013-01-17 20:41:45 -05:00
Wilson Snyder
bbeb382cbb
Internals: Rename range lo/hi to match IEEE.
2013-01-17 20:29:20 -05:00
Wilson Snyder
410e6ff203
Fix DECLFILENAME warning on .
2013-01-17 18:38:51 -05:00
Wilson Snyder
6d1b42bedb
Fix implicit one bit parameter selection, bug603.
2013-01-16 20:58:48 -05:00
Wilson Snyder
8127a79cb1
Fix nested packed arrays and structs, bug600.
...
IMPORTANT: Packed arrays are now represented as a single linear vector in
Verilated models this may affect packed arrays that are public or accessed via the VPI.
2013-01-14 21:49:22 -05:00