Commit Graph

9561 Commits

Author SHA1 Message Date
Matthew Ballance 77e2c0b4e2 Remove dead guards
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance feb11da024 Fix CI regressions from covergroup changes
V3DfgOptimizer: Remove SenItem special case added in commit 20970c7dd.
By the time the scoped DFG pass runs (pipeline line 439), V3Active has
already deleted all AstCovergroup nodes (line 423). The SenItem block was
therefore unnecessary — and harmful, as it set HasExtRdRefs on ALL clock
signals in sensitivity lists, preventing clock-gate deduplication.
Fixes t_opt_dedupe_clk_gate (got 4 deduped instead of expected 2).

V3Width: Restore constifyEdit guard in visit(AstInsideRange*) with null
checks. The guard was needed so that negative literals (e.g. AstNegate
wrapping a Const) in covergroup bin ranges are folded to constants before
V3Width visits them as expressions. Without it, V3Width sees a bare NEGATE
under INSIDERANGE with m_vup==nullptr and fires v3fatalSrc.
Fixes t_covergroup_negative_ranges.

Root-cause note: t_debug_width was failing due to the SenItem DFG change
above, not the constifyEdit. t_opt_const.v (used by t_debug_width) has no
inside-range expressions, so constifyEdit was never triggered for that test.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance e578838c75 Increase dump coverage
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 64f6ab5069 Fix whitespace issues
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
github action 3ae3f52e2d Apply 'make format' 2026-04-18 00:44:57 +00:00
Matthew Ballance 7b0c443f65 Improve code coverage and add coverage report production to more tests
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 3088782e28 Checkpoint on closing coverage holes
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance ae4fb13879 Combine/minimize cross and transition tests
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance fe9d9846d6 Update t_vlcov_covergroup to produce its own data instead of relying on a cached file
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 8dd992efdb Adjust code patterns based on PR feedback
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
github action 4a16d39d72 Apply 'make format' 2026-04-18 00:44:57 +00:00
Matthew Ballance 3334d91e49 Fix t_debug_emitv golden file: update while-loop emit after upstream unroll change
Upstream commit 7607f0e7f changed how while loops over queue.size() are
emitted, adding an __Vrepeat0 temporary variable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 9601b74dab Fix golden file: update BASICDTYPE 'logic' to 'bit' after upstream four-state cleanup
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance e0aa381384 Added verilator_coverage test for covergroups
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
github action f07d4601f7 Apply 'make format' 2026-04-18 00:44:57 +00:00
Matthew Ballance c96c8cd4cc Fix warnings
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 957a238605 Move AST building from parser proper to LinkParse ; simplify Coverpoint construction
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 731d7d3152 Clean up unneeded dump()
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 810666f936 Refactor visitor structure to successively collect state vs having multiple flag-controlled passes
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 663b9845a2 Correct use of deleteTree
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 8a4b25d800 const-ify variables
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 8e2977b969 Add coverage report output for covergroup
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
github action bf0f8d6035 Apply 'make format' 2026-04-18 00:44:57 +00:00
Matthew Ballance 5ad6b62615 Update unsupported and clean up warnings
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 52e7874134 Update format of unsupported messages for consistency
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 8709d79092 Removed redundant local teml
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
github action 0fd0791c7c Apply 'make format' 2026-04-18 00:44:57 +00:00
Matthew Ballance e35916e95e Format fixes
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
github action 10881c40bc Apply 'make format' 2026-04-18 00:44:57 +00:00
Matthew Ballance 440d990634 Cleanup mis-merge ; move initial Ast manipulation out of Grammar
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 682556cd05 Comment new Ast classes, clean up accidentally added members, clean up a few interim workarounds, and adjust approach to stay out of sensitive paths
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance ac06e1f8be Clean up comments
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
github action 6df855cb91 Apply 'make format' 2026-04-18 00:44:57 +00:00
Matthew Ballance 1e16c8bcdd Aligned with C++14 and fixed a couple non-ascii characters
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 5633bb488d cleanup
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance c659fe900a Refactor loops in V3Active ; add three tests to vlt_all, so they run with threading
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 48e3b7888a Remove low-value tests ; Rename tests to better-align with their purpose ; Move to using coverage.dat to assess correctness
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 0cfc093dd9 Fix constifyParamsEdit regression in visit(AstInsideRange*)
The original code called V3Const::constifyParamsEdit() in
V3Width::visit(AstInsideRange*) to fold negative bin bounds
(e.g., NEGATE(100) -> -100) for covergroup bins. Since
constifyParamsEdit uses m_required=true, it errored on any
non-constant expression -- breaking the upstream test
t_constraint_array_index_simple which uses a foreach loop
variable 'i' in an inside constraint expression.

