<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src/coverageinfo/map_data.rs, branch 1.77.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.77.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.77.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2024-01-11T05:43:12+00:00</updated>
<entry>
<title>coverage: Add enums to accommodate other kinds of coverage mappings</title>
<updated>2024-01-11T05:43:12+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-12-28T03:07:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=124fff0777014323be34f0a990c78c5cfe9f40db'/>
<id>urn:sha1:124fff0777014323be34f0a990c78c5cfe9f40db</id>
<content type='text'>
</content>
</entry>
<entry>
<title>coverage: Consistently remove unused counter IDs from expressions/mappings</title>
<updated>2023-10-27T22:33:48+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-10-24T11:48:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=230dd5b8c71c1d176a6705bb458a473411788f68'/>
<id>urn:sha1:230dd5b8c71c1d176a6705bb458a473411788f68</id>
<content type='text'>
</content>
</entry>
<entry>
<title>coverage: Build the global file table ahead of time</title>
<updated>2023-10-22T09:37:37+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-10-03T10:40:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e985ae5a459e7bc4ac68a926f2560621aea30a6c'/>
<id>urn:sha1:e985ae5a459e7bc4ac68a926f2560621aea30a6c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>coverage: Fetch expressions and mappings separately</title>
<updated>2023-10-22T09:11:48+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-10-06T11:46:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=86b55cccffa6f8c49747335a43abb04376d1e06f'/>
<id>urn:sha1:86b55cccffa6f8c49747335a43abb04376d1e06f</id>
<content type='text'>
The combined `get_expressions_and_counter_regions` method was an artifact of
having to prepare the expressions and mappings at the same time, to avoid
ownership/lifetime problems with temporary data used by both.

Now that we have an explicit transition from `FunctionCoverageCollector` to the
final `FunctionCoverage`, we can prepare any shared data during that step and
store it in the final struct.
</content>
</entry>
<entry>
<title>coverage: Split `FunctionCoverage` into distinct collector/finished phases</title>
<updated>2023-10-22T09:11:45+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-10-06T01:51:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=371883a05acf04be9fb8d3c0766990ba56cd22e3'/>
<id>urn:sha1:371883a05acf04be9fb8d3c0766990ba56cd22e3</id>
<content type='text'>
This gives us a clearly-defined place to run code after the instance's MIR has
been traversed by codegen, but before we emit its `__llvm_covfun` record.
</content>
</entry>
<entry>
<title>coverage: Store expression data in function coverage info</title>
<updated>2023-10-18T12:44:34+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-09-13T03:20:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=13b2d604ec31f76b8e913b6d2b28e1d2dad2249f'/>
<id>urn:sha1:13b2d604ec31f76b8e913b6d2b28e1d2dad2249f</id>
<content type='text'>
Even though expression details are now stored in the info structure, we still
need to inject `ExpressionUsed` statements into MIR, because if one is missing
during codegen then we know that it was optimized out and we can remap all of
its associated code regions to zero.
</content>
</entry>
<entry>
<title>coverage: Store all of a function's mappings in function coverage info</title>
<updated>2023-10-18T12:42:39+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-09-13T02:51:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6da319f63583215d593919bcd994785141f7265d'/>
<id>urn:sha1:6da319f63583215d593919bcd994785141f7265d</id>
<content type='text'>
Previously, mappings were attached to individual coverage statements in MIR.
That necessitated special handling in MIR optimizations to avoid deleting those
statements, since otherwise codegen would be unable to reassemble the original
list of mappings.

With this change, a function's list of mappings is now attached to its MIR
body, and survives intact even if individual statements are deleted by
optimizations.
</content>
</entry>
<entry>
<title>coverage: Make expression simplification non-destructive</title>
<updated>2023-10-18T11:29:31+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-09-13T09:22:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4099ab19979e2f22b7a949f83241f4f0adc00ca9'/>
<id>urn:sha1:4099ab19979e2f22b7a949f83241f4f0adc00ca9</id>
<content type='text'>
Instead of modifying the accumulated expressions in-place, we now build a set
of expressions that are known to be zero, and then consult that set on the fly
when converting the expression data for FFI.

This will be necessary when moving mappings and expression data into function
coverage info, which can't be mutated during codegen.
</content>
</entry>
<entry>
<title>coverage: Collect a function's coverage mappings into a single list</title>
<updated>2023-10-18T10:24:01+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-09-04T02:50:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8efdd4cca61df9adf7f90c40fcc176a2842a9c28'/>
<id>urn:sha1:8efdd4cca61df9adf7f90c40fcc176a2842a9c28</id>
<content type='text'>
This is an intermediate step towards being able to store all of a function's
mappings in function coverage info.
</content>
</entry>
<entry>
<title>coverage: Rename `Operand` to `CovTerm`</title>
<updated>2023-10-18T10:23:58+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2023-08-31T06:03:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=79f935b96c2447c979124628187125a9e381e9dc'/>
<id>urn:sha1:79f935b96c2447c979124628187125a9e381e9dc</id>
<content type='text'>
Later patches in this PR will use `CovTerm` to represent things that are not
expression operands.
</content>
</entry>
</feed>
