about summary refs log tree commit diff
path: root/tests/coverage/loops_branches.cov-map
AgeCommit message (Collapse)AuthorLines
2025-05-06coverage: Only merge adjacent coverage spansZalathar-15/+34
This also removes some manipulation of the function signature span that only made sense in the context of merging non-adjacent spans.
2025-05-06coverage-dump: Dump filenames instead of global file IDs (and bless)Zalathar-3/+3
2025-04-01coverage: Don't split bang-macro spans, just truncate themZalathar-6/+6
2025-02-13coverage: Eliminate more counters by giving them to unreachable nodesZalathar-17/+17
When preparing a function's coverage counters and metadata during codegen, any part of the original coverage graph that was removed by MIR optimizations can be treated as having an execution count of zero. Somewhat counter-intuitively, if we give those unreachable nodes a _higher_ priority for receiving physical counters (instead of counter expressions), that ends up reducing the total number of physical counters needed. This works because if a node is unreachable, we don't actually create a physical counter for it. Instead that node gets a fixed zero counter, and any other node that would have relied on that physical counter in its counter expression can just ignore that term completely.
2025-02-06coverage: Don't create counters for code that was removed by MIR optsZalathar-55/+40
2025-01-16coverage: Completely overhaul counter assignment, using node-flow graphsZalathar-85/+45
2024-12-07coverage: Prefer to visit nodes whose predecessors have been visitedZalathar-94/+83
2024-12-04coverage: Add an extra "transcribe" step after counter creationZalathar-125/+98
2024-11-08coverage: Restrict empty-span expansion to only cover `{` and `}`Zalathar-6/+6
2024-10-11coverage: Include the highest counter ID seen in `.cov-map` dumpsZalathar-0/+3
When making changes that have a large impact on coverage counter creation, this makes it easier to see whether the number of physical counters has changed. (The highest counter ID seen in coverage maps is not necessarily the same as the number of physical counters actually used by the instrumented code, but it's the best approximation we can get from looking only at the coverage maps, and it should be reasonably accurate in most cases.)
2024-05-14coverage: Simplify counter expressions using simple algebraZalathar-128/+112
Some of these cases currently don't occur in practice, but are included for completeness, and to avoid having to add them later as branch coverage and MC/DC coverage start building more complex expressions.
2023-11-25coverage: Simplify building coverage expressions based on sumsZalathar-45/+45
In some cases we need to prepare a coverage expression that is the sum of an arbitrary number of other terms. This patch simplifies the code paths that build those sums. This causes some churn in the mappings, because the previous code was building its sums in a somewhat idiosyncratic order.
2023-11-07coverage: Migrate `tests/coverage-map` into `tests/coverage`Zalathar-0/+183