Wilson Snyder
b6ded59c2b
Internals: Use and enforce class final for ~5% performance boost.
2020-11-18 21:32:16 -05:00
Wilson Snyder
78aee6f4e7
C++11: Use sized enums (+4% performance).
2020-08-16 12:05:35 -04:00
Wilson Snyder
7c54a451a9
C++11: Remove pre-c11 VL_OVERRIDE etc. No functional change.
2020-08-16 11:44:05 -04:00
Wilson Snyder
05aecd2c0b
Internals: Fix tabs in astgen. No effective functional change.
2020-05-05 20:33:35 -04:00
Wilson Snyder
1ce360ed5b
Add SPDX license identifiers. No functional change.
2020-03-21 11:24:24 -04:00
Wilson Snyder
0aabe6ce00
Internals: Fix cppcheck warning including missing init.
2020-02-03 22:10:29 -05:00
Wilson Snyder
52907e7b02
astgen: Preserve #line, #2138 .
2020-01-25 15:36:37 -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
48dd358c03
Fix clang warnings from override.
2020-01-21 20:22:32 -05:00
Geza Lore
220daa5f33
Internals: Restore AstNode naming property. #2133 .
...
The intention was that all subclasses of AstNode which are
intermediate must be abstract as well and called AstNode*. This was
violated recently by 28b9db1903 . This
patch restores that property by:
- Renaming AstFile to AstNodeFile
- Introducing AstNodeSimpleText as the common base of AstText and
AstTextBlock, rather than AstTextBlock deriving from AstText.
2020-01-21 19:54:14 -05:00
Wilson Snyder
623c4ec103
Internals: Create VL_DO_DANGLING. No functional change intended.
2020-01-16 20:17:11 -05:00
Wilson Snyder
a2911ed933
Fix shebang breaking some shells. Closes #2067 .
2020-01-09 20:01:12 -05:00
Wilson Snyder
f23fe8fd84
Update copyright year.
2020-01-06 18:05:53 -05:00
Wilson Snyder
8b6fb26272
Return good exit status on --help.
2019-09-30 23:15:10 -04:00
Wilson Snyder
f818ddc71c
Internals: Detab and fix spacing style issues in tests and scripts. No functional change.
2019-05-07 22:34:09 -04:00
Wilson Snyder
8a4aeddbb0
Copyright year update.
2019-01-03 19:17:22 -05:00
Wilson Snyder
5ae1ce90ad
Internals: Refactor into cvtToHex function. No functional change.
2018-10-14 16:25:36 -04:00
Wilson Snyder
a18d6c8159
Merge from master
2018-07-18 21:34:38 -04:00
Wilson Snyder
a0b09b6450
Remove tabs inside generated files/quotes.
2018-07-18 21:25:21 -04:00
Wilson Snyder
05db8ce6c8
Internals: Move iterators to AstNVisitor to avoid null this.
2018-05-10 20:55:37 -04: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
8e65d93d6d
Copyright year update. No functional change.
2018-01-02 18:05:06 -05:00
Wilson Snyder
cb422a9a02
Internals: Number astgen from 1 as 0p looks like Op. No functional change.
2017-10-28 08:48:24 -04:00
Wilson Snyder
a1a8f17617
Internals: Add const's. No functional change
2017-10-10 20:24:10 -04:00
Wilson Snyder
e6d7e7e329
Version bump
2017-01-15 12:13:13 -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
bda4b326ab
Internals: Use mixed case for AstType enums. No functional change.
2016-11-05 09:47:56 -04:00
Johan Bjork
340cc02171
Avoid dynamic_cast for classes with no children, bug1021.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2016-01-06 20:47:44 -05:00
Wilson Snyder
b738d1960a
Copyright year update
2016-01-06 20:36:41 -05:00
Wilson Snyder
4fc9a906f6
Internals: Fix cppcheck warnings; add VL_DANGLING. No functional change.
2015-10-04 13:16:35 -04:00
Wilson Snyder
4c91ade61d
Copyright year update
2015-01-07 18:25:53 -05:00
Wilson Snyder
9ec35a2348
New verilator_coverage and infrastructure to replace SystemPerl's vcoverage.
2014-11-23 21:06:10 -05:00
Wilson Snyder
28e35a64ea
Support parameter arrays, bug683.
2014-04-01 23:16:16 -04:00
Wilson Snyder
4422de0c6c
Copyright year update.
2014-01-06 19:28:57 -05:00
Wilson Snyder
a8bbf7231b
Copyright year update.
2013-01-01 09:42:59 -05:00
Wilson Snyder
2d8feabe54
Fix generate operators not short circuiting, bug413. Merge from Jeremy Bennett.
2012-04-19 22:53:52 -04:00
Wilson Snyder
50edef4ab2
Add Emacs indentation line. No functional change
2012-04-12 21:08:20 -04:00
Wilson Snyder
c2c7c7bd9a
Copyright year update
2012-01-15 10:26:28 -05:00
Wilson Snyder
954e127f1d
Commentary: Report children node types
2011-11-01 19:33:11 -04:00
Wilson Snyder
ca81db8edf
Remove dead node types; make report of node usage. No functional change
2011-10-10 18:13:42 -04:00
Wilson Snyder
7c2fdd1ee9
Fix --help output to go to stderr, not stdout, bug397.
2011-10-04 10:08:16 -04:00
Wilson Snyder
71c1f00ec2
Copyright year update
2011-01-01 18:21:19 -05:00
Wilson Snyder
c8852d183f
Internals: Add V3Const preserving liveness, no functional change
2010-12-28 21:23:16 -05:00
Wilson Snyder
9f161b20ef
Internals: Avoid passing vars from V3Const visitor; no functional change
2010-12-28 20:46:13 -05:00
Wilson Snyder
e4f1e5f4c3
Internals: Rename AstType enum to fix Cygwin define conflict
2010-01-21 18:04:36 -05:00
Wilson Snyder
729dfdfed7
Copyright year update
2010-01-05 21:15:06 -05:00
Wilson Snyder
7df730cedd
Verilator is now licensed under LGPL v3 and/or Artistic v2.0.
2009-05-04 17:07:57 -04:00
Wilson Snyder
3d06720628
Copyright year update
2009-01-02 11:47:39 -05:00
Wilson Snyder
b07dd622fa
Commentary: Debugging and some astgen code cleanup.
...
No functional change.
2008-11-22 17:37:20 -05:00
Wilson Snyder
52912c6329
Convert repository to git from svn.
...
- Change .cvsignore to .gitignore
- Remove Id metacomments
- Cleanup whitespace at end of lines
2008-06-09 21:25:10 -04:00
Wilson Snyder
a2ffe86a36
Copyright update
...
git-svn-id: file://localhost/svn/verilator/trunk/verilator@976 77ca24e4-aefa-0310-84f0-b9a241c72d87
2008-01-15 14:29:08 +00:00
Wilson Snyder
b5b1d94d4a
Copyright date update
...
git-svn-id: file://localhost/svn/verilator/trunk/verilator@864 77ca24e4-aefa-0310-84f0-b9a241c72d87
2007-01-02 22:06:40 +00:00
Wilson Snyder
94f0809d33
Add more boolean identity fixes
...
git-svn-id: file://localhost/svn/verilator/trunk/verilator@798 77ca24e4-aefa-0310-84f0-b9a241c72d87
2006-09-27 18:00:53 +00:00
Wilson Snyder
ce10dbd11c
Version bump
...
git-svn-id: file://localhost/svn/verilator/trunk/verilator@753 77ca24e4-aefa-0310-84f0-b9a241c72d87
2006-08-26 11:35:28 +00:00