Commit Graph

3260 Commits

Author SHA1 Message Date
Wilson Snyder 7db7d3df0d Misc style cleanups 2020-02-23 20:18:02 -05:00
Wilson Snyder af84c975f1 Misc style cleanup. 2020-02-23 19:57:28 -05:00
Wilson Snyder c4c190398f Split not needed with --xml-only 2020-02-23 19:56:18 -05:00
Wilson Snyder 784e39131b Merge from master 2020-02-23 19:38:27 -05:00
Wilson Snyder 28e19cef90 Fix undeclared VL_SHIFTR_WWQ, #2114. 2020-02-23 19:33:37 -05:00
Yutetsu TAKATSUKASA e379683e97
style change 2020-02-23 16:23:35 +09:00
Yutetsu TAKATSUKASA 5899177fc1 Pass AstVar, AstVarRef, AstSel 2020-02-23 16:10:30 +09:00
Yutetsu TAKATSUKASA a259f9d15d
module list for packed variables are also deterministic. 2020-02-16 17:32:12 +09:00
Yutetsu TAKATSUKASA d0957ecfc1
warning messages are shown in deterministic order for CI. 2020-02-16 17:02:29 +09:00
Yutetsu TAKATSUKASA 001e26a542
delete constify call because now the pass is called after constifyAllLint(). 2020-02-16 16:03:28 +09:00
Yutetsu TAKATSUKASA e77e8fe927
simple optimization to just check a module with split variables 2020-02-16 15:58:52 +09:00
Yutetsu TAKATSUKASA be04672add single entry point for V3SplitVar 2020-02-16 15:42:29 +09:00
Tobias Wölfel 18f8cd0529
Allow assert disable (#2168)
* Add +verilator+noassert flag

This allows to disable the assert check per simulation argument.

* Add AssertOn check for assert

Insert the check AssertOn to allow disabling of asserts.
Asserts can be disabled by not using the `--assert` flag or by calling
`AssertOn(false)`, or passing the "+verilator+noassert" runtime flag.
Add tests for this behavior.
Bad tests check that the assert still causes a stop.
Non bad tests check that asserts are properly disabled and cause no stop
of the simulation.

Fixes #2162.

Signed-off-by: Tobias Wölfel <tobias.woelfel@mailbox.org>

* Correct file location

Signed-off-by: Tobias Wölfel <tobias.woelfel@mailbox.org>

* Add description for single test execution

Without this description it is not obvious how to run a single test from
the regression test suite.

Signed-off-by: Tobias Wölfel <tobias.woelfel@mailbox.org>
2020-02-15 18:17:23 -06:00
Yutetsu TAKATSUKASA c498051c3d
refactor
- resolve duplicated code
- better connection
- divide long function
2020-02-14 22:39:28 +09:00
Wilson Snyder 02786b3f09 Commentary 2020-02-12 22:46:59 -05:00
Yutetsu TAKATSUKASA 8e7366eab2
Add some missing check and initialization. 2020-02-12 16:58:53 +09:00
Yutetsu TAKATSUKASA 77c52f8ab3
completely delete testing code 2020-02-12 10:53:14 +09:00
Yutetsu TAKATSUKASA 7ebfa32e13 disable full test mode 2020-02-12 09:41:44 +09:00
Yutetsu TAKATSUKASA 241e54e7b3 Tested with all existing cases after changing the code to split everything.
The following tests fail. Explanation is here.

- Failure because extra warnings
    - vlt/t_a1_first_cc: %Error: Exec of perl failed: No stack.
        make -j && test_regress/t/t_a1_first_cc.pl  --vlt
    - vlt/t_a2_first_sc: %Error: Exec of perl failed: No stack.
        make -j && test_regress/t/t_a2_first_sc.pl  --vlt
    - vlt/t_flag_debugi9: %Error: Exec of perl failed: Starting Verilator 4.029 devel rev v4.028-114-g8e707db3 (mod)
        make -j && test_regress/t/t_flag_debugi9.pl  --vlt
- Failures because the statistics changes
    - vlt/t_split_var_0: %Error: File_grep: obj_vlt/t_split_var_0/Vt_split_var_0__stats.txt: Got='26' Expected='23' in regexp: (?^i:SplitVar,\s+Split unpacked arrays\s+(\d+))
        make -j && test_regress/t/t_split_var_0.pl  --vlt
    - vlt/t_split_var_1_bad: %Error: Line 1 mismatches; obj_vlt/t_split_var_1_bad/vlt_compile.log != t/t_split_var_1_bad.out
        make -j && test_regress/t/t_split_var_1_bad.pl  --vlt
    - vlt/t_split_var_2_trace: %Error: VCD miscompare obj_vlt/t_split_var_2_trace/simx.vcd t/t_split_var_2_trace.out
        make -j && test_regress/t/t_split_var_2_trace.pl  --vlt
    - vlt/t_unopt_combo_isolate: %Error: File_grep: obj_vlt/t_unopt_combo_isolate/Vt_unopt_combo_isolate__stats.txt: Regexp not found: (?^i:Optimizations, isolate_assignments blocks\s+5)
        make -j && test_regress/t/t_unopt_combo_isolate.pl  --vlt
    - vlt/t_unopt_combo_isolate_vlt: %Error: File_grep: obj_vlt/t_unopt_combo_isolate_vlt/Vt_unopt_combo_isolate_vlt__stats.txt: Regexp not found: (?^i:Optimizations, isolate_assignments blocks\s+5)
        make -j && test_regress/t/t_unopt_combo_isolate_vlt.pl  --vlt
    - vlt/t_xml_tag: %Error: Line 26 mismatches; obj_vlt/t_xml_tag/Vt_xml_tag.xml != t/t_xml_tag.out
        make -j && test_regress/t/t_xml_tag.pl  --vlt
- SplitVar changed error message by other pass.
    - vlt/t_bitsel_wire_array_bad: %Error: Line 1 mismatches; obj_vlt/t_bitsel_wire_array_bad/vlt_compile.log != t/t_bitsel_wire_array_bad.out
        make -j && test_regress/t/t_bitsel_wire_array_bad.pl  --vlt
    - vlt/t_lint_multidriven_bad: %Error: Line 9 mismatches; obj_vlt/t_lint_multidriven_bad/vlt_compile.log != t/t_lint_multidriven_bad.out
        make -j && test_regress/t/t_lint_multidriven_bad.pl  --vlt
    - vlt/t_gen_forif: %Error: Exec of perl failed: %Warning-CLKDATA: t/t_gen_forif.v:35: Clock used as data (on rhs of assignment) in sequential block 't.Result'
        make -j && test_regress/t/t_gen_forif.pl  --vlt
    - vlt/t_unoptflat_simple_2_bad: %Error: Exec of perl ok, but expected to fail
        make -j && test_regress/t/t_unoptflat_simple_2_bad.pl  --vlt
- Because of other issue https://github.com/verilator/verilator/issues/1008#issuecomment-581078519
    - vlt/t_select_bound1: %Error: Exec of perl failed: %Error: t/t_select_bound1.v:23: Unsupported: 4-state numbers in this context
        make -j && test_regress/t/t_select_bound1.pl  --vlt
2020-02-12 09:41:44 +09:00
Wilson Snyder 39119b88d3 Code style changes. No functional change. 2020-02-09 18:58:48 -05:00
Wilson Snyder ac552b0efb Format standardizations (capitals/spaces), no logical change. 2020-02-09 18:27:04 -05:00
Wilson Snyder d201ce40a0 Use newer warning format. 2020-02-09 18:08:19 -05:00
Wilson Snyder 2108b19b94 Commentary 2020-02-09 18:08:04 -05:00
Wilson Snyder 1c3b8229b4 Merge from master. 2020-02-09 17:39:23 -05:00
Wilson Snyder 70358e8587 Fix compiler warning. 2020-02-08 10:58:07 -05:00
Wilson Snyder 95b66feeb8 devel release 2020-02-08 09:16:35 -05:00
Wilson Snyder 890cecc15b Version bump 2020-02-08 09:03:51 -05:00
Wilson Snyder f7bad37e88 Fix GCC 4.4.7 errors. 2020-02-08 07:09:41 -05:00
Wilson Snyder 134b5efd70 Tests: Ignore obj_iv. 2020-02-07 18:00:07 -05:00
Wilson Snyder 0d6ebf21b3 Suggest svSetScope, #2152. 2020-02-07 17:59:02 -05:00
Wilson Snyder 2d1b804e80 Fix OpenSolaris issues, #2154. 2020-02-07 17:35:04 -05:00
Todd Strader 77f1b3eef4 Support parameter access from arrays of interfaces, #2155. 2020-02-06 19:19:23 -05:00
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 20cc4e57d5 tests: Driver style fix. 2020-02-03 18:43:56 -05:00
Wilson Snyder f3ebdc40c6 Fix some coverage lost when multithreaded, #2151. 2020-02-03 18:43:41 -05:00
Yutetsu TAKATSUKASA d151a9bd22 Merge remote-tracking branch 'upstream/master' into split_var0 2020-02-03 23:28:29 +09:00
Wilson Snyder 2ca9f73b31 Internals: Cleanup Emit towards constructor/destructor output. 2020-02-02 21:15:07 -05:00
Wilson Snyder 73f5e3f808 Internals: Add missing const. No functional change. 2020-02-02 10:34:29 -05:00
Wilson Snyder 8d3dad510f Fix unused variable. 2020-02-02 06:52:28 -05:00
Wilson Snyder 2576c136f6 Fix `pragma pedantic check to work with -E. 2020-02-01 22:03:18 -05:00
Wilson Snyder a8ad97eef2 Add VL_CACHE_LINE_BYTES and use 64 as defult. 2020-02-01 20:28:03 -05:00
Wilson Snyder ee7da1e690 Remove .h comments for empty sections. 2020-02-01 20:11:21 -05:00
Wilson Snyder 969a46faf6 Internals: V3Emit refactoring. No functional change intended. 2020-02-01 19:32:04 -05:00
Wilson Snyder 820df28ad9 Internals: V3CUse state refactoring. No functional change intended. 2020-02-01 19:11:19 -05:00
Yutetsu TAKATSUKASA 50fb7fc8b4
Tests: Resolve self assignment in t_unoptflat_simple_2, Closes #2149. 2020-02-01 19:07:02 -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
Geza Lore f00ff61559 Link Verilator binary partially statically, Closes #2146.
The build is now by default configured to link performance critical
libraries (libgcc, libstdc++, libtcmalloc) statically. This improves
Verilation speed by between 4.5-7% based on my measurements as it
eliminates approx 20% of the mispredicted branches from the execution.
With partial static linking, the size of the .text section in
verilator_bin is increased by about 14%, and the binary is itself only
about 800KB bigger on disk, so hopefully this is not a big issue in
exchange for the faster compilation speed. A configure option
"--disable-partial-static" is provided to restore the old behaviour of
linking everything dynamically.

Note: This patch also changes to use libtcmalloc_minimal, which is all
we really need and itself has fewer dependencies.
2020-01-31 19:13:55 -05:00
Wilson Snyder 2d195ebae5 Cleanup IEEE references. 2020-01-30 20:23:57 -05:00