rust/src
Rich Kadel 5239a68e72 add spans to injected coverage counters
added regions with counter expressions and counters.

Added codegen_llvm/coverageinfo mod for upcoming coverage map

Move coverage region collection to CodegenCx finalization

Moved from `query coverageinfo` (renamed from `query coverage_data`),
as discussed in the PR at:

https://github.com/rust-lang/rust/pull/73684#issuecomment-649882503

Address merge conflict in MIR instrument_coverage test

The MIR test output format changed for int types.

moved debug messages out of block.rs

This makes the block.rs calls to add coverage mapping data to the
CodegenCx much more concise and readable.

move coverage intrinsic handling into llvm impl

I realized that having half of the coverage intrinsic handling in
`rustc_codegen_ssa` and half in `rustc_codegen_llvm` meant that any
non-llvm backend would be bound to the same decisions about how the
coverage-related MIR terminators should be handled.

To fix this, I moved the non-codegen portion of coverage intrinsic
handling into its own trait, and implemented it in `rustc_codegen_llvm`
alongside `codegen_intrinsic_call`.

I also added the (required?) stubs for the new intrinsics to
`IntrepretCx::emulate_intrinsic()`, to ensure calls to this function do
not fail if called with these new but known intrinsics.

address PR Feedback on 28 June 2020 2:48pm PDT
2020-06-29 12:31:25 -07:00
..
bootstrap Auto merge of #73671 - ehuss:update-mdbook, r=Mark-Simulacrum 2020-06-27 20:14:34 +00:00
build_helper
ci Auto merge of #73671 - ehuss:update-mdbook, r=Mark-Simulacrum 2020-06-27 20:14:34 +00:00
doc Remove const_if_match from unstable book 2020-06-28 10:08:10 -07:00
etc Implement new gdb/lldb pretty-printers 2020-06-09 16:13:11 +03:00
liballoc Remove const_if_match feature gate from libraries 2020-06-28 10:08:09 -07:00
libcore add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
libpanic_abort lints: add improper_ctypes_definitions 2020-06-24 12:09:35 +01:00
libpanic_unwind lints: add improper_ctypes_definitions 2020-06-24 12:09:35 +01:00
libproc_macro
libprofiler_builtins Prepare for LLVM 11 2020-06-25 18:52:41 -07:00
librustc_apfloat Migrate to numeric associated consts 2020-06-10 01:35:47 +00:00
librustc_arena Rollup merge of #73378 - matthewjasper:arena-not-special, r=oli-obk 2020-06-20 14:45:00 -07:00
librustc_ast Remove const_if_match feature gate from libraries 2020-06-28 10:08:09 -07:00
librustc_ast_lowering Rollup merge of #73813 - petrochenkov:restrait, r=davidtwco 2020-06-28 08:30:31 -07:00
librustc_ast_passes Record span of const kw in GenericParamKind 2020-06-23 09:25:46 -07:00
librustc_ast_pretty Rollup merge of #73597 - ayazhafiz:i/const-span, r=ecstatic-morse 2020-06-26 00:39:08 -07:00
librustc_attr Make things build again 2020-06-02 20:38:24 +03:00
librustc_builtin_macros Rename two Resolver traits 2020-06-27 23:51:28 +03:00
librustc_codegen_llvm add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
librustc_codegen_ssa add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
librustc_data_structures Remove unused crate imports in 2018 edition crates 2020-06-23 05:01:20 +02:00
librustc_driver Fix -Z unpretty=everybody_loops 2020-06-19 20:27:22 -04:00
librustc_error_codes Rollup merge of #73687 - GuillaumeGomez:cleanup-e0701, r=Dylan-DPC 2020-06-25 18:00:25 -07:00
librustc_errors Rollup merge of #73763 - davidtwco:terminal-width-json-emitter, r=estebank 2020-06-27 22:30:01 -07:00
librustc_expand Rename two Resolver traits 2020-06-27 23:51:28 +03:00
librustc_feature Mark const_loop feature gate as accepted 2020-06-28 10:08:11 -07:00
librustc_fs_util
librustc_graphviz Rename the crates in source code 2020-06-02 20:42:54 +03:00
librustc_hir Remove const_if_match feature gate from libraries 2020-06-28 10:08:09 -07:00
librustc_hir_pretty Auto merge of #72080 - matthewjasper:uniform-impl-trait, r=nikomatsakis 2020-06-15 04:10:24 +00:00
librustc_incremental Remove associated opaque types 2020-06-11 16:24:01 +01:00
librustc_index add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
librustc_infer Auto merge of #72437 - ecstatic-morse:stabilize-const-if-match, r=oli-obk 2020-06-28 20:47:52 +00:00
librustc_interface Auto merge of #71858 - petrochenkov:env, r=Mark-Simulacrum 2020-06-25 22:52:59 +00:00
librustc_lexer rustc_lexer: Simplify shebang parsing once more 2020-06-26 19:52:19 +03:00
librustc_lint Rollup merge of #73817 - jumbatm:rename-to-clashing-extern-declarations, r=petrochenkov 2020-06-28 08:30:33 -07:00
librustc_llvm Rollup merge of #73507 - mati865:cleanup-mingw-llvm-linkage, r=matthewjasper 2020-06-26 00:39:04 -07:00
librustc_macros Use min_specialization in the remaining rustc crates 2020-06-10 09:05:52 +01:00
librustc_metadata Make fn_arg_names return Ident instead of symbol 2020-06-26 15:46:22 -04:00
librustc_middle add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
librustc_mir add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
librustc_mir_build Remove const_if_match feature gate from libraries 2020-06-28 10:08:09 -07:00
librustc_parse Rollup merge of #73597 - ayazhafiz:i/const-span, r=ecstatic-morse 2020-06-26 00:39:08 -07:00
librustc_parse_format asm: Allow multiple template strings; interpret them as newline-separated 2020-06-15 12:35:27 -07:00
librustc_passes Use LocalDefId in HIR const-checker 2020-06-28 10:13:04 -07:00
librustc_plugin_impl
librustc_privacy make all uses of ty::Error or ConstKind::Error delay a span bug 2020-06-15 18:25:58 -05:00
librustc_query_system Remove const_if_match feature gate from libraries 2020-06-28 10:08:09 -07:00
librustc_resolve Rename two Resolver traits 2020-06-27 23:51:28 +03:00
librustc_save_analysis save_analysis: improve handling of enum struct variant 2020-06-19 10:35:44 +01:00
librustc_serialize Use min_specialization in the remaining rustc crates 2020-06-10 09:05:52 +01:00
librustc_session add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
librustc_span add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
librustc_symbol_mangling make all uses of ty::Error or ConstKind::Error delay a span bug 2020-06-15 18:25:58 -05:00
librustc_target Remove const_if_match feature gate from libraries 2020-06-28 10:08:09 -07:00
librustc_trait_selection Rollup merge of #73681 - jackh726:chalk-0.14, r=nikomatsakis 2020-06-26 00:39:12 -07:00
librustc_traits Update Chalk 2020-06-24 00:48:33 -04:00
librustc_ty Make is_freeze and is_copy_modulo_regions take TyCtxtAt 2020-06-21 11:47:19 +02:00
librustc_typeck add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
librustdoc Rollup merge of #73763 - davidtwco:terminal-width-json-emitter, r=estebank 2020-06-27 22:30:01 -07:00
libstd Rollup merge of #73826 - cjrh:cjrh-patch-1, r=jonas-schievink 2020-06-28 08:30:34 -07:00
libterm
libtest typo: awailable -> available 2020-06-08 13:37:58 -07:00
libunwind Update libunwind build process for x86_64-fortanix-unknown-sgx target 2020-06-24 11:28:41 +02:00
llvm-project@0ddefeca92 Update LLVM submodule 2020-06-13 19:54:09 +01:00
rtstartup
rustc
rustllvm Prepare for LLVM 11 2020-06-25 18:52:41 -07:00
stdarch@45340c0e2f Update stdarch submodule to latest head 2020-05-31 00:12:59 +02:00
test add spans to injected coverage counters 2020-06-29 12:31:25 -07:00
tools Update tests 2020-06-28 10:08:12 -07:00
README.md
stage0.txt Update bootstrap to rustc 1.45.0-beta.2 (1dc0f6d8e 2020-06-15) 2020-06-20 11:13:47 -07:00

This directory contains the source code of the rust project, including:

  • rustc and its tests
  • libstd
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.