rust/compiler
Rich Kadel 51d692cf77 Tools, tests, and experimenting with MIR-derived coverage counters
Adds a new mir_dump output file in HTML/CSS to visualize code regions
and the MIR features that they came from (including overlapping spans).
See example below:

Includes a basic, MIR-block-based implementation of coverage injection,
available via `-Zexperimental-coverage`. This implementation has known
flaws and omissions, but is simple enough to validate the new tools and
tests.

The existing `-Zinstrument-coverage` option currently enables
function-level coverage only, which at least appears to generate
accurate coverage reports at that level.

Experimental coverage is not accurate at this time. When branch coverage
works as intended, the `-Zexperimental-coverage` option should be
removed.

This PR replaces the bulk of PR #75828, with the remaining parts of
that PR distributed among other separate and indentpent PRs.

This PR depends on three of those other PRs: #76000, #76002, and

Rust compiler MCP rust-lang/compiler-team#278

Relevant issue: #34701 - Implement support for LLVMs code coverage
instrumentation

![Screen-Recording-2020-08-21-at-2](https://user-images.githubusercontent.com/3827298/90972923-ff417880-e4d1-11ea-92bb-8713c6198f6d.gif)
2020-09-03 00:20:29 -07:00
..
rustc cleanup: Remove duplicate library names from Cargo.tomls 2020-08-30 22:57:54 +03:00
rustc_apfloat mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_arena mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_ast Factor out StmtKind::MacCall fields into MacCallStmt struct 2020-08-30 18:38:53 -04:00
rustc_ast_lowering mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_ast_passes mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_ast_pretty Factor out StmtKind::MacCall fields into MacCallStmt struct 2020-08-30 18:38:53 -04:00
rustc_attr mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_builtin_macros Use string literal directly when available in format 2020-08-30 22:09:58 +02:00
rustc_codegen_llvm Auto merge of #76071 - khyperia:configurable_to_immediate, r=eddyb 2020-09-01 07:44:34 +00:00
rustc_codegen_ssa Rollup merge of #76158 - mati865:self-contained-option, r=petrochenkov 2020-09-01 18:24:36 -07:00
rustc_data_structures datastructures: replace once_cell crate with an impl from std 2020-08-30 20:06:14 +01:00
rustc_driver datastructures: replace once_cell crate with an impl from std 2020-08-30 20:06:14 +01:00
rustc_error_codes Rollup merge of #76143 - jyn514:duplicate-builtin-macros, r=petrochenkov 2020-09-01 18:24:35 -07:00
rustc_errors mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_expand Rollup merge of #76132 - Aaron1011:mac-call-stmt, r=petrochenkov 2020-09-01 18:24:33 -07:00
rustc_feature mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_fs_util mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_graphviz mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_hir mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_hir_pretty mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_incremental mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_index mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_infer mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_interface Rollup merge of #76158 - mati865:self-contained-option, r=petrochenkov 2020-09-01 18:24:36 -07:00
rustc_lexer lexer: Tiny improvement to shebang detection 2020-09-02 00:40:19 +03:00
rustc_lint mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_macros mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_metadata mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_middle Tools, tests, and experimenting with MIR-derived coverage counters 2020-09-03 00:20:29 -07:00
rustc_mir Tools, tests, and experimenting with MIR-derived coverage counters 2020-09-03 00:20:29 -07:00
rustc_mir_build mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_parse Rollup merge of #76132 - Aaron1011:mac-call-stmt, r=petrochenkov 2020-09-01 18:24:33 -07:00
rustc_parse_format mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_passes mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_plugin_impl mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_privacy mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_query_system mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_resolve Rollup merge of #76143 - jyn514:duplicate-builtin-macros, r=petrochenkov 2020-09-01 18:24:35 -07:00
rustc_save_analysis mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_serialize mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_session Tools, tests, and experimenting with MIR-derived coverage counters 2020-09-03 00:20:29 -07:00
rustc_span Adds two source span utility functions used in source-based coverage 2020-08-31 18:41:57 -07:00
rustc_symbol_mangling mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_target mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_trait_selection mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_traits mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_ty mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_typeck Suggest if let x = y when encountering if x = y 2020-08-30 15:01:06 -07:00