rust/compiler/rustc_mir/src/transform
Rich Kadel 198ba3bd1c Injecting expressions in place of counters where helpful
Implementing the Graph traits for the BasicCoverageBlock
graph.

optimized replacement of counters with expressions plus new BCB graphviz

* Avoid adding coverage to unreachable blocks.
* Special case for Goto at the end of the body. Make it non-reportable.

Improved debugging and formatting options (from env)

Don't automatically add counters to BCBs without CoverageSpans. They may
still get counters but only if there are dependencies from
other BCBs that have spans, I think.

Make CodeRegions optional for Counters too. It is
possible to inject counters (`llvm.instrprof.increment` intrinsic calls
without corresponding code regions in the coverage map. An expression
can still uses these counter values.

Refactored instrument_coverage.rs -> instrument_coverage/mod.rs, and
then broke up the mod into multiple files.

Compiling with coverage, with the expression optimization, works on
the json5format crate and its dependencies.

Refactored debug features from mod.rs to debug.rs
2020-11-05 18:24:15 -08:00
..
check_consts Rollup merge of #78208 - liketechnik:issue-69399, r=oli-obk 2020-10-25 18:43:40 +09:00
coverage Injecting expressions in place of counters where helpful 2020-11-05 18:24:15 -08:00
add_call_guards.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
add_moves_for_packed_drops.rs Replace (Body, DefId) with Body where possible 2020-10-04 16:07:03 -07:00
add_retag.rs Retagging: do not retag 'raw reborrows' 2020-10-31 15:31:27 +01:00
check_const_item_mutation.rs Take functions by value 2020-10-10 16:19:53 +02:00
check_packed_ref.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
check_unsafety.rs fix static_ptr_ty for foreign statics, and more comments in check_unsafety 2020-10-19 09:47:18 +02:00
cleanup_post_borrowck.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
const_prop.rs u128 truncation and sign extension are not just interpreter related 2020-11-04 13:41:58 +00:00
deaggregator.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
dest_prop.rs Replace (Body, DefId) with Body where possible 2020-10-04 16:07:03 -07:00
dump_mir.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
early_otherwise_branch.rs Refactor how SwitchInt stores jump targets 2020-10-10 17:46:11 +02:00
elaborate_drops.rs Replace (Body, DefId) with Body where possible 2020-10-04 16:07:03 -07:00
function_item_references.rs Corrected suggestion for generic parameters in function_item_references lint 2020-11-01 23:50:17 -04:00
generator.rs Refactor how SwitchInt stores jump targets 2020-10-10 17:46:11 +02:00
inline.rs Auto merge of #76931 - oli-obk:const_prop_inline_lint_madness, r=wesleywiser 2020-11-03 16:32:34 +00:00
instcombine.rs Disable "optimization to avoid load of address" in InstCombine 2020-10-27 10:59:28 +01:00
match_branches.rs fix a couple of clippy warnings: 2020-11-04 13:48:50 +01:00
mod.rs Splitting transform/instrument_coverage.rs into transform/coverage/... 2020-11-05 18:24:12 -08:00
multiple_return_terminators.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
no_landing_pads.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
nrvo.rs Link to pass docs from NRVO module docs 2020-10-29 23:05:45 -07:00
promote_consts.rs interning cleanup: we no longer need to distinguish Const and ConstInner; we no longer need the ignore_interior_mut_in_const hack 2020-10-26 08:56:54 +01:00
remove_noop_landing_pads.rs Recognize discriminant reads as no-ops in RemoveNoopLandingPads 2020-10-10 00:00:00 +00:00
remove_unneeded_drops.rs Replace (Body, DefId) with Body where possible 2020-10-04 16:07:03 -07:00
required_consts.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_peek.rs Replace (Body, DefId) with Body where possible 2020-10-04 16:07:03 -07:00
simplify.rs simplify-locals: Remove unused assignments regardless of rvalue kind 2020-10-26 10:48:28 +01:00
simplify_branches.rs Simplify assert terminator only if condition evaluates to expected value 2020-10-21 00:00:00 +00:00
simplify_comparison_integral.rs s/Scalar::Raw/Scalar::Int 2020-11-04 10:11:31 +00:00
simplify_try.rs Refactor how SwitchInt stores jump targets 2020-10-10 17:46:11 +02:00
uninhabited_enum_branching.rs Refactor how SwitchInt stores jump targets 2020-10-10 17:46:11 +02:00
unreachable_prop.rs Refactor how SwitchInt stores jump targets 2020-10-10 17:46:11 +02:00
validate.rs Assert that locals have storage when used 2020-10-31 21:06:29 +01:00