Fix: Remove the unconditional constifyParamsEdit calls from
V3Width::visit(AstInsideRange*). Instead:
- In V3Width: when m_vup is null (covergroup bin context,
  not an expression context), use constifyEdit (m_required=false)
  to fold constant arithmetic before iterating children.
- In V3Covergroup: call constifyEdit at the two sites that
  cast InsideRange bounds to AstConst for bin expansion.

This moves the covergroup-specific concern to the right layer
(V3Covergroup) while keeping V3Width safe for all contexts.

Also update golden files for t_covergroup_trans_3value,
t_covergroup_trans_restart, and t_covergroup_with_sample_args_too_many_bad
whose line numbers shifted by 1 due to the SPDX copyright header
additions in the previous commit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 0f76f47864 Add missing SPDX-FileCopyrightText headers to covergroup test files
All new covergroup test files were missing the canonical
SPDX-FileCopyrightText line required by t_dist_copyright.
Add it above the existing SPDX-License-Identifier line in each file.
Also canonicalize t_covergroup_with_sample_args_too_many_bad.py to
use SPDX form instead of prose copyright comment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance c25bb8ab17 Update golden files after rebase onto upstream/master
Upstream commit 07ed6aef5 'Tests: Verilog format' reformatted several
Verilog test files, shifting line/column numbers in compiler output.
Also pick up upstream's improved 'Too many arguments' error message
which now includes the declaration location.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 09b83a9f99 Fix non-ASCII characters in V3Covergroup.cpp comment
Replace Unicode em-dash and curly apostrophe with plain ASCII
equivalents to pass t_dist_whitespace CI check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance d35df728d7 Restore t_covergroup_with_sample_args_too_many_bad test
This test was added upstream in a364704e3 and should not have been
deleted. The driver normalizes version strings (?v=X.Y -> ?v=latest)
and 'Exiting due to...' messages, so the upstream .out file is
compatible with our branch's error output as-is.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:57 +00:00
Matthew Ballance 7a307eaed6 Convert 'if' tests to assertion macros
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:56 +00:00
github action d7109df592 Apply 'make format' 2026-04-18 00:44:56 +00:00
Matthew Ballance cdfb990ac5 Cleaned up coverpoint-bin warning around 'excessive size'
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:56 +00:00
Matthew Ballance 880829e321 Update debug_emitv to include covergroup constructs ; update emit of covergroup debug content
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:56 +00:00
Matthew Ballance 7620ad9d7e Test clean-ups, resolve an internal error masked by the checking strategy, and add 'automatic' to remove warnings
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2026-04-18 00:44:56 +00:00
Matthew Ballance d4595a0643 t_covergroup_with_sample_args_too_many_bad: remove redundant test
'sample' argument count checking is generic function/task behavior
already covered by t_func_bad and similar tests. Removing this test
eliminates fragility from upstream error message/caret changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:56 +00:00
Matthew Ballance 4868caf1cb V3Covergroup: initialize bin counters to 0, not random
Coverage bin counters (__Vcov_* member variables) were being initialized
with VL_SCOPED_RAND_RESET_I because they are plain uint32 members with no
explicit initial value. This caused 0% coverage readings at runtime when
randReset != 0 (as used in CI).

Fix all 5 bin counter AstVar creation sites to set an explicit valuep of
AstConst(0), so V3EmitCFunc emits '= 0U' instead of VL_SCOPED_RAND_RESET_I.

Affects: regular bins, default bins, array bins, transition array bins,
and cross bins.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:56 +00:00
Matthew Ballance 18d9b148e4 Fix V3Fork lifetime assertion by restoring V3LinkInc temp var lifetime
Commit b4244fc57 accidentally dropped the varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT)
line when reverting V3LinkInc.cpp to a merge base. This caused __Vincrement* temp
variables to have VLifetime::NONE, triggering V3Fork's assertion that all variables
inside fork...join_none blocks have a known lifetime.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:44:56 +00:00