rust/src/librustc_codegen_llvm
bors db0492ace4 Auto merge of #74733 - richkadel:llvm-coverage-map-gen-5, r=tmandry
Fixed coverage map issues; better aligned with LLVM APIs

Found some problems with the coverage map encoding when testing with more than one counter per function.

While debugging, I realized some better ways to structure the Rust implementation of the coverage mapping generator. I refactored somewhat, resulting in less code overall, expanded coverage of LLVM Coverage Map capabilities, and much closer alignment with LLVM data structures, APIs, and naming.

This should be easier to follow and easier to maintain.

r? @tmandry

Rust compiler MCP rust-lang/compiler-team#278
Relevant issue: #34701 - Implement support for LLVMs code coverage instrumentation
2020-07-29 20:35:52 +00:00
..
back Avoid "whitelist" 2020-07-10 07:39:28 -04:00
coverageinfo Moved structs/enums with repr(C) to LLVM types into ffi.rs crates 2020-07-29 08:22:17 -07:00
debuginfo mir: unused_generic_params query 2020-07-20 19:35:30 +01:00
llvm Moved structs/enums with repr(C) to LLVM types into ffi.rs crates 2020-07-29 08:22:17 -07:00
abi.rs [AVR] Correctly set the pointer address space when constructing pointers to functions 2020-07-22 05:16:22 +12:00
allocator.rs Add Option to Force Unwind Tables 2020-05-04 12:08:35 +01:00
asm.rs Add initial asm!() support for hexagon 2020-06-16 08:58:13 -05:00
attributes.rs Generating the coverage map 2020-07-17 11:49:35 -07:00
base.rs Generating the coverage map 2020-07-17 11:49:35 -07:00
builder.rs Rollup merge of #73655 - JamieCunliffe:jamie_va-args-c, r=nikic 2020-07-22 09:29:00 -07:00
callee.rs Auto merge of #72049 - mati865:mingw-lld, r=petrochenkov 2020-07-29 13:58:19 +00:00
Cargo.toml Make things build again 2020-06-02 20:38:24 +03:00
common.rs polymorphize GlobalAlloc::Function 2020-07-22 17:02:58 +02:00
consts.rs Auto merge of #72049 - mati865:mingw-lld, r=petrochenkov 2020-07-29 13:58:19 +00:00
context.rs Auto merge of #72049 - mati865:mingw-lld, r=petrochenkov 2020-07-29 13:58:19 +00:00
declare.rs rustc -> rustc_middle part 3 (rustfmt) 2020-03-30 07:19:55 +02:00
intrinsic.rs Fixed coverage map issues; better aligned with LLVM APIs 2020-07-25 07:39:51 -07:00
lib.rs Use for<'tcx> fn pointers in Providers, instead of having Providers<'tcx>. 2020-07-05 23:00:14 +03:00
llvm_util.rs Avoid "whitelist" 2020-07-10 07:39:28 -04:00
metadata.rs rustc -> rustc_middle part 2 2020-03-30 07:16:56 +02:00
mono_item.rs mir: unused_generic_params query 2020-07-20 19:35:30 +01:00
README.md Fix broken link in README 2020-03-30 10:09:51 -04:00
type_.rs [AVR] Correctly set the pointer address space when constructing pointers to functions 2020-07-22 05:16:22 +12:00
type_of.rs [AVR] Ensure that function pointers stored within aggregates are annotated with the correct space 2020-07-22 05:16:26 +12:00
va_arg.rs Remove the assert on alignment check. 2020-07-21 15:24:26 +01:00
value.rs Format the world 2019-12-22 17:42:47 -05:00

The codegen crate contains the code to convert from MIR into LLVM IR, and then from LLVM IR into machine code. In general it contains code that runs towards the end of the compilation process.

For more information about how codegen works, see the rustc dev guide.