Philipp Wagner
b7c26dbea9
Fix to include limits header for std::numeric_limits ( #2747 )
...
Code using `std::numeric_limits` wasn't including the limits header,
leading to a compilation error in Fedora Rawhide (GCC 11.0).
2021-01-11 11:23:54 -05:00
Wilson Snyder
bd602d0e2d
Copyright year update
2021-01-01 10:29:54 -05:00
Wilson Snyder
72b2df30f8
Fix tracing empty sc module ( #2729 ).
2020-12-28 11:13:58 -05:00
Wilson Snyder
c39a8b439a
Internals: Use emplace instead of insert(make_pair(...)). No functional change intended.
2020-12-18 18:24:47 -05:00
Wilson Snyder
cd248f6bd7
Internals: Make consistent left/right/lo/hi accessors to ranges.
...
Change order of Range to store always left:right.
XML output changes to now show left:right (previously info was lost), no other change intended.
2020-12-06 21:13:56 -05:00
Wilson Snyder
a54ac52a35
Internals: Use 'Bit' where mean 2-state type. No functional change.
2020-11-29 08:23:36 -05:00
Wilson Snyder
b6ded59c2b
Internals: Use and enforce class final for ~5% performance boost.
2020-11-18 21:32:16 -05:00
Wilson Snyder
1b0a48ea02
Internals: Use C++11 = default where obvious. No functional change intended.
2020-11-16 19:56:16 -05:00
Wilson Snyder
2a24bb4759
Fix queue poping wrong value when otherwise unused ( #2512 ).
2020-11-07 10:37:55 -05:00
Wilson Snyder
e6b0479b80
Internals: CFunc VL_RESTORER. No functional change intended.
2020-10-31 09:14:47 -04:00
Wilson Snyder
cf7b5c091a
Internals: Track some VAccess that can be ReadOnly. No functional change.
2020-10-30 22:28:51 -04:00
Wilson Snyder
51b0963e61
Internals: Favor const for map keys. No functional change intended.
2020-10-30 18:00:40 -04:00
Wilson Snyder
1899a875a4
Internals: Create VAccess class. No functional change intended.
2020-09-07 17:09:25 -04:00
Wilson Snyder
ee9d6dd63f
C++11: Favor auto, range for. No functional change intended.
2020-08-16 11:44:06 -04:00
Wilson Snyder
72d2cff0a1
C++11: Use member declaration initalizations. No functional change intended.
2020-08-16 11:44:06 -04:00
Wilson Snyder
042d3eed23
C++11: Use override where possible. No functional change.
2020-08-16 11:44:05 -04:00
Wilson Snyder
c0127599df
C++11: Use nullptr. No functional change.
2020-08-16 11:44:05 -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
7fe49de420
Tests: Tests to fix misc internal coverage holes.
2020-06-04 20:23:55 -04:00
Wilson Snyder
6ce878cb0d
Fix some clang-tidy warnings
2020-06-01 23:16:17 -04:00
Geza Lore
9c054a5774
Optimize trace activity flags a bit more
...
- Improve flag pruning heuristic
- Set all trace activity flags in slow code. This in turns enables us
to remove checking the slow flag on the fast path.
2020-05-17 19:41:24 +01:00
Geza Lore
dc25e9b949
Optimize fine grained trace activity flags ( #2336 )
...
Firstly, we always use a byte array for fine grained activity flags
instead of a bit vector (we used to use a byte array only if we had
parallel mtasks). The byte vector can be set more cheaply in eval,
closing about 1/3 of the gap in performance between compiling with
or without --trace on SweRV EH1. The speed of tracing itself is not
measurably different.
Secondly, we prune the activity tracking such that if a set of activity
flag combinations only guard a small number of signals, we will turn
those signals into awayls traced signals. This avoids code which
sometimes tests dozens of activity flags just to subsequently check one
signal and dump it if it's value changed. We can just check the signal
state straight instead, and not bother with the flags. This removes
about 30% of activity flags in SweRV EH1, and makes both single threaded
VCD and FST tracing 8-9% faster.
2020-05-17 13:53:02 +01:00
Geza Lore
900c023bb5
Refactor trace implementation to allow experimentation
...
The main goal of this patch is to enable splitting the full and
incremental tracing functions into multiple functions, which can then be
run in parallel at a later stage. It also simplifies further
experimentation as all of the interesting trace code construction now
happens in V3Trace. No functional change is intended by this patch, but
there are some implementation changes in the generated code.
Highlights:
- Pass symbol table directly to trace callbacks for simplicity.
- A new traceRegister function is generated which adds each trace
function as an individual callback, which means we can have multiple
callbacks for each trace function type.
- A new traceCleanup function is generated which clears the activity
flags, as the trace callbacks might be implemented as multiple functions.
- Re-worked sub-function handling so there is no separate sub-function
for each trace activity class. Sub-functions are generate when required
by splitting.
- traceFull/traceChg are now created in V3Trace rather than V3TraceDecl,
this requires carrying the trace value tree in TraceDecl until it
reaches V3Trace where the TraceInc nodes are created (previously a
TraceInc was also created in V3TraceDecl which carries the value).
2020-05-15 18:34:29 +01:00
Geza Lore
12b95f6b93
Clean up V3TraceDecl & V3Trace. No functional change intended.
...
- Constify variables
- Remove redundancies
- [Hopefully] make some code a bit more readable
2020-05-15 18:34:29 +01:00
Wilson Snyder
f3308d236b
clang-format remaining sources. No functional change.
2020-04-15 07:58:34 -04:00
Wilson Snyder
5c966ec510
clang-format many files. No functional change.
...
Use nodist/clang_formatter to reformat files that are now clean.
2020-04-13 22:52:23 -04:00
Wilson Snyder
19b472cf0b
Internals: Cleanup unused nodep in visitors. No functional change intended.
2020-04-04 08:31:14 -04:00
Wilson Snyder
1ce360ed5b
Add SPDX license identifiers. No functional change.
2020-03-21 11:24:24 -04:00
Wilson Snyder
609a5dc26d
Fix cppcheck warnings. No functional change intended.
2020-02-03 23:21:56 -05:00
Yutetsu TAKATSUKASA
fbdf5f2dad
Internals: Mark all visit() with VL_OVERRIDE. Closes #2132 .
...
* Add VL_OVERRIDE macro so that compiler can tell my typo when trying to override a function.
* Mark visit() with VL_OVERRIDE. No functional change intended.
2020-01-21 17:35:56 -05:00
Wilson Snyder
623c4ec103
Internals: Create VL_DO_DANGLING. No functional change intended.
2020-01-16 20:17:11 -05:00
Wilson Snyder
f23fe8fd84
Update copyright year.
2020-01-06 18:05:53 -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
5811ec07e6
Update URLs to https://verilator.org
2019-11-07 22:33:59 -05:00
Wilson Snyder
9f977ed419
Codacy/Cppcheck cleanups and badge.
2019-10-24 21:48:45 -04:00
Wilson Snyder
d472ef63e9
Internals: Cleanup some misnamed classes. No functional change.
2019-10-05 08:17:21 -04:00
Wilson Snyder
8490046028
Internals: AstComment optional suppression of at. No functional change intended.
2019-09-23 18:44:45 -04:00
Wilson Snyder
e556269692
Commentary - Spelling fixes
2019-09-12 07:22:22 -04:00
Wilson Snyder
8548ecfdac
Internals: Add UASSERT_OBJ macro to replace hand-done ifs. No functional change intended.
...
This makes it easier to filter out correctly zero code-coverage lines.
2019-07-06 12:57:50 -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
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
c6650f88e1
Internals: Remove some uses of AstConst taking V3Number. No functional change intended.
2019-05-03 21:21:18 -04:00
Wilson Snyder
8a4aeddbb0
Copyright year update.
2019-01-03 19:17:22 -05: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
5ae1ce90ad
Internals: Refactor into cvtToHex function. No functional change.
2018-10-14 16:25:36 -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
e4d638c73d
Internals: Cleanup string casts. No functional change.
2018-10-13 22:02:39 -04:00
Wilson Snyder
75f28fd446
Internals: Fix spacing of function calls. No functional change.
2018-08-25 09:52:45 -04:00
Wilson Snyder
8f838433df
Internals: Fix spacing and style of v4 changes. No functional change.
2018-08-23 05:22:34 -04:00
Wilson Snyder
ec8dbbffed
MAJOR: Add multithreaded model generation.
2018-07-22 20:54:28 -04:00
Wilson Snyder
cf4bf9b7a5
Show file and line info when possible on internal graph errors.
2018-07-14 18:45:06 -04:00
Wilson Snyder
7fc565a1bd
Merge from master
2018-06-14 19:04:36 -04:00
Wilson Snyder
0eb1d0a84e
Fix cppcheck warnings. No functional change intended.
2018-06-14 18:59:24 -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
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
54a101acbe
Internals: Fix -DLEAK_CHECKS failing due to visitor destructor being too late.
2018-03-10 12:57:50 -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
John Coiner
f0217edef1
Internals: Keep a ptr to _eval in AstNetlist, make it easier to find.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2017-11-30 18:53:57 -05:00
Wilson Snyder
45de0599d7
Commentary
2017-11-27 20:11:34 -05:00
Wilson Snyder
63361fc56e
Add performance information to --stats file.
2017-09-17 22:52:57 -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
Johan Bjork
15495bb200
Improve Verilation performance on trace duplicates, msg2017.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2016-09-19 17:54:42 -04: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
318ded4198
Internals: Cleanup cppcheck warnings.
2015-10-03 22:33:06 -04:00
Wilson Snyder
0ee5743853
Add --dump-treei-<srcfile>, bug894.
2015-03-12 19:48:04 -04:00
Wilson Snyder
4c91ade61d
Copyright year update
2015-01-07 18:25:53 -05: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
c6e7d87960
Commentary - Remove author lines as amany contributors now
2012-05-24 19:19:48 -04:00
Wilson Snyder
50edef4ab2
Add Emacs indentation line. No functional change
2012-04-12 21:08:20 -04:00
Wilson Snyder
cc1adf9b38
Internals: merge V3Hashed cleanups. No functional change intended
2012-04-01 21:04:28 -04:00
Wilson Snyder
61cbdd1a19
Internals: Merge VFlag rename. No functional change.
2012-03-31 11:10:34 -04:00
Wilson Snyder
6e2758ae26
Internals: Minor refactorings from dtype branch. No functional change.
2012-03-03 12:10:29 -05:00
Wilson Snyder
8f40d6617e
For generated variables, opt towards 2-state so zero init
2012-01-26 08:29:55 -05:00
Wilson Snyder
c2c7c7bd9a
Copyright year update
2012-01-15 10:26:28 -05:00
Wilson Snyder
df1da3dda9
Internals: Fix cppcheck warnings; no functional change intended
2011-08-04 21:58:45 -04:00
Wilson Snyder
c83f2a4abd
Internals: Fix preincrements to reduce cppcheck warnings
2011-08-04 21:15:24 -04:00
Wilson Snyder
71c1f00ec2
Copyright year update
2011-01-01 18:21:19 -05:00
Wilson Snyder
b1872a8e21
Internals: Add enum prefixes to reduce MSVC macro conflicts
2010-02-01 20:15:48 -05:00
Wilson Snyder
f71749c3c4
Fix some MSVC++ warnings
2010-01-24 20:53:24 -05:00
Wilson Snyder
11e702c430
SystemPerl is no longer required for tracing.
...
Applications must use VerilatedVcdC class in place of SpTraceVcdC.
2010-01-24 18:37:01 -05:00
Wilson Snyder
729dfdfed7
Copyright year update
2010-01-05 21:15:06 -05:00
Wilson Snyder
ef3ed6e338
Support DPI exports
2009-12-20 08:27:00 -05:00
Wilson Snyder
2f2f367c0b
Internals: AstConst named functions when want true/false size 1
2009-11-22 20:05:33 -05:00
Wilson Snyder
e0bca07e06
Internals: Create AstNodeModule in prep for packages
2009-11-07 06:20:20 -05:00
Wilson Snyder
700c1f836d
Internals: Move array definitions to AstArrayDType instead of under AstVars.
...
Prep work for more complicated data types.
2009-11-04 22:31:53 -05:00
Wilson Snyder
4c26792c9b
Internals: Create data types and attach to AstVars, in prep for typedefs.
...
Added AstNodeDType and AstBasicDType and associated enums.
2009-11-02 08:06:04 -05:00
Wilson Snyder
2aa618ce98
Add 'See the manual' to unsupported+internal errors
2009-06-21 19:37:15 -04: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
21b5a4e9e4
Add --debugi-<srcfile> option.
2009-01-21 16:56:50 -05:00
Wilson Snyder
3d06720628
Copyright year update
2009-01-02 11:47:39 -05:00
Wilson Snyder
5bdb8674ed
Internals: Rename AstNode::userp to user1p for easier searching
...
and to disambiguate from the vertex/edge-> userp.
2008-11-25 09:03:49 -05:00