rust/compiler/rustc_codegen_llvm/src
Zalathar 6af9fef085 coverage: Emit the filenames section before encoding per-function mappings
Most coverage metadata is encoded into two sections in the final executable.
The `__llvm_covmap` section mostly just contains a list of filenames, while the
`__llvm_covfun` section contains encoded coverage maps for each instrumented
function.

The catch is that each per-function record also needs to contain a hash of the
filenames list that it refers to. Historically this was handled by assembling
most of the per-function data into a temporary list, then assembling the
filenames buffer, then using the filenames hash to emit the per-function data,
and then finally emitting the filenames table itself.

However, now that we build the filenames table up-front (via a separate
traversal of the per-function data), we can hash and emit that part first, and
then emit each of the per-function records immediately after building. This
removes the awkwardness of having to temporarily store nearly-complete
per-function records.
2023-10-22 23:17:15 +11:00
..
back [RFC 3127 - Trim Paths]: Condition remapped filepath on remap scopes 2023-10-17 10:11:30 +02:00
coverageinfo coverage: Emit the filenames section before encoding per-function mappings 2023-10-22 23:17:15 +11:00
debuginfo s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
llvm Pass name of object file to LLVM so it can correctly emit S_OBJNAME 2023-09-25 19:31:58 +02:00
abi.rs cannot have Direct for unsized types 2023-09-15 10:45:37 +02:00
allocator.rs Auto merge of #113722 - bjorn3:allocator_shim_refactor, r=jackh726 2023-08-13 16:49:49 +00:00
asm.rs Auto merge of #114467 - Amanieu:asm-unstable-features, r=davidtwco 2023-08-15 11:59:02 +00:00
attributes.rs Auto merge of #113814 - ChoKyuWon:master, r=davidtwco 2023-08-18 13:20:37 +00:00
base.rs cg_llvm: remove pointee types and pointercast/bitcast-of-ptr 2023-07-29 13:18:17 -04:00
builder.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
callee.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
common.rs Auto merge of #105545 - erikdesjardins:ptrclean, r=bjorn3 2023-08-01 19:44:17 +00:00
consts.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
context.rs Add OwnedTargetMachine to manage llvm:TargetMachine. Uses pointers 2023-09-24 21:11:37 +02:00
declare.rs CFI: Fix SIGILL reached via trait objects 2023-05-09 20:04:19 +00:00
errors.rs allow LTO on proc-macro crates with -Zdylib-lto 2023-09-23 17:08:43 +03:00
intrinsic.rs Prototype using const generic for simd_shuffle IDX array 2023-09-18 15:10:28 +00:00
lib.rs coverage: Encode function mappings without re-sorting them 2023-10-22 20:37:39 +11:00
llvm_util.rs Add OwnedTargetMachine to manage llvm:TargetMachine. Uses pointers 2023-09-24 21:11:37 +02:00
mono_item.rs rustc: Move crate_types from Session to GlobalCtxt 2023-08-09 14:17:54 +08:00
type_.rs Fix misuses of a vs an 2023-10-04 08:01:11 +08:00
type_of.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
va_arg.rs cg_llvm: remove pointee types and pointercast/bitcast-of-ptr 2023-07-29 13:18:17 -04:00
value.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00