rust/src/librustc_codegen_llvm
bors dab2ae0404 Auto merge of #75037 - richkadel:llvm-coverage-map-gen-5.2, r=wesleywiser
Completes support for coverage in external crates

Follow-up to #74959 :

The prior PR corrected for errors encountered when trying to generate
the coverage map on source code inlined from external crates (including
macros and generics) by avoiding adding external DefIds to the coverage
map.

This made it possible to generate a coverage report including external
crates, but the external crate coverage was incomplete (did not include
coverage for the DefIds that were eliminated.

The root issue was that the coverage map was converting Span locations
to source file and locations, using the SourceMap for the current crate,
and this would not work for spans from external crates (compliled with a
different SourceMap).

The solution was to convert the Spans to filename and location during
MIR generation instead, so precompiled external crates would already
have the correct source code locations embedded in their MIR, when
imported into another crate.

@wesleywiser FYI
r? @tmandry
2020-08-05 05:08:19 +00:00
..
back Avoid "whitelist" 2020-07-10 07:39:28 -04:00
coverageinfo Completes support for coverage in external crates 2020-08-04 11:06:54 -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 rustc: Improving safe wasm float->int casts 2020-07-28 10:17:11 -07:00
callee.rs Auto merge of #72049 - mati865:mingw-lld, r=petrochenkov 2020-07-29 13:58:19 +00:00
Cargo.toml Move from log to tracing 2020-07-31 22:38:20 +02: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 Auto merge of #75037 - richkadel:llvm-coverage-map-gen-5.2, r=wesleywiser 2020-08-05 05:08:19 +00: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.