about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorRich Kadel <richkadel@google.com>2020-10-05 16:36:10 -0700
committerRich Kadel <richkadel@google.com>2020-11-05 18:24:12 -0800
commitc7747cc772f4b4c30ede3616678d7a3bc2c89bf7 (patch)
tree196eccbbe916834b056aef3a78c06d8065a02542 /src/test
parent9d78d1d02761b906038ba4d54c5f3427f920f5fb (diff)
Rust coverage before splitting instrument_coverage.rs
Diffstat (limited to 'src/test')
-rw-r--r--src/test/mir-opt/instrument_coverage.main.InstrumentCoverage.diff4
-rw-r--r--src/test/mir-opt/instrument_coverage.rs8
-rw-r--r--src/test/run-make-fulldeps/coverage-llvmir-base/filecheck.testprog.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/Makefile18
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.closure.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.drop_trait.json8
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.generics.json8
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if.json12
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if_else.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.inner_items.json12
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.lazy_boolean.json28
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.loops_and_branches.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.nested_loops.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.partial_eq_counter_without_region.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_loop.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_match.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.tight_infinite_loop.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.try_error_result.json28
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.various_conditions.json12
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while_early_return.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.closure.txt4
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.drop_trait.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.generics.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if.txt1
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if_else.txt4
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.inner_items.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.lazy_boolean.txt53
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.loops_and_branches.txt38
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.nested_loops.txt26
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.partial_eq_counter_without_region.txt101
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_loop.txt3
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_match.txt16
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.tight_infinite_loop.txt6
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.try_error_result.txt17
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.various_conditions.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while.txt6
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while_early_return.txt6
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.closure.txt95
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.drop_trait.txt24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.generics.txt50
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.if.txt22
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.if_else.txt38
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.inner_items.txt61
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.lazy_boolean.txt138
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.loop_break_value.txt7
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.loops_and_branches.txt39
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.nested_loops.txt76
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.partial_eq_counter_without_region.txt28
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.simple_loop.txt38
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.simple_match.txt58
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.tight_infinite_loop.txt11
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.try_error_result.txt72
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.various_conditions.txt240
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.while.txt22
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.while_early_return.txt44
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.closure.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.drop_trait.json8
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.generics.json8
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if.json12
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if_else.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.inner_items.json12
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.lazy_boolean.json28
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.loops_and_branches.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.nested_loops.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.partial_eq_counter_without_region.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_loop.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_match.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.tight_infinite_loop.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.try_error_result.json28
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.various_conditions.json12
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while.json59
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while_early_return.json24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.closure.txt4
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.drop_trait.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.generics.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if.txt1
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if_else.txt4
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.inner_items.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.lazy_boolean.txt53
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.loops_and_branches.txt38
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.nested_loops.txt26
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.partial_eq_counter_without_region.txt111
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_loop.txt3
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_match.txt16
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.tight_infinite_loop.txt6
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.try_error_result.txt17
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.various_conditions.txt2
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while.txt6
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while_early_return.txt6
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.closure.txt95
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.drop_trait.txt24
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.generics.txt50
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.if.txt22
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.if_else.txt38
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.inner_items.txt61
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.lazy_boolean.txt138
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.loop_break_value.txt7
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.loops_and_branches.txt39
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.nested_loops.txt76
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.partial_eq_counter_without_region.txt68
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.simple_loop.txt38
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.simple_match.txt58
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.tight_infinite_loop.txt11
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.try_error_result.txt72
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.various_conditions.txt240
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.while.txt22
-rw-r--r--src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.while_early_return.txt44
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html13
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html13
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html13
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html13
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html2
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html2
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html20
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html30
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html3
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html3
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html26
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html143
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.loops_and_branches/loops_and_branches.main.-------.InstrumentCoverage.0.html151
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.loops_and_branches/loops_and_branches.{impl#0}-fmt.-------.InstrumentCoverage.0.html94
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html125
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.main.-------.InstrumentCoverage.0.html285
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#0}-new.-------.InstrumentCoverage.0.html94
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#1}-cmp.-------.InstrumentCoverage.0.html70
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}.-------.InstrumentCoverage.0.html73
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge.-------.InstrumentCoverage.0.html82
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}.-------.InstrumentCoverage.0.html73
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt.-------.InstrumentCoverage.0.html82
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}.-------.InstrumentCoverage.0.html73
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le.-------.InstrumentCoverage.0.html82
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}.-------.InstrumentCoverage.0.html73
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt.-------.InstrumentCoverage.0.html82
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-partial_cmp.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq.-------.InstrumentCoverage.0.html65
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-eq.-------.InstrumentCoverage.0.html67
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-ne.-------.InstrumentCoverage.0.html71
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#7}-fmt.-------.InstrumentCoverage.0.html99
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#8}-clone.-------.InstrumentCoverage.0.html78
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html34
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html62
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.tight_infinite_loop/tight_infinite_loop.main.-------.InstrumentCoverage.0.html70
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html4
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html62
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html133
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while/while.main.-------.InstrumentCoverage.0.html71
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html20
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html13
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html13
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html13
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html13
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html2
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html2
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html20
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html30
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html3
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html3
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html26
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html143
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.loops_and_branches/loops_and_branches.main.-------.InstrumentCoverage.0.html151
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.loops_and_branches/loops_and_branches.{impl#0}-fmt.-------.InstrumentCoverage.0.html94
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html125
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.main.-------.InstrumentCoverage.0.html285
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#0}-new.-------.InstrumentCoverage.0.html94
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#1}-cmp.-------.InstrumentCoverage.0.html70
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}.-------.InstrumentCoverage.0.html73
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge.-------.InstrumentCoverage.0.html82
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}.-------.InstrumentCoverage.0.html73
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt.-------.InstrumentCoverage.0.html82
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}.-------.InstrumentCoverage.0.html73
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le.-------.InstrumentCoverage.0.html82
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}.-------.InstrumentCoverage.0.html73
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt.-------.InstrumentCoverage.0.html82
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-partial_cmp.-------.InstrumentCoverage.0.html72
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq.-------.InstrumentCoverage.0.html65
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-eq.-------.InstrumentCoverage.0.html67
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-ne.-------.InstrumentCoverage.0.html71
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#7}-fmt.-------.InstrumentCoverage.0.html99
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#8}-clone.-------.InstrumentCoverage.0.html78
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html34
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html62
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.tight_infinite_loop/tight_infinite_loop.main.-------.InstrumentCoverage.0.html70
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html4
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html62
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html133
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while/while.main.-------.InstrumentCoverage.0.html71
-rw-r--r--src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html20
-rw-r--r--src/test/run-make-fulldeps/coverage/lazy_boolean.rs46
-rw-r--r--src/test/run-make-fulldeps/coverage/loops_and_branches.rs36
-rw-r--r--src/test/run-make-fulldeps/coverage/nested_loops.rs25
-rw-r--r--src/test/run-make-fulldeps/coverage/partial_eq_counter_without_region.rs99
-rw-r--r--src/test/run-make-fulldeps/coverage/tight_infinite_loop.rs5
-rw-r--r--src/test/run-make-fulldeps/coverage/while.rs5
202 files changed, 9062 insertions, 818 deletions
diff --git a/src/test/mir-opt/instrument_coverage.main.InstrumentCoverage.diff b/src/test/mir-opt/instrument_coverage.main.InstrumentCoverage.diff
index 598727e677c..ddc65085e80 100644
--- a/src/test/mir-opt/instrument_coverage.main.InstrumentCoverage.diff
+++ b/src/test/mir-opt/instrument_coverage.main.InstrumentCoverage.diff
@@ -26,13 +26,15 @@
       }
   
       bb3: {
-+         Coverage::Counter(2) for /the/src/instrument_coverage.rs:13:13 - 16:2; // scope 0 at /the/src/instrument_coverage.rs:12:9: 14:10
++         Coverage::Counter(2) for /the/src/instrument_coverage.rs:13:13 - 13:18; // scope 0 at /the/src/instrument_coverage.rs:12:9: 14:10
++         Coverage::Expression(4294967295) = 2 + 0 for /the/src/instrument_coverage.rs:16:1 - 16:2; // scope 0 at /the/src/instrument_coverage.rs:12:9: 14:10
           falseEdge -> [real: bb5, imaginary: bb4]; // scope 0 at /the/src/instrument_coverage.rs:12:9: 14:10
       }
   
       bb4: {
           _1 = const ();                   // scope 0 at /the/src/instrument_coverage.rs:12:9: 14:10
           StorageDead(_2);                 // scope 0 at /the/src/instrument_coverage.rs:15:5: 15:6
++         Coverage::Counter(3) for /the/src/instrument_coverage.rs:15:6 - 15:7; // scope 0 at /the/src/instrument_coverage.rs:11:5: 15:6
           goto -> bb0;                     // scope 0 at /the/src/instrument_coverage.rs:11:5: 15:6
       }
   
diff --git a/src/test/mir-opt/instrument_coverage.rs b/src/test/mir-opt/instrument_coverage.rs
index d9c8e8d43a4..18863edac97 100644
--- a/src/test/mir-opt/instrument_coverage.rs
+++ b/src/test/mir-opt/instrument_coverage.rs
@@ -1,10 +1,10 @@
-// Test that the initial version of Rust coverage injects Coverage statements at the top of each
-// function. The Coverage Counter statements are later converted into LLVM instrprof.increment
-// intrinsics, during codegen.
+// Test that `-Z instrument-coverage` injects Coverage statements. The Coverage Counter statements
+// are later converted into LLVM instrprof.increment intrinsics, during codegen.
 
 // needs-profiler-support
 // ignore-windows
-// compile-flags: -Zinstrument-coverage --remap-path-prefix={{src-base}}=/the/src
+// compile-flags: -Z instrument-coverage --remap-path-prefix={{src-base}}=/the/src
+
 // EMIT_MIR instrument_coverage.main.InstrumentCoverage.diff
 // EMIT_MIR instrument_coverage.bar.InstrumentCoverage.diff
 fn main() {
diff --git a/src/test/run-make-fulldeps/coverage-llvmir-base/filecheck.testprog.txt b/src/test/run-make-fulldeps/coverage-llvmir-base/filecheck.testprog.txt
index 0a3c4aedd55..bd2a2475d9e 100644
--- a/src/test/run-make-fulldeps/coverage-llvmir-base/filecheck.testprog.txt
+++ b/src/test/run-make-fulldeps/coverage-llvmir-base/filecheck.testprog.txt
@@ -34,7 +34,7 @@ CHECK-SAME:   section "llvm.metadata"
 
 CHECK:        [[DEFINE_INTERNAL]] { {{.*}} } @_R{{[a-zA-Z0-9_]+}}testprog14will_be_called() unnamed_addr #{{[0-9]+}} {
 CHECK-NEXT:   start:
-CHECK-NOT:    bb{{[0-9]+}}:
+CHECK-NOT:    [[DEFINE_INTERNAL]]
 CHECK:        %pgocount = load i64, i64* getelementptr inbounds
 CHECK-SAME:   * @__profc__R{{[a-zA-Z0-9_]+}}testprog14will_be_called,
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/Makefile b/src/test/run-make-fulldeps/coverage-reports-base/Makefile
index 880d7fdb1b0..bfecc5fd7f5 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/Makefile
+++ b/src/test/run-make-fulldeps/coverage-reports-base/Makefile
@@ -21,6 +21,7 @@ clear_expected_if_blessed:
 ifdef RUSTC_BLESS_TEST
 	rm -f expected_export_coverage.*.json
 	rm -f expected_show_coverage.*.txt
+	rm -f expected_show_coverage_counters.*.txt
 endif
 
 -include clear_expected_if_blessed
@@ -54,14 +55,19 @@ endif
 	# when comparing the JSON `export`, the `show` output may be useful when
 	# debugging.
 	"$(LLVM_BIN_DIR)"/llvm-cov show \
+			--debug \
 			--Xdemangler="$(RUST_DEMANGLER)" \
 			--show-line-counts-or-regions \
 			--instr-profile="$(TMPDIR)"/$@.profdata \
 			$(call BIN,"$(TMPDIR)"/$@) \
-		> "$(TMPDIR)"/actual_show_coverage.$@.txt
+		> "$(TMPDIR)"/actual_show_coverage.$@.txt \
+		2> "$(TMPDIR)"/actual_show_coverage_counters.$@.txt
 
 ifdef RUSTC_BLESS_TEST
-	cp "$(TMPDIR)"/actual_show_coverage.$@.txt expected_show_coverage.$@.txt
+	cp "$(TMPDIR)"/actual_show_coverage.$@.txt \
+			expected_show_coverage.$@.txt
+	cp "$(TMPDIR)"/actual_show_coverage_counters.$@.txt \
+			expected_show_coverage_counters.$@.txt
 else
 	# Compare the show coverage output (`--bless` refreshes `typical` files)
 	# Note `llvm-cov show` output for some programs can vary, but can be ignored
@@ -75,6 +81,14 @@ else
 			false \
 		)
 
+	$(DIFF) expected_show_coverage_counters.$@.txt "$(TMPDIR)"/actual_show_coverage_counters.$@.txt || \
+		( grep -q '^\/\/ ignore-llvm-cov-show-diffs' $(SOURCEDIR)/$@.rs && \
+			>&2 echo 'diff failed, but suppressed with `// ignore-llvm-cov-show-diffs` in $(SOURCEDIR)/$@.rs' \
+		) || \
+		( >&2 echo 'diff failed, and not suppressed without `// ignore-llvm-cov-show-diffs` in $(SOURCEDIR)/$@.rs'; \
+			false \
+		)
+
 endif
 
 	# Generate a coverage report in JSON, using `llvm-cov export`, and fail if
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.closure.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.closure.json
index 8c6edae2803..bff55300b3c 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.closure.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.closure.json
@@ -17,14 +17,14 @@
             },
             "lines": {
               "count": 91,
-              "covered": 75,
-              "percent": 82.41758241758241
+              "covered": 77,
+              "percent": 84.61538461538461
             },
             "regions": {
-              "count": 21,
-              "covered": 11,
-              "notcovered": 10,
-              "percent": 52.38095238095239
+              "count": 25,
+              "covered": 13,
+              "notcovered": 12,
+              "percent": 52
             }
           }
         }
@@ -42,14 +42,14 @@
         },
         "lines": {
           "count": 91,
-          "covered": 75,
-          "percent": 82.41758241758241
+          "covered": 77,
+          "percent": 84.61538461538461
         },
         "regions": {
-          "count": 21,
-          "covered": 11,
-          "notcovered": 10,
-          "percent": 52.38095238095239
+          "count": 25,
+          "covered": 13,
+          "notcovered": 12,
+          "percent": 52
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.drop_trait.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.drop_trait.json
index bd2e2d56d4a..7a7e4c04f00 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.drop_trait.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.drop_trait.json
@@ -21,8 +21,8 @@
               "percent": 100
             },
             "regions": {
-              "count": 5,
-              "covered": 5,
+              "count": 6,
+              "covered": 6,
               "notcovered": 0,
               "percent": 100
             }
@@ -46,8 +46,8 @@
           "percent": 100
         },
         "regions": {
-          "count": 5,
-          "covered": 5,
+          "count": 6,
+          "covered": 6,
           "notcovered": 0,
           "percent": 100
         }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.generics.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.generics.json
index a50f4657e20..1025cd3de80 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.generics.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.generics.json
@@ -21,8 +21,8 @@
               "percent": 100
             },
             "regions": {
-              "count": 6,
-              "covered": 6,
+              "count": 7,
+              "covered": 7,
               "notcovered": 0,
               "percent": 100
             }
@@ -46,8 +46,8 @@
           "percent": 100
         },
         "regions": {
-          "count": 6,
-          "covered": 6,
+          "count": 7,
+          "covered": 7,
           "notcovered": 0,
           "percent": 100
         }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if.json
index 2ff53ad33fa..84dcc251f3f 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if.json
@@ -21,10 +21,10 @@
               "percent": 100
             },
             "regions": {
-              "count": 4,
+              "count": 5,
               "covered": 4,
-              "notcovered": 0,
-              "percent": 100
+              "notcovered": 1,
+              "percent": 80
             }
           }
         }
@@ -46,10 +46,10 @@
           "percent": 100
         },
         "regions": {
-          "count": 4,
+          "count": 5,
           "covered": 4,
-          "notcovered": 0,
-          "percent": 100
+          "notcovered": 1,
+          "percent": 80
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if_else.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if_else.json
index 36f81ceae19..2d2ad1dbe3f 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if_else.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.if_else.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 28,
-              "covered": 19,
-              "percent": 67.85714285714286
+              "count": 29,
+              "covered": 21,
+              "percent": 72.41379310344827
             },
             "regions": {
-              "count": 7,
-              "covered": 5,
+              "count": 9,
+              "covered": 7,
               "notcovered": 2,
-              "percent": 71.42857142857143
+              "percent": 77.77777777777779
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 28,
-          "covered": 19,
-          "percent": 67.85714285714286
+          "count": 29,
+          "covered": 21,
+          "percent": 72.41379310344827
         },
         "regions": {
-          "count": 7,
-          "covered": 5,
+          "count": 9,
+          "covered": 7,
           "notcovered": 2,
-          "percent": 71.42857142857143
+          "percent": 77.77777777777779
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.inner_items.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.inner_items.json
index a24e6a33a33..c178e7f9347 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.inner_items.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.inner_items.json
@@ -21,10 +21,10 @@
               "percent": 100
             },
             "regions": {
-              "count": 13,
+              "count": 15,
               "covered": 13,
-              "notcovered": 0,
-              "percent": 100
+              "notcovered": 2,
+              "percent": 86.66666666666667
             }
           }
         }
@@ -46,10 +46,10 @@
           "percent": 100
         },
         "regions": {
-          "count": 13,
+          "count": 15,
           "covered": 13,
-          "notcovered": 0,
-          "percent": 100
+          "notcovered": 2,
+          "percent": 86.66666666666667
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.lazy_boolean.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.lazy_boolean.json
index 585346dc32a..95a1dcd3b8e 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.lazy_boolean.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.lazy_boolean.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 21,
-              "covered": 19,
-              "percent": 90.47619047619048
+              "count": 40,
+              "covered": 32,
+              "percent": 80
             },
             "regions": {
-              "count": 16,
-              "covered": 14,
-              "notcovered": 2,
-              "percent": 87.5
+              "count": 39,
+              "covered": 28,
+              "notcovered": 11,
+              "percent": 71.7948717948718
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 21,
-          "covered": 19,
-          "percent": 90.47619047619048
+          "count": 40,
+          "covered": 32,
+          "percent": 80
         },
         "regions": {
-          "count": 16,
-          "covered": 14,
-          "notcovered": 2,
-          "percent": 87.5
+          "count": 39,
+          "covered": 28,
+          "notcovered": 11,
+          "percent": 71.7948717948718
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.loops_and_branches.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.loops_and_branches.json
new file mode 100644
index 00000000000..aec85cd0329
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.loops_and_branches.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/loops_and_branches.rs",
+          "summary": {
+            "functions": {
+              "count": 2,
+              "covered": 2,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 2,
+              "covered": 2,
+              "percent": 100
+            },
+            "lines": {
+              "count": 11,
+              "covered": 11,
+              "percent": 100
+            },
+            "regions": {
+              "count": 10,
+              "covered": 8,
+              "notcovered": 2,
+              "percent": 80
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 2,
+          "covered": 2,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 2,
+          "covered": 2,
+          "percent": 100
+        },
+        "lines": {
+          "count": 11,
+          "covered": 11,
+          "percent": 100
+        },
+        "regions": {
+          "count": 10,
+          "covered": 8,
+          "notcovered": 2,
+          "percent": 80
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.nested_loops.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.nested_loops.json
new file mode 100644
index 00000000000..dbe4f9ca6fd
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.nested_loops.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/nested_loops.rs",
+          "summary": {
+            "functions": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "lines": {
+              "count": 21,
+              "covered": 17,
+              "percent": 80.95238095238095
+            },
+            "regions": {
+              "count": 20,
+              "covered": 16,
+              "notcovered": 4,
+              "percent": 80
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "lines": {
+          "count": 21,
+          "covered": 17,
+          "percent": 80.95238095238095
+        },
+        "regions": {
+          "count": 20,
+          "covered": 16,
+          "notcovered": 4,
+          "percent": 80
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.partial_eq_counter_without_region.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.partial_eq_counter_without_region.json
new file mode 100644
index 00000000000..8081fba9e22
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.partial_eq_counter_without_region.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/partial_eq_counter_without_region.rs",
+          "summary": {
+            "functions": {
+              "count": 5,
+              "covered": 5,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 5,
+              "covered": 5,
+              "percent": 100
+            },
+            "lines": {
+              "count": 15,
+              "covered": 15,
+              "percent": 100
+            },
+            "regions": {
+              "count": 6,
+              "covered": 6,
+              "notcovered": 0,
+              "percent": 100
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 5,
+          "covered": 5,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 5,
+          "covered": 5,
+          "percent": 100
+        },
+        "lines": {
+          "count": 15,
+          "covered": 15,
+          "percent": 100
+        },
+        "regions": {
+          "count": 6,
+          "covered": 6,
+          "notcovered": 0,
+          "percent": 100
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_loop.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_loop.json
index 38bc96898ea..ada6bb062dd 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_loop.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_loop.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 18,
-              "covered": 18,
+              "count": 19,
+              "covered": 19,
               "percent": 100
             },
             "regions": {
-              "count": 7,
-              "covered": 7,
-              "notcovered": 0,
-              "percent": 100
+              "count": 9,
+              "covered": 8,
+              "notcovered": 1,
+              "percent": 88.88888888888889
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 18,
-          "covered": 18,
+          "count": 19,
+          "covered": 19,
           "percent": 100
         },
         "regions": {
-          "count": 7,
-          "covered": 7,
-          "notcovered": 0,
-          "percent": 100
+          "count": 9,
+          "covered": 8,
+          "notcovered": 1,
+          "percent": 88.88888888888889
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_match.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_match.json
index f9d91d66f1d..63d1ae74c5f 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_match.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.simple_match.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 26,
-              "covered": 26,
+              "count": 24,
+              "covered": 24,
               "percent": 100
             },
             "regions": {
-              "count": 9,
-              "covered": 9,
-              "notcovered": 0,
-              "percent": 100
+              "count": 15,
+              "covered": 14,
+              "notcovered": 1,
+              "percent": 93.33333333333333
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 26,
-          "covered": 26,
+          "count": 24,
+          "covered": 24,
           "percent": 100
         },
         "regions": {
-          "count": 9,
-          "covered": 9,
-          "notcovered": 0,
-          "percent": 100
+          "count": 15,
+          "covered": 14,
+          "notcovered": 1,
+          "percent": 93.33333333333333
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.tight_infinite_loop.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.tight_infinite_loop.json
new file mode 100644
index 00000000000..3fa6821cd1d
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.tight_infinite_loop.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/tight_infinite_loop.rs",
+          "summary": {
+            "functions": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "lines": {
+              "count": 2,
+              "covered": 2,
+              "percent": 100
+            },
+            "regions": {
+              "count": 2,
+              "covered": 2,
+              "notcovered": 0,
+              "percent": 100
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "lines": {
+          "count": 2,
+          "covered": 2,
+          "percent": 100
+        },
+        "regions": {
+          "count": 2,
+          "covered": 2,
+          "notcovered": 0,
+          "percent": 100
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.try_error_result.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.try_error_result.json
index e6ef2c1ab89..e845ee29fa4 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.try_error_result.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.try_error_result.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 16,
-              "covered": 15,
-              "percent": 93.75
+              "count": 20,
+              "covered": 19,
+              "percent": 95
             },
             "regions": {
-              "count": 13,
-              "covered": 12,
-              "notcovered": 1,
-              "percent": 92.3076923076923
+              "count": 20,
+              "covered": 17,
+              "notcovered": 3,
+              "percent": 85
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 16,
-          "covered": 15,
-          "percent": 93.75
+          "count": 20,
+          "covered": 19,
+          "percent": 95
         },
         "regions": {
-          "count": 13,
-          "covered": 12,
-          "notcovered": 1,
-          "percent": 92.3076923076923
+          "count": 20,
+          "covered": 17,
+          "notcovered": 3,
+          "percent": 85
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.various_conditions.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.various_conditions.json
index 410821ea335..464bb614ea1 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.various_conditions.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.various_conditions.json
@@ -21,10 +21,10 @@
               "percent": 46.93877551020408
             },
             "regions": {
-              "count": 51,
+              "count": 70,
               "covered": 19,
-              "notcovered": 32,
-              "percent": 37.254901960784316
+              "notcovered": 51,
+              "percent": 27.142857142857142
             }
           }
         }
@@ -46,10 +46,10 @@
           "percent": 46.93877551020408
         },
         "regions": {
-          "count": 51,
+          "count": 70,
           "covered": 19,
-          "notcovered": 32,
-          "percent": 37.254901960784316
+          "notcovered": 51,
+          "percent": 27.142857142857142
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while.json
new file mode 100644
index 00000000000..27862087ed5
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/while.rs",
+          "summary": {
+            "functions": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "lines": {
+              "count": 4,
+              "covered": 3,
+              "percent": 75
+            },
+            "regions": {
+              "count": 5,
+              "covered": 3,
+              "notcovered": 2,
+              "percent": 60
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "lines": {
+          "count": 4,
+          "covered": 3,
+          "percent": 75
+        },
+        "regions": {
+          "count": 5,
+          "covered": 3,
+          "notcovered": 2,
+          "percent": 60
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while_early_return.json b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while_early_return.json
index 865b705fa20..555ac745d53 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while_early_return.json
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_export_coverage.while_early_return.json
@@ -17,14 +17,14 @@
             },
             "lines": {
               "count": 18,
-              "covered": 16,
-              "percent": 88.88888888888889
+              "covered": 15,
+              "percent": 83.33333333333334
             },
             "regions": {
-              "count": 9,
-              "covered": 7,
-              "notcovered": 2,
-              "percent": 77.77777777777779
+              "count": 11,
+              "covered": 8,
+              "notcovered": 3,
+              "percent": 72.72727272727273
             }
           }
         }
@@ -42,14 +42,14 @@
         },
         "lines": {
           "count": 18,
-          "covered": 16,
-          "percent": 88.88888888888889
+          "covered": 15,
+          "percent": 83.33333333333334
         },
         "regions": {
-          "count": 9,
-          "covered": 7,
-          "notcovered": 2,
-          "percent": 77.77777777777779
+          "count": 11,
+          "covered": 8,
+          "notcovered": 3,
+          "percent": 72.72727272727273
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.closure.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.closure.txt
index 17054490e9b..aef26a62e25 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.closure.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.closure.txt
@@ -62,7 +62,7 @@
    62|      1|                let mut countdown = 0;
    63|      1|                if is_false {
    64|      0|                    countdown = 10;
-   65|      0|                }
+   65|      1|                }
    66|      1|                "alt string 3".to_owned()
    67|      1|            }
    68|      1|        )
@@ -77,7 +77,7 @@
    77|      1|        let mut countdown = 0;
    78|      1|        if is_false {
    79|      0|            countdown = 10;
-   80|      0|        }
+   80|      1|        }
    81|      1|        "alt string 4".to_owned()
    82|      1|    };
    83|      1|    println!(
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.drop_trait.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.drop_trait.txt
index 72aa020ca16..43592df1059 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.drop_trait.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.drop_trait.txt
@@ -24,7 +24,7 @@
    24|       |    let _ = Firework { strength: 1000 };
    25|       |
    26|       |    Ok(())
-   27|      1|}
+   27|      2|}
    28|       |
    29|       |// Expected program output:
    30|       |//   Exiting with error...
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.generics.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.generics.txt
index 86199d74763..11dc0aa65e2 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.generics.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.generics.txt
@@ -57,7 +57,7 @@
    35|       |    let _ = Firework { strength: 1000 };
    36|       |
    37|       |    Ok(())
-   38|      1|}
+   38|      2|}
    39|       |
    40|       |// Expected program output:
    41|       |//   Exiting with error...
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if.txt
index bc2f9b108b2..85e6440ab37 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if.txt
@@ -25,5 +25,6 @@
    25|      1|            10
    26|      1|        ;
    27|      1|    }
+                   ^0
    28|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if_else.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if_else.txt
index 5f899723e25..64cbc262521 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if_else.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.if_else.txt
@@ -20,7 +20,7 @@
    20|      0|        countdown
    21|      0|        =
    22|      0|            100
-   23|       |    }
+   23|      1|    }
    24|       |
    25|       |    if
    26|      1|        is_true
@@ -36,6 +36,6 @@
    36|      0|        =
    37|      0|            100
    38|      0|        ;
-   39|      0|    }
+   39|      1|    }
    40|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.inner_items.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.inner_items.txt
index b13ca83d018..4a51f842a4b 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.inner_items.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.inner_items.txt
@@ -10,6 +10,7 @@
    10|      1|    if is_true {
    11|      1|        countdown = 10;
    12|      1|    }
+                   ^0
    13|       |
    14|       |    mod in_mod {
    15|       |        const IN_MOD_CONST: u32 = 1000;
@@ -48,6 +49,7 @@
    48|      1|    if is_true {
    49|      1|        in_func(countdown);
    50|      1|    }
+                   ^0
    51|       |
    52|      1|    let mut val = InStruct {
    53|      1|        in_struct_field: 101,
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.lazy_boolean.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.lazy_boolean.txt
index ded43697515..f01f69f2496 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.lazy_boolean.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.lazy_boolean.txt
@@ -12,12 +12,14 @@
    12|      1|        b = 10;
    13|      1|        c = 100;
    14|      1|    }
+                   ^0
    15|       |    let
    16|      1|        somebool
    17|       |        =
    18|      1|            a < b
    19|       |        ||
-   20|      0|            b < c
+   20|      1|            b < c
+                          ^0
    21|       |    ;
    22|       |    let
    23|      1|        somebool
@@ -26,19 +28,38 @@
    26|       |        ||
    27|      1|            b < c
    28|       |    ;
-   29|       |    let
-   30|      1|        somebool
-   31|       |        =
-   32|      1|            a < b
-   33|       |        &&
-   34|      1|            b < c
-   35|       |    ;
-   36|       |    let
-   37|      1|        somebool
-   38|       |        =
-   39|      1|            b < a
-   40|       |        &&
-   41|      0|            b < c
-   42|       |    ;
-   43|      1|}
+   29|      1|    let somebool = a < b && b < c;
+   30|      1|    let somebool = b < a && b < c;
+                                          ^0
+   31|       |
+   32|       |    if
+   33|      1|        !
+   34|      1|        is_true
+   35|      0|    {
+   36|      0|        a = 2
+   37|      0|        ;
+   38|      1|    }
+   39|       |
+   40|       |    if
+   41|      1|        is_true
+   42|      1|    {
+   43|      1|        b = 30
+   44|      1|        ;
+   45|      1|    }
+   46|       |    else
+   47|      0|    {
+   48|      0|        c = 400
+   49|      0|        ;
+   50|      1|    }
+   51|       |
+   52|      1|    if !is_true {
+   53|      0|        a = 2;
+   54|      1|    }
+   55|       |
+   56|      1|    if is_true {
+   57|      1|        b = 30;
+   58|      1|    } else {
+   59|      0|        c = 400;
+   60|      1|    }
+   61|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.loops_and_branches.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.loops_and_branches.txt
new file mode 100644
index 00000000000..3a969a6b898
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.loops_and_branches.txt
@@ -0,0 +1,38 @@
+    1|       |#![allow(unused_assignments)]
+    2|       |
+    3|       |// This test confirms an earlier problem was resolved, supporting the MIR graph generated by the
+    4|       |// structure of this `fmt` function.
+    5|       |
+    6|       |struct DebugTest;
+    7|       |
+    8|       |impl std::fmt::Debug for DebugTest {
+    9|       |    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
+   10|      1|        if true {
+   11|      1|            if false {
+   12|       |                while true {
+   13|       |                }
+   14|      1|            }
+   15|      1|            write!(f, "error")?;
+                                            ^0
+   16|       |        } else {
+   17|      1|        }
+   18|      1|        Ok(())
+   19|      1|    }
+   20|       |}
+   21|       |
+   22|      1|fn main() {
+   23|      1|    let debug_test = DebugTest;
+   24|      1|    println!("{:?}", debug_test);
+   25|      1|}
+   26|       |
+   27|       |/*
+   28|       |
+   29|       |This is the error message generated, before the issue was fixed:
+   30|       |
+   31|       |error: internal compiler error: compiler/rustc_mir/src/transform/coverage/mod.rs:374:42:
+   32|       |Error processing: DefId(0:6 ~ bug_incomplete_cov_graph_traversal_simplified[317d]::{impl#0}::fmt):
+   33|       |Error { message: "`TraverseCoverageGraphWithLoops` missed some `BasicCoverageBlock`s:
+   34|       |[bcb6, bcb7, bcb9]" }
+   35|       |
+   36|       |*/
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.nested_loops.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.nested_loops.txt
new file mode 100644
index 00000000000..e0545c76f78
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.nested_loops.txt
@@ -0,0 +1,26 @@
+    1|       |fn main() {
+    2|      1|    let is_true = std::env::args().len() == 1;
+    3|      1|    let mut countdown = 10;
+    4|       |
+    5|      1|    'outer: while countdown > 0 {
+    6|      1|        let mut a = 100;
+    7|      1|        let mut b = 100;
+    8|      3|        for _ in 0..50 {
+    9|      3|            if a < 30 {
+   10|      0|                break;
+   11|       |            }
+   12|      3|            a -= 5;
+   13|      3|            b -= 5;
+   14|      3|            if b < 90 {
+   15|      1|                a -= 10;
+   16|      1|                if is_true {
+   17|      1|                    break 'outer;
+   18|       |                } else {
+   19|      0|                    a -= 2;
+   20|      0|                }
+   21|      2|            }
+   22|      3|        }
+   23|      0|        countdown -= 1;
+   24|      1|    }
+   25|      1|}
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.partial_eq_counter_without_region.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.partial_eq_counter_without_region.txt
new file mode 100644
index 00000000000..310bf13a695
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.partial_eq_counter_without_region.txt
@@ -0,0 +1,101 @@
+    1|       |// This test confirms an earlier problem was resolved, supporting the MIR graph generated by the
+    2|       |// structure of this test.
+    3|       |
+    4|      2|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+                                                    ^1       ^1
+    5|       |pub struct Version {
+    6|       |    major: usize,
+    7|      1|    minor: usize,
+    8|       |    patch: usize,
+    9|       |}
+   10|       |
+   11|       |impl Version {
+   12|       |    pub fn new(major: usize, minor: usize, patch: usize) -> Self {
+   13|      2|        Self {
+   14|      2|            major,
+   15|      2|            minor,
+   16|      2|            patch,
+   17|      2|        }
+   18|      2|    }
+   19|       |}
+   20|       |
+   21|      1|fn main() {
+   22|      1|    let version_3_2_1 = Version::new(3, 2, 1);
+   23|      1|    let version_3_3_0 = Version::new(3, 3, 0);
+   24|      1|
+   25|      1|    println!("{:?} < {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 < version_3_3_0);
+   26|      1|}
+   27|       |
+   28|       |/*
+   29|       |
+   30|       |This test verifies a bug was fixed that otherwise generated this error:
+   31|       |
+   32|       |thread 'rustc' panicked at 'No counters provided the source_hash for function:
+   33|       |    Instance {
+   34|       |        def: Item(WithOptConstParam {
+   35|       |            did: DefId(0:101 ~ autocfg[c44a]::version::{impl#2}::partial_cmp),
+   36|       |            const_param_did: None
+   37|       |        }),
+   38|       |        substs: []
+   39|       |    }'
+   40|       |The `PartialOrd` derived by `Version` happened to generate a MIR that generated coverage
+   41|       |without a code region associated with any `Counter`. Code regions were associated with at least
+   42|       |one expression, which is allowed, but the `function_source_hash` was only passed to the codegen
+   43|       |(coverage mapgen) phase from a `Counter`s code region. A new method was added to pass the
+   44|       |`function_source_hash` without a code region, if necessary.
+   45|       |
+   46|       |*/
+   47|       |
+   48|       |// FIXME(richkadel): It may be worth investigating why the coverage report for this test produces
+   49|       |// the following results:
+   50|       |
+   51|       |/*
+   52|       |
+   53|       |1. Why are their two counts below different characters (first and last) of `PartialOrd`, on line 17?
+   54|       |
+   55|       |2. Line 17 is counted twice, but the `::lt` instance shows a line count of 1? Is there a missing
+   56|       |   line count with a different instance? Or was it really only called once?
+   57|       |
+   58|       |3. Line 20 shows another line count (of 1) for a line within a `struct` declaration (on only one of
+   59|       |   its 3 fields). I doubt the specific field (`minor`) is relevant, but rather I suspect there's a
+   60|       |   problem computing the file position here, for some reason.
+   61|       |
+   62|       |<snip>
+   63|       |   16|       |
+   64|       |   17|      2|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+   65|       |                                                    ^1       ^1
+   66|       |------------------
+   67|       ||Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::gt
+   68|       |------------------
+   69|       ||Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::le
+   70|       |------------------
+   71|       ||Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::ge
+   72|       |------------------
+   73|       ||<partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::lt:
+   74|       ||  17|      1|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+   75|       |------------------
+   76|       |   18|       |pub struct Version {
+   77|       |   19|       |    major: usize,
+   78|       |   20|      1|    minor: usize,
+   79|       |   21|       |    patch: usize,
+   80|       |   22|       |}
+   81|       |   23|       |
+   82|       |   24|       |impl Version {
+   83|       |   25|       |    pub fn new(major: usize, minor: usize, patch: usize) -> Self {
+   84|       |   26|      2|        Version {
+   85|       |   27|      2|            major,
+   86|       |   28|      2|            minor,
+   87|       |   29|      2|            patch,
+   88|       |   30|      2|        }
+   89|       |   31|      2|    }
+   90|       |   32|       |}
+   91|       |   33|       |
+   92|       |   34|      1|fn main() {
+   93|       |   35|      1|    let version_3_2_1 = Version::new(3, 2, 1);
+   94|       |   36|      1|    let version_3_3_0 = Version::new(3, 3, 0);
+   95|       |   37|      1|
+   96|       |   38|      1|    println!("{:?} < {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 < version
+   97|       |_3_3_0);
+   98|       |   39|      1|}
+   99|       |*/
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_loop.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_loop.txt
index f1acb7c5459..064930dd75c 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_loop.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_loop.txt
@@ -16,6 +16,7 @@
    16|      1|            10
    17|      1|        ;
    18|      1|    }
+                   ^0
    19|       |
    20|       |    loop
    21|       |    {
@@ -31,6 +32,6 @@
    31|     10|        -=
    32|     10|        1
    33|       |        ;
-   34|       |    }
+   34|      1|    }
    35|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_match.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_match.txt
index e42f22cd047..1f7e71d3eb0 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_match.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.simple_match.txt
@@ -10,22 +10,24 @@
    10|      1|    if is_true {
    11|      1|        countdown = 0;
    12|      1|    }
+                   ^0
    13|       |
-   14|      3|    for
-   15|      3|        _
+   14|       |    for
+   15|      2|        _
    16|       |    in
-   17|      1|        0..2
+   17|      3|        0..2
    18|       |    {
    19|       |        let z
    20|       |        ;
    21|       |        match
    22|      2|            countdown
-   23|      2|        {
-   24|      2|            x
-   25|      2|            if
+   23|       |        {
+   24|      1|            x
+   25|       |            if
    26|      2|                x
    27|      2|                    <
    28|      2|                1
+                               ^1
    29|       |            =>
    30|      1|            {
    31|      1|                z = countdown
@@ -39,6 +41,6 @@
    39|       |            =>
    40|      1|            {}
    41|       |        }
-   42|       |    }
+   42|      3|    }
    43|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.tight_infinite_loop.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.tight_infinite_loop.txt
new file mode 100644
index 00000000000..e02eac03a6b
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.tight_infinite_loop.txt
@@ -0,0 +1,6 @@
+    1|       |fn main() {
+    2|      1|    if false {
+    3|       |        loop {}
+    4|       |    }
+    5|      1|}
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.try_error_result.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.try_error_result.txt
index ae288d7d7a0..05d72d0de46 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.try_error_result.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.try_error_result.txt
@@ -6,22 +6,22 @@
     6|      1|        Err(())
     7|       |    } else {
     8|      5|        Ok(())
-    9|       |    }
+    9|      1|    }
    10|      6|}
    11|       |
    12|       |fn main() -> Result<(),()> {
    13|      1|    let mut
    14|      1|        countdown = 10
    15|       |    ;
-   16|      6|    for
+   16|       |    for
    17|      6|        _
    18|       |    in
-   19|      1|        0..10
+   19|      6|        0..10
    20|       |    {
    21|      6|        countdown
    22|      6|            -= 1
-   23|       |        ;
-   24|       |        if
+   23|      6|        ;
+   24|      6|        if
    25|      6|            countdown < 5
    26|       |        {
    27|      1|            call(/*return_error=*/ true)?;
@@ -29,8 +29,9 @@
    29|       |        else
    30|       |        {
    31|      5|            call(/*return_error=*/ false)?;
-   32|       |        }
-   33|       |    }
+                                                       ^0
+   32|      5|        }
+   33|      6|    }
    34|      0|    Ok(())
-   35|      1|}
+   35|      2|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.various_conditions.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.various_conditions.txt
index 173ff4aa4c4..e0efe75043d 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.various_conditions.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.various_conditions.txt
@@ -65,5 +65,5 @@
    64|       |    } else {
    65|      0|        return;
    66|       |    };
-   67|      1|}
+   67|      2|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while.txt
new file mode 100644
index 00000000000..194325b6b9e
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while.txt
@@ -0,0 +1,6 @@
+    1|       |fn main() {
+    2|      1|    let num = 9;
+    3|      1|    while num >= 10 {
+    4|      0|    }
+    5|      1|}
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while_early_return.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while_early_return.txt
index 7dce94f25f3..2e0c4022bed 100644
--- a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while_early_return.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage.while_early_return.txt
@@ -3,7 +3,7 @@
     3|       |
     4|       |fn main() -> Result<(),u8> {
     5|      1|    let mut countdown = 10;
-    6|      7|    while
+    6|       |    while
     7|      7|        countdown
     8|      7|            >
     9|      7|        0
@@ -24,7 +24,7 @@
    24|       |                else
    25|       |                {
    26|      1|                    Err(1)
-   27|       |                }
+   27|      0|                }
    28|       |                ;
    29|       |        }
    30|      6|        countdown
@@ -33,7 +33,7 @@
    33|       |        ;
    34|       |    }
    35|      0|    Ok(())
-   36|      1|}
+   36|      2|}
    37|       |
    38|       |// ISSUE(77553): Originally, this test had `Err(1)` on line 22 (instead of `Ok(())`) and
    39|       |// `std::process::exit(2)` on line 26 (instead of `Err(1)`); and this worked as expected on Linux
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.closure.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.closure.txt
new file mode 100644
index 00000000000..3eb07757c0d
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.closure.txt
@@ -0,0 +1,95 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/closure.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/closure 
+Counter in file 0 20:21 -> 20:38, #1
+Counter in file 0 21:20 -> 21:28, (#1 + 0)
+Counter in file 0 21:29 -> 23:18, #2
+Counter in file 0 23:18 -> 23:19, #3
+Counter in file 0 24:17 -> 25:14, #4
+Counter in file 0 3:11 -> 18:13, #1
+Counter in file 0 25:14 -> 33:9, (#1 + 0)
+Counter in file 0 40:6 -> 60:13, (#1 + 0)
+Counter in file 0 67:14 -> 75:9, (#1 + 0)
+Counter in file 0 82:6 -> 93:2, (#1 + 0)
+Counter in file 0 77:13 -> 77:30, #1
+Counter in file 0 78:12 -> 78:20, (#1 + 0)
+Counter in file 0 78:21 -> 80:10, #2
+Counter in file 0 80:10 -> 80:11, #3
+Counter in file 0 81:9 -> 82:6, #4
+Counter in file 0 62:21 -> 62:38, #1
+Counter in file 0 63:20 -> 63:28, (#1 + 0)
+Counter in file 0 63:29 -> 65:18, #2
+Counter in file 0 65:18 -> 65:19, #3
+Counter in file 0 66:17 -> 67:14, #4
+Counter in file 0 35:13 -> 35:30, #1
+Counter in file 0 36:12 -> 36:20, (#1 + 0)
+Counter in file 0 36:21 -> 38:10, #2
+Counter in file 0 38:10 -> 38:11, #3
+Counter in file 0 39:9 -> 40:6, #4
+Emitting segments for file: ../coverage/closure.rs
+Combined regions:
+  3:11 -> 18:13 (count=1)
+  20:21 -> 20:38 (count=0)
+  21:20 -> 21:28 (count=0)
+  21:29 -> 23:18 (count=0)
+  23:18 -> 23:19 (count=0)
+  24:17 -> 25:14 (count=0)
+  25:14 -> 33:9 (count=1)
+  35:13 -> 35:30 (count=0)
+  36:12 -> 36:20 (count=0)
+  36:21 -> 38:10 (count=0)
+  38:10 -> 38:11 (count=0)
+  39:9 -> 40:6 (count=0)
+  40:6 -> 60:13 (count=1)
+  62:21 -> 62:38 (count=1)
+  63:20 -> 63:28 (count=1)
+  63:29 -> 65:18 (count=0)
+  65:18 -> 65:19 (count=1)
+  66:17 -> 67:14 (count=1)
+  67:14 -> 75:9 (count=1)
+  77:13 -> 77:30 (count=1)
+  78:12 -> 78:20 (count=1)
+  78:21 -> 80:10 (count=0)
+  80:10 -> 80:11 (count=1)
+  81:9 -> 82:6 (count=1)
+  82:6 -> 93:2 (count=1)
+Segment at 3:11 (count = 1), RegionEntry
+Segment at 18:13 (count = 0), Skipped
+Segment at 20:21 (count = 0), RegionEntry
+Segment at 20:38 (count = 0), Skipped
+Segment at 21:20 (count = 0), RegionEntry
+Segment at 21:28 (count = 0), Skipped
+Segment at 21:29 (count = 0), RegionEntry
+Segment at 23:18 (count = 0), RegionEntry
+Segment at 23:19 (count = 0), Skipped
+Segment at 24:17 (count = 0), RegionEntry
+Segment at 25:14 (count = 1), RegionEntry
+Segment at 33:9 (count = 0), Skipped
+Segment at 35:13 (count = 0), RegionEntry
+Segment at 35:30 (count = 0), Skipped
+Segment at 36:12 (count = 0), RegionEntry
+Segment at 36:20 (count = 0), Skipped
+Segment at 36:21 (count = 0), RegionEntry
+Segment at 38:10 (count = 0), RegionEntry
+Segment at 38:11 (count = 0), Skipped
+Segment at 39:9 (count = 0), RegionEntry
+Segment at 40:6 (count = 1), RegionEntry
+Segment at 60:13 (count = 0), Skipped
+Segment at 62:21 (count = 1), RegionEntry
+Segment at 62:38 (count = 0), Skipped
+Segment at 63:20 (count = 1), RegionEntry
+Segment at 63:28 (count = 0), Skipped
+Segment at 63:29 (count = 0), RegionEntry
+Segment at 65:18 (count = 1), RegionEntry
+Segment at 65:19 (count = 0), Skipped
+Segment at 66:17 (count = 1), RegionEntry
+Segment at 67:14 (count = 1), RegionEntry
+Segment at 75:9 (count = 0), Skipped
+Segment at 77:13 (count = 1), RegionEntry
+Segment at 77:30 (count = 0), Skipped
+Segment at 78:12 (count = 1), RegionEntry
+Segment at 78:20 (count = 0), Skipped
+Segment at 78:21 (count = 0), RegionEntry
+Segment at 80:10 (count = 1), RegionEntry
+Segment at 80:11 (count = 0), Skipped
+Segment at 81:9 (count = 1), RegionEntry
+Segment at 82:6 (count = 1), RegionEntry
+Segment at 93:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.drop_trait.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.drop_trait.txt
new file mode 100644
index 00000000000..447c3c89562
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.drop_trait.txt
@@ -0,0 +1,24 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/drop_trait.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/drop_trait 
+Counter in file 0 9:24 -> 11:6, #1
+Counter in file 0 15:9 -> 17:42, #1
+Counter in file 0 19:8 -> 19:12, (#1 + 0)
+Counter in file 0 20:9 -> 21:22, #2
+Counter in file 0 27:1 -> 27:2, #4
+Counter in file 0 27:1 -> 27:2, (#2 + 0)
+Emitting segments for file: ../coverage/drop_trait.rs
+Combined regions:
+  9:24 -> 11:6 (count=2)
+  15:9 -> 17:42 (count=1)
+  19:8 -> 19:12 (count=1)
+  20:9 -> 21:22 (count=1)
+  27:1 -> 27:2 (count=2)
+Segment at 9:24 (count = 2), RegionEntry
+Segment at 11:6 (count = 0), Skipped
+Segment at 15:9 (count = 1), RegionEntry
+Segment at 17:42 (count = 0), Skipped
+Segment at 19:8 (count = 1), RegionEntry
+Segment at 19:12 (count = 0), Skipped
+Segment at 20:9 (count = 1), RegionEntry
+Segment at 21:22 (count = 0), Skipped
+Segment at 27:1 (count = 2), RegionEntry
+Segment at 27:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.generics.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.generics.txt
new file mode 100644
index 00000000000..5843b917588
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.generics.txt
@@ -0,0 +1,50 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/generics.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/generics 
+Counter in file 0 17:24 -> 19:6, #1
+Counter in file 0 17:24 -> 19:6, #1
+Counter in file 0 23:9 -> 28:28, #1
+Counter in file 0 30:8 -> 30:12, (#1 + 0)
+Counter in file 0 31:9 -> 32:22, #2
+Counter in file 0 38:1 -> 38:2, #4
+Counter in file 0 38:1 -> 38:2, (#2 + 0)
+Counter in file 0 10:49 -> 12:6, #1
+Counter in file 0 10:49 -> 12:6, #1
+Emitting segments for file: ../coverage/generics.rs
+Combined regions:
+  10:49 -> 12:6 (count=3)
+  17:24 -> 19:6 (count=2)
+  23:9 -> 28:28 (count=1)
+  30:8 -> 30:12 (count=1)
+  31:9 -> 32:22 (count=1)
+  38:1 -> 38:2 (count=2)
+Segment at 10:49 (count = 3), RegionEntry
+Segment at 12:6 (count = 0), Skipped
+Segment at 17:24 (count = 2), RegionEntry
+Segment at 19:6 (count = 0), Skipped
+Segment at 23:9 (count = 1), RegionEntry
+Segment at 28:28 (count = 0), Skipped
+Segment at 30:8 (count = 1), RegionEntry
+Segment at 30:12 (count = 0), Skipped
+Segment at 31:9 (count = 1), RegionEntry
+Segment at 32:22 (count = 0), Skipped
+Segment at 38:1 (count = 2), RegionEntry
+Segment at 38:2 (count = 0), Skipped
+Emitting segments for function: _RNvMCs4fqI2P2rA04_8genericsINtB2_8FireworkdE12set_strengthB2_
+Combined regions:
+  10:49 -> 12:6 (count=2)
+Segment at 10:49 (count = 2), RegionEntry
+Segment at 12:6 (count = 0), Skipped
+Emitting segments for function: _RNvMCs4fqI2P2rA04_8genericsINtB2_8FireworklE12set_strengthB2_
+Combined regions:
+  10:49 -> 12:6 (count=1)
+Segment at 10:49 (count = 1), RegionEntry
+Segment at 12:6 (count = 0), Skipped
+Emitting segments for function: _RNvXs_Cs4fqI2P2rA04_8genericsINtB4_8FireworklENtNtNtCs7f2nZg1zwMz_4core3ops4drop4Drop4dropB4_
+Combined regions:
+  17:24 -> 19:6 (count=1)
+Segment at 17:24 (count = 1), RegionEntry
+Segment at 19:6 (count = 0), Skipped
+Emitting segments for function: _RNvXs_Cs4fqI2P2rA04_8genericsINtB4_8FireworkdENtNtNtCs7f2nZg1zwMz_4core3ops4drop4Drop4dropB4_
+Combined regions:
+  17:24 -> 19:6 (count=1)
+Segment at 17:24 (count = 1), RegionEntry
+Segment at 19:6 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.if.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.if.txt
new file mode 100644
index 00000000000..2f063de5a39
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.if.txt
@@ -0,0 +1,22 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/if.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/if 
+Counter in file 0 8:5 -> 18:10, #1
+Counter in file 0 21:9 -> 21:16, (#1 + 0)
+Counter in file 0 22:5 -> 27:6, #2
+Counter in file 0 27:6 -> 27:7, #3
+Counter in file 0 28:1 -> 28:2, #4
+Emitting segments for file: ../coverage/if.rs
+Combined regions:
+  8:5 -> 18:10 (count=1)
+  21:9 -> 21:16 (count=1)
+  22:5 -> 27:6 (count=1)
+  27:6 -> 27:7 (count=0)
+  28:1 -> 28:2 (count=1)
+Segment at 8:5 (count = 1), RegionEntry
+Segment at 18:10 (count = 0), Skipped
+Segment at 21:9 (count = 1), RegionEntry
+Segment at 21:16 (count = 0), Skipped
+Segment at 22:5 (count = 1), RegionEntry
+Segment at 27:6 (count = 0), RegionEntry
+Segment at 27:7 (count = 0), Skipped
+Segment at 28:1 (count = 1), RegionEntry
+Segment at 28:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.if_else.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.if_else.txt
new file mode 100644
index 00000000000..660e85f91f5
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.if_else.txt
@@ -0,0 +1,38 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/if_else.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/if_else 
+Counter in file 0 7:9 -> 11:16, #1
+Counter in file 0 12:5 -> 17:6, #2
+Counter in file 0 20:9 -> 22:16, #3
+Counter in file 0 23:6 -> 23:7, (#2 + 0)
+Counter in file 0 26:9 -> 26:16, #4
+Counter in file 0 27:5 -> 32:6, #5
+Counter in file 0 34:5 -> 39:6, #6
+Counter in file 0 39:6 -> 39:7, (#5 + 0)
+Counter in file 0 40:1 -> 40:2, #7
+Emitting segments for file: ../coverage/if_else.rs
+Combined regions:
+  7:9 -> 11:16 (count=1)
+  12:5 -> 17:6 (count=1)
+  20:9 -> 22:16 (count=0)
+  23:6 -> 23:7 (count=1)
+  26:9 -> 26:16 (count=1)
+  27:5 -> 32:6 (count=1)
+  34:5 -> 39:6 (count=0)
+  39:6 -> 39:7 (count=1)
+  40:1 -> 40:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 11:16 (count = 0), Skipped
+Segment at 12:5 (count = 1), RegionEntry
+Segment at 17:6 (count = 0), Skipped
+Segment at 20:9 (count = 0), RegionEntry
+Segment at 22:16 (count = 0), Skipped
+Segment at 23:6 (count = 1), RegionEntry
+Segment at 23:7 (count = 0), Skipped
+Segment at 26:9 (count = 1), RegionEntry
+Segment at 26:16 (count = 0), Skipped
+Segment at 27:5 (count = 1), RegionEntry
+Segment at 32:6 (count = 0), Skipped
+Segment at 34:5 (count = 0), RegionEntry
+Segment at 39:6 (count = 1), RegionEntry
+Segment at 39:7 (count = 0), Skipped
+Segment at 40:1 (count = 1), RegionEntry
+Segment at 40:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.inner_items.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.inner_items.txt
new file mode 100644
index 00000000000..fb863c73a63
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.inner_items.txt
@@ -0,0 +1,61 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/inner_items.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/inner_items 
+Counter in file 0 19:13 -> 19:18, #1
+Counter in file 0 20:13 -> 20:14, #2
+Counter in file 0 20:17 -> 20:22, (#1 + 0)
+Counter in file 0 21:9 -> 22:6, (#2 + 0)
+Counter in file 0 7:9 -> 9:26, #1
+Counter in file 0 10:8 -> 10:15, (#1 + 0)
+Counter in file 0 10:16 -> 12:6, #2
+Counter in file 0 12:6 -> 12:7, #3
+Counter in file 0 48:8 -> 48:15, #4
+Counter in file 0 48:16 -> 50:6, #5
+Counter in file 0 50:6 -> 50:7, #6
+Counter in file 0 52:9 -> 57:2, #7
+Counter in file 0 33:42 -> 36:10, #1
+Counter in file 0 41:37 -> 41:41, #1
+Counter in file 0 42:13 -> 43:10, #2
+Emitting segments for file: ../coverage/inner_items.rs
+Combined regions:
+  7:9 -> 9:26 (count=1)
+  10:8 -> 10:15 (count=1)
+  10:16 -> 12:6 (count=1)
+  12:6 -> 12:7 (count=0)
+  19:13 -> 19:18 (count=3)
+  20:13 -> 20:14 (count=3)
+  20:17 -> 20:22 (count=3)
+  21:9 -> 22:6 (count=3)
+  33:42 -> 36:10 (count=1)
+  41:37 -> 41:41 (count=1)
+  42:13 -> 43:10 (count=1)
+  48:8 -> 48:15 (count=1)
+  48:16 -> 50:6 (count=1)
+  50:6 -> 50:7 (count=0)
+  52:9 -> 57:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 9:26 (count = 0), Skipped
+Segment at 10:8 (count = 1), RegionEntry
+Segment at 10:15 (count = 0), Skipped
+Segment at 10:16 (count = 1), RegionEntry
+Segment at 12:6 (count = 0), RegionEntry
+Segment at 12:7 (count = 0), Skipped
+Segment at 19:13 (count = 3), RegionEntry
+Segment at 19:18 (count = 0), Skipped
+Segment at 20:13 (count = 3), RegionEntry
+Segment at 20:14 (count = 0), Skipped
+Segment at 20:17 (count = 3), RegionEntry
+Segment at 20:22 (count = 0), Skipped
+Segment at 21:9 (count = 3), RegionEntry
+Segment at 22:6 (count = 0), Skipped
+Segment at 33:42 (count = 1), RegionEntry
+Segment at 36:10 (count = 0), Skipped
+Segment at 41:37 (count = 1), RegionEntry
+Segment at 41:41 (count = 0), Skipped
+Segment at 42:13 (count = 1), RegionEntry
+Segment at 43:10 (count = 0), Skipped
+Segment at 48:8 (count = 1), RegionEntry
+Segment at 48:15 (count = 0), Skipped
+Segment at 48:16 (count = 1), RegionEntry
+Segment at 50:6 (count = 0), RegionEntry
+Segment at 50:7 (count = 0), Skipped
+Segment at 52:9 (count = 1), RegionEntry
+Segment at 57:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.lazy_boolean.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.lazy_boolean.txt
new file mode 100644
index 00000000000..dd93c3a9392
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.lazy_boolean.txt
@@ -0,0 +1,138 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/lazy_boolean.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/lazy_boolean 
+Counter in file 0 7:9 -> 9:42, #1
+Counter in file 0 10:8 -> 10:15, (#1 + 0)
+Counter in file 0 10:16 -> 14:6, #2
+Counter in file 0 14:6 -> 14:7, #3
+Counter in file 0 16:9 -> 16:17, #4
+Counter in file 0 18:13 -> 18:18, #5
+Counter in file 0 20:13 -> 20:18, #6
+Counter in file 0 20:18 -> 20:19, #7
+Counter in file 0 20:18 -> 20:19, #8
+Counter in file 0 23:9 -> 23:17, #9
+Counter in file 0 25:13 -> 25:18, (#4 + 0)
+Counter in file 0 27:13 -> 27:18, #10
+Counter in file 0 27:18 -> 27:19, #11
+Counter in file 0 27:18 -> 27:19, #12
+Counter in file 0 29:9 -> 29:17, #13
+Counter in file 0 29:20 -> 29:25, (#9 + 0)
+Counter in file 0 29:29 -> 29:34, #14
+Counter in file 0 29:34 -> 29:35, #15
+Counter in file 0 29:34 -> 29:35, #16
+Counter in file 0 30:9 -> 30:17, #17
+Counter in file 0 30:20 -> 30:25, (#13 + 0)
+Counter in file 0 30:29 -> 30:34, #18
+Counter in file 0 30:34 -> 30:35, #19
+Counter in file 0 30:34 -> 30:35, #20
+Counter in file 0 33:9 -> 34:16, (#17 + 0)
+Counter in file 0 35:5 -> 38:6, #21
+Counter in file 0 38:6 -> 38:7, #22
+Counter in file 0 41:9 -> 41:16, #23
+Counter in file 0 42:5 -> 45:6, #24
+Counter in file 0 47:5 -> 50:6, #25
+Counter in file 0 50:6 -> 50:7, (#24 + 0)
+Counter in file 0 52:8 -> 52:16, #26
+Counter in file 0 52:17 -> 54:6, #27
+Counter in file 0 54:6 -> 54:7, #28
+Counter in file 0 56:8 -> 56:15, #29
+Counter in file 0 56:16 -> 58:6, #30
+Counter in file 0 58:12 -> 60:6, #31
+Counter in file 0 60:6 -> 60:7, (#30 + 0)
+Counter in file 0 61:1 -> 61:2, #32
+Emitting segments for file: ../coverage/lazy_boolean.rs
+Combined regions:
+  7:9 -> 9:42 (count=1)
+  10:8 -> 10:15 (count=1)
+  10:16 -> 14:6 (count=1)
+  14:6 -> 14:7 (count=0)
+  16:9 -> 16:17 (count=1)
+  18:13 -> 18:18 (count=1)
+  20:13 -> 20:18 (count=0)
+  20:18 -> 20:19 (count=1)
+  23:9 -> 23:17 (count=1)
+  25:13 -> 25:18 (count=1)
+  27:13 -> 27:18 (count=1)
+  27:18 -> 27:19 (count=1)
+  29:9 -> 29:17 (count=1)
+  29:20 -> 29:25 (count=1)
+  29:29 -> 29:34 (count=1)
+  29:34 -> 29:35 (count=1)
+  30:9 -> 30:17 (count=1)
+  30:20 -> 30:25 (count=1)
+  30:29 -> 30:34 (count=0)
+  30:34 -> 30:35 (count=1)
+  33:9 -> 34:16 (count=1)
+  35:5 -> 38:6 (count=0)
+  38:6 -> 38:7 (count=1)
+  41:9 -> 41:16 (count=1)
+  42:5 -> 45:6 (count=1)
+  47:5 -> 50:6 (count=0)
+  50:6 -> 50:7 (count=1)
+  52:8 -> 52:16 (count=1)
+  52:17 -> 54:6 (count=0)
+  54:6 -> 54:7 (count=1)
+  56:8 -> 56:15 (count=1)
+  56:16 -> 58:6 (count=1)
+  58:12 -> 60:6 (count=0)
+  60:6 -> 60:7 (count=1)
+  61:1 -> 61:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 9:42 (count = 0), Skipped
+Segment at 10:8 (count = 1), RegionEntry
+Segment at 10:15 (count = 0), Skipped
+Segment at 10:16 (count = 1), RegionEntry
+Segment at 14:6 (count = 0), RegionEntry
+Segment at 14:7 (count = 0), Skipped
+Segment at 16:9 (count = 1), RegionEntry
+Segment at 16:17 (count = 0), Skipped
+Segment at 18:13 (count = 1), RegionEntry
+Segment at 18:18 (count = 0), Skipped
+Segment at 20:13 (count = 0), RegionEntry
+Segment at 20:18 (count = 1), RegionEntry
+Segment at 20:19 (count = 0), Skipped
+Segment at 23:9 (count = 1), RegionEntry
+Segment at 23:17 (count = 0), Skipped
+Segment at 25:13 (count = 1), RegionEntry
+Segment at 25:18 (count = 0), Skipped
+Segment at 27:13 (count = 1), RegionEntry
+Segment at 27:18 (count = 1), RegionEntry
+Segment at 27:19 (count = 0), Skipped
+Segment at 29:9 (count = 1), RegionEntry
+Segment at 29:17 (count = 0), Skipped
+Segment at 29:20 (count = 1), RegionEntry
+Segment at 29:25 (count = 0), Skipped
+Segment at 29:29 (count = 1), RegionEntry
+Segment at 29:34 (count = 1), RegionEntry
+Segment at 29:35 (count = 0), Skipped
+Segment at 30:9 (count = 1), RegionEntry
+Segment at 30:17 (count = 0), Skipped
+Segment at 30:20 (count = 1), RegionEntry
+Segment at 30:25 (count = 0), Skipped
+Segment at 30:29 (count = 0), RegionEntry
+Segment at 30:34 (count = 1), RegionEntry
+Segment at 30:35 (count = 0), Skipped
+Segment at 33:9 (count = 1), RegionEntry
+Segment at 34:16 (count = 0), Skipped
+Segment at 35:5 (count = 0), RegionEntry
+Segment at 38:6 (count = 1), RegionEntry
+Segment at 38:7 (count = 0), Skipped
+Segment at 41:9 (count = 1), RegionEntry
+Segment at 41:16 (count = 0), Skipped
+Segment at 42:5 (count = 1), RegionEntry
+Segment at 45:6 (count = 0), Skipped
+Segment at 47:5 (count = 0), RegionEntry
+Segment at 50:6 (count = 1), RegionEntry
+Segment at 50:7 (count = 0), Skipped
+Segment at 52:8 (count = 1), RegionEntry
+Segment at 52:16 (count = 0), Skipped
+Segment at 52:17 (count = 0), RegionEntry
+Segment at 54:6 (count = 1), RegionEntry
+Segment at 54:7 (count = 0), Skipped
+Segment at 56:8 (count = 1), RegionEntry
+Segment at 56:15 (count = 0), Skipped
+Segment at 56:16 (count = 1), RegionEntry
+Segment at 58:6 (count = 0), Skipped
+Segment at 58:12 (count = 0), RegionEntry
+Segment at 60:6 (count = 1), RegionEntry
+Segment at 60:7 (count = 0), Skipped
+Segment at 61:1 (count = 1), RegionEntry
+Segment at 61:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.loop_break_value.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.loop_break_value.txt
new file mode 100644
index 00000000000..df16c54617c
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.loop_break_value.txt
@@ -0,0 +1,7 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/loop_break_value.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/loop_break_value 
+Counter in file 0 3:11 -> 13:2, #1
+Emitting segments for file: ../coverage/loop_break_value.rs
+Combined regions:
+  3:11 -> 13:2 (count=1)
+Segment at 3:11 (count = 1), RegionEntry
+Segment at 13:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.loops_and_branches.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.loops_and_branches.txt
new file mode 100644
index 00000000000..d6e4403268a
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.loops_and_branches.txt
@@ -0,0 +1,39 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/loops_and_branches.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/loops_and_branches 
+Counter in file 0 10:12 -> 10:16, #1
+Counter in file 0 11:16 -> 11:21, #2
+Counter in file 0 14:14 -> 14:15, #6
+Counter in file 0 15:13 -> 15:31, #7
+Counter in file 0 15:31 -> 15:32, #8
+Counter in file 0 17:10 -> 17:11, #10
+Counter in file 0 18:9 -> 18:15, #11
+Counter in file 0 19:5 -> 19:6, #12
+Counter in file 0 19:5 -> 19:6, (#8 + 0)
+Counter in file 0 22:11 -> 25:2, #1
+Emitting segments for file: ../coverage/loops_and_branches.rs
+Combined regions:
+  10:12 -> 10:16 (count=1)
+  11:16 -> 11:21 (count=1)
+  14:14 -> 14:15 (count=1)
+  15:13 -> 15:31 (count=1)
+  15:31 -> 15:32 (count=0)
+  17:10 -> 17:11 (count=1)
+  18:9 -> 18:15 (count=1)
+  19:5 -> 19:6 (count=1)
+  22:11 -> 25:2 (count=1)
+Segment at 10:12 (count = 1), RegionEntry
+Segment at 10:16 (count = 0), Skipped
+Segment at 11:16 (count = 1), RegionEntry
+Segment at 11:21 (count = 0), Skipped
+Segment at 14:14 (count = 1), RegionEntry
+Segment at 14:15 (count = 0), Skipped
+Segment at 15:13 (count = 1), RegionEntry
+Segment at 15:31 (count = 0), RegionEntry
+Segment at 15:32 (count = 0), Skipped
+Segment at 17:10 (count = 1), RegionEntry
+Segment at 17:11 (count = 0), Skipped
+Segment at 18:9 (count = 1), RegionEntry
+Segment at 18:15 (count = 0), Skipped
+Segment at 19:5 (count = 1), RegionEntry
+Segment at 19:6 (count = 0), Skipped
+Segment at 22:11 (count = 1), RegionEntry
+Segment at 25:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.nested_loops.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.nested_loops.txt
new file mode 100644
index 00000000000..eec4aec79e6
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.nested_loops.txt
@@ -0,0 +1,76 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/nested_loops.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/nested_loops 
+Counter in file 0 2:9 -> 3:27, #1
+Counter in file 0 5:19 -> 5:32, #2
+Counter in file 0 6:13 -> 7:24, #3
+Counter in file 0 8:13 -> 8:14, #4
+Counter in file 0 8:18 -> 8:23, #5
+Counter in file 0 9:16 -> 9:22, (#4 + 0)
+Counter in file 0 10:17 -> 10:22, #6
+Counter in file 0 12:13 -> 12:19, #7
+Counter in file 0 13:13 -> 13:19, #8
+Counter in file 0 14:16 -> 14:22, (#8 + 0)
+Counter in file 0 15:17 -> 16:27, #9
+Counter in file 0 17:21 -> 17:33, #10
+Counter in file 0 19:21 -> 21:14, #11
+Counter in file 0 21:14 -> 21:15, #12
+Counter in file 0 22:10 -> 22:11, #13
+Counter in file 0 22:10 -> 22:11, (#3 + 0)
+Counter in file 0 23:9 -> 23:23, #14
+Counter in file 0 24:6 -> 24:7, #15
+Counter in file 0 24:6 -> 24:7, (#1 + 0)
+Counter in file 0 25:1 -> 25:2, #16
+Emitting segments for file: ../coverage/nested_loops.rs
+Combined regions:
+  2:9 -> 3:27 (count=1)
+  5:19 -> 5:32 (count=1)
+  6:13 -> 7:24 (count=1)
+  8:13 -> 8:14 (count=3)
+  8:18 -> 8:23 (count=3)
+  9:16 -> 9:22 (count=3)
+  10:17 -> 10:22 (count=0)
+  12:13 -> 12:19 (count=3)
+  13:13 -> 13:19 (count=3)
+  14:16 -> 14:22 (count=3)
+  15:17 -> 16:27 (count=1)
+  17:21 -> 17:33 (count=1)
+  19:21 -> 21:14 (count=0)
+  21:14 -> 21:15 (count=2)
+  22:10 -> 22:11 (count=3)
+  23:9 -> 23:23 (count=0)
+  24:6 -> 24:7 (count=1)
+  25:1 -> 25:2 (count=1)
+Segment at 2:9 (count = 1), RegionEntry
+Segment at 3:27 (count = 0), Skipped
+Segment at 5:19 (count = 1), RegionEntry
+Segment at 5:32 (count = 0), Skipped
+Segment at 6:13 (count = 1), RegionEntry
+Segment at 7:24 (count = 0), Skipped
+Segment at 8:13 (count = 3), RegionEntry
+Segment at 8:14 (count = 0), Skipped
+Segment at 8:18 (count = 3), RegionEntry
+Segment at 8:23 (count = 0), Skipped
+Segment at 9:16 (count = 3), RegionEntry
+Segment at 9:22 (count = 0), Skipped
+Segment at 10:17 (count = 0), RegionEntry
+Segment at 10:22 (count = 0), Skipped
+Segment at 12:13 (count = 3), RegionEntry
+Segment at 12:19 (count = 0), Skipped
+Segment at 13:13 (count = 3), RegionEntry
+Segment at 13:19 (count = 0), Skipped
+Segment at 14:16 (count = 3), RegionEntry
+Segment at 14:22 (count = 0), Skipped
+Segment at 15:17 (count = 1), RegionEntry
+Segment at 16:27 (count = 0), Skipped
+Segment at 17:21 (count = 1), RegionEntry
+Segment at 17:33 (count = 0), Skipped
+Segment at 19:21 (count = 0), RegionEntry
+Segment at 21:14 (count = 2), RegionEntry
+Segment at 21:15 (count = 0), Skipped
+Segment at 22:10 (count = 3), RegionEntry
+Segment at 22:11 (count = 0), Skipped
+Segment at 23:9 (count = 0), RegionEntry
+Segment at 23:23 (count = 0), Skipped
+Segment at 24:6 (count = 1), RegionEntry
+Segment at 24:7 (count = 0), Skipped
+Segment at 25:1 (count = 1), RegionEntry
+Segment at 25:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.partial_eq_counter_without_region.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.partial_eq_counter_without_region.txt
new file mode 100644
index 00000000000..d2a68ab3202
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.partial_eq_counter_without_region.txt
@@ -0,0 +1,28 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/partial_eq_counter_without_region.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/partial_eq_counter_without_region 
+Counter in file 0 7:5 -> 7:6, #1
+Counter in file 0 21:11 -> 26:2, #1
+Counter in file 0 4:17 -> 4:22, #1
+Counter in file 0 13:9 -> 18:6, #1
+Counter in file 0 4:39 -> 4:40, #1
+Counter in file 0 4:48 -> 4:49, (#1 + 0)
+Counter in file 0 8:5 -> 8:17, #1
+Emitting segments for file: ../coverage/partial_eq_counter_without_region.rs
+Combined regions:
+  4:17 -> 4:22 (count=2)
+  4:39 -> 4:40 (count=1)
+  4:48 -> 4:49 (count=1)
+  7:5 -> 7:6 (count=1)
+  13:9 -> 18:6 (count=2)
+  21:11 -> 26:2 (count=1)
+Segment at 4:17 (count = 2), RegionEntry
+Segment at 4:22 (count = 0), Skipped
+Segment at 4:39 (count = 1), RegionEntry
+Segment at 4:40 (count = 0), Skipped
+Segment at 4:48 (count = 1), RegionEntry
+Segment at 4:49 (count = 0), Skipped
+Segment at 7:5 (count = 1), RegionEntry
+Segment at 7:6 (count = 0), Skipped
+Segment at 13:9 (count = 2), RegionEntry
+Segment at 18:6 (count = 0), Skipped
+Segment at 21:11 (count = 1), RegionEntry
+Segment at 26:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.simple_loop.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.simple_loop.txt
new file mode 100644
index 00000000000..d828e40ca3f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.simple_loop.txt
@@ -0,0 +1,38 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/simple_loop.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/simple_loop 
+Counter in file 0 7:9 -> 9:26, #1
+Counter in file 0 12:9 -> 12:16, (#1 + 0)
+Counter in file 0 13:5 -> 18:6, #2
+Counter in file 0 18:6 -> 18:7, #3
+Counter in file 0 23:13 -> 25:14, #4
+Counter in file 0 27:13 -> 27:18, #5
+Counter in file 0 30:9 -> 32:10, #6
+Counter in file 0 34:6 -> 34:7, #7
+Counter in file 0 35:1 -> 35:2, (#5 + 0)
+Emitting segments for file: ../coverage/simple_loop.rs
+Combined regions:
+  7:9 -> 9:26 (count=1)
+  12:9 -> 12:16 (count=1)
+  13:5 -> 18:6 (count=1)
+  18:6 -> 18:7 (count=0)
+  23:13 -> 25:14 (count=11)
+  27:13 -> 27:18 (count=1)
+  30:9 -> 32:10 (count=10)
+  34:6 -> 34:7 (count=1)
+  35:1 -> 35:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 9:26 (count = 0), Skipped
+Segment at 12:9 (count = 1), RegionEntry
+Segment at 12:16 (count = 0), Skipped
+Segment at 13:5 (count = 1), RegionEntry
+Segment at 18:6 (count = 0), RegionEntry
+Segment at 18:7 (count = 0), Skipped
+Segment at 23:13 (count = 11), RegionEntry
+Segment at 25:14 (count = 0), Skipped
+Segment at 27:13 (count = 1), RegionEntry
+Segment at 27:18 (count = 0), Skipped
+Segment at 30:9 (count = 10), RegionEntry
+Segment at 32:10 (count = 0), Skipped
+Segment at 34:6 (count = 1), RegionEntry
+Segment at 34:7 (count = 0), Skipped
+Segment at 35:1 (count = 1), RegionEntry
+Segment at 35:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.simple_match.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.simple_match.txt
new file mode 100644
index 00000000000..e7932e0be04
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.simple_match.txt
@@ -0,0 +1,58 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/simple_match.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/simple_match 
+Counter in file 0 7:9 -> 9:26, #1
+Counter in file 0 10:8 -> 10:15, (#1 + 0)
+Counter in file 0 10:16 -> 12:6, #2
+Counter in file 0 12:6 -> 12:7, #3
+Counter in file 0 15:9 -> 15:10, #4
+Counter in file 0 17:9 -> 17:13, #5
+Counter in file 0 22:13 -> 22:22, (#4 + 0)
+Counter in file 0 24:13 -> 24:14, #6
+Counter in file 0 26:17 -> 28:18, (#4 + 0)
+Counter in file 0 28:18 -> 28:19, #7
+Counter in file 0 30:13 -> 37:14, (#6 + 0)
+Counter in file 0 40:13 -> 40:15, #8
+Counter in file 0 42:6 -> 42:7, #9
+Counter in file 0 42:6 -> 42:7, #10
+Counter in file 0 43:1 -> 43:2, #11
+Emitting segments for file: ../coverage/simple_match.rs
+Combined regions:
+  7:9 -> 9:26 (count=1)
+  10:8 -> 10:15 (count=1)
+  10:16 -> 12:6 (count=1)
+  12:6 -> 12:7 (count=0)
+  15:9 -> 15:10 (count=2)
+  17:9 -> 17:13 (count=3)
+  22:13 -> 22:22 (count=2)
+  24:13 -> 24:14 (count=1)
+  26:17 -> 28:18 (count=2)
+  28:18 -> 28:19 (count=1)
+  30:13 -> 37:14 (count=1)
+  40:13 -> 40:15 (count=1)
+  42:6 -> 42:7 (count=3)
+  43:1 -> 43:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 9:26 (count = 0), Skipped
+Segment at 10:8 (count = 1), RegionEntry
+Segment at 10:15 (count = 0), Skipped
+Segment at 10:16 (count = 1), RegionEntry
+Segment at 12:6 (count = 0), RegionEntry
+Segment at 12:7 (count = 0), Skipped
+Segment at 15:9 (count = 2), RegionEntry
+Segment at 15:10 (count = 0), Skipped
+Segment at 17:9 (count = 3), RegionEntry
+Segment at 17:13 (count = 0), Skipped
+Segment at 22:13 (count = 2), RegionEntry
+Segment at 22:22 (count = 0), Skipped
+Segment at 24:13 (count = 1), RegionEntry
+Segment at 24:14 (count = 0), Skipped
+Segment at 26:17 (count = 2), RegionEntry
+Segment at 28:18 (count = 1), RegionEntry
+Segment at 28:19 (count = 0), Skipped
+Segment at 30:13 (count = 1), RegionEntry
+Segment at 37:14 (count = 0), Skipped
+Segment at 40:13 (count = 1), RegionEntry
+Segment at 40:15 (count = 0), Skipped
+Segment at 42:6 (count = 3), RegionEntry
+Segment at 42:7 (count = 0), Skipped
+Segment at 43:1 (count = 1), RegionEntry
+Segment at 43:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.tight_infinite_loop.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.tight_infinite_loop.txt
new file mode 100644
index 00000000000..a690874e3c0
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.tight_infinite_loop.txt
@@ -0,0 +1,11 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/tight_infinite_loop.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/tight_infinite_loop 
+Counter in file 0 2:8 -> 2:13, #1
+Counter in file 0 5:1 -> 5:2, #4
+Emitting segments for file: ../coverage/tight_infinite_loop.rs
+Combined regions:
+  2:8 -> 2:13 (count=1)
+  5:1 -> 5:2 (count=1)
+Segment at 2:8 (count = 1), RegionEntry
+Segment at 2:13 (count = 0), Skipped
+Segment at 5:1 (count = 1), RegionEntry
+Segment at 5:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.try_error_result.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.try_error_result.txt
new file mode 100644
index 00000000000..d510223417a
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.try_error_result.txt
@@ -0,0 +1,72 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/try_error_result.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/try_error_result 
+Counter in file 0 13:9 -> 14:23, #1
+Counter in file 0 17:9 -> 17:10, #2
+Counter in file 0 19:9 -> 19:14, #3
+Counter in file 0 21:9 -> 25:26, #4
+Counter in file 0 27:13 -> 27:41, #5
+Counter in file 0 27:41 -> 27:42, #6
+Counter in file 0 31:13 -> 31:42, #7
+Counter in file 0 31:42 -> 31:43, #8
+Counter in file 0 32:10 -> 32:11, #9
+Counter in file 0 32:10 -> 32:11, #10
+Counter in file 0 33:6 -> 33:7, #11
+Counter in file 0 33:6 -> 33:7, (#1 + 0)
+Counter in file 0 34:5 -> 34:11, #12
+Counter in file 0 35:1 -> 35:2, #13
+Counter in file 0 35:1 -> 35:2, #14
+Counter in file 0 5:8 -> 5:20, #1
+Counter in file 0 6:9 -> 6:16, #2
+Counter in file 0 8:9 -> 8:15, #3
+Counter in file 0 9:6 -> 9:7, (#2 + 0)
+Counter in file 0 10:1 -> 10:2, #4
+Emitting segments for file: ../coverage/try_error_result.rs
+Combined regions:
+  5:8 -> 5:20 (count=6)
+  6:9 -> 6:16 (count=1)
+  8:9 -> 8:15 (count=5)
+  9:6 -> 9:7 (count=1)
+  10:1 -> 10:2 (count=6)
+  13:9 -> 14:23 (count=1)
+  17:9 -> 17:10 (count=6)
+  19:9 -> 19:14 (count=6)
+  21:9 -> 25:26 (count=6)
+  27:13 -> 27:41 (count=1)
+  27:41 -> 27:42 (count=1)
+  31:13 -> 31:42 (count=5)
+  31:42 -> 31:43 (count=0)
+  32:10 -> 32:11 (count=5)
+  33:6 -> 33:7 (count=6)
+  34:5 -> 34:11 (count=0)
+  35:1 -> 35:2 (count=2)
+Segment at 5:8 (count = 6), RegionEntry
+Segment at 5:20 (count = 0), Skipped
+Segment at 6:9 (count = 1), RegionEntry
+Segment at 6:16 (count = 0), Skipped
+Segment at 8:9 (count = 5), RegionEntry
+Segment at 8:15 (count = 0), Skipped
+Segment at 9:6 (count = 1), RegionEntry
+Segment at 9:7 (count = 0), Skipped
+Segment at 10:1 (count = 6), RegionEntry
+Segment at 10:2 (count = 0), Skipped
+Segment at 13:9 (count = 1), RegionEntry
+Segment at 14:23 (count = 0), Skipped
+Segment at 17:9 (count = 6), RegionEntry
+Segment at 17:10 (count = 0), Skipped
+Segment at 19:9 (count = 6), RegionEntry
+Segment at 19:14 (count = 0), Skipped
+Segment at 21:9 (count = 6), RegionEntry
+Segment at 25:26 (count = 0), Skipped
+Segment at 27:13 (count = 1), RegionEntry
+Segment at 27:41 (count = 1), RegionEntry
+Segment at 27:42 (count = 0), Skipped
+Segment at 31:13 (count = 5), RegionEntry
+Segment at 31:42 (count = 0), RegionEntry
+Segment at 31:43 (count = 0), Skipped
+Segment at 32:10 (count = 5), RegionEntry
+Segment at 32:11 (count = 0), Skipped
+Segment at 33:6 (count = 6), RegionEntry
+Segment at 33:7 (count = 0), Skipped
+Segment at 34:5 (count = 0), RegionEntry
+Segment at 34:11 (count = 0), Skipped
+Segment at 35:1 (count = 2), RegionEntry
+Segment at 35:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.various_conditions.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.various_conditions.txt
new file mode 100644
index 00000000000..0fb135b2cc9
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.various_conditions.txt
@@ -0,0 +1,240 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/various_conditions.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/various_conditions 
+Counter in file 0 4:9 -> 4:26, #1
+Counter in file 0 5:8 -> 5:12, (#1 + 0)
+Counter in file 0 5:13 -> 7:6, #2
+Counter in file 0 10:9 -> 10:10, #4
+Counter in file 0 10:16 -> 10:29, #5
+Counter in file 0 11:9 -> 12:10, #6
+Counter in file 0 13:15 -> 13:28, #7
+Counter in file 0 14:12 -> 14:25, #8
+Counter in file 0 14:29 -> 14:42, #9
+Counter in file 0 14:42 -> 14:43, #10
+Counter in file 0 14:42 -> 14:43, #11
+Counter in file 0 14:46 -> 14:60, #12
+Counter in file 0 14:60 -> 14:61, #13
+Counter in file 0 14:60 -> 14:61, #14
+Counter in file 0 14:61 -> 16:10, #15
+Counter in file 0 16:10 -> 16:11, #16
+Counter in file 0 17:9 -> 18:18, #17
+Counter in file 0 20:9 -> 20:15, #18
+Counter in file 0 23:9 -> 23:26, (#4 + 0)
+Counter in file 0 24:8 -> 24:12, (#4 + 0)
+Counter in file 0 24:13 -> 26:6, #19
+Counter in file 0 28:8 -> 28:21, #21
+Counter in file 0 29:9 -> 29:23, #22
+Counter in file 0 30:15 -> 30:28, #23
+Counter in file 0 31:12 -> 31:25, #24
+Counter in file 0 31:29 -> 31:42, #25
+Counter in file 0 31:42 -> 31:43, #26
+Counter in file 0 31:42 -> 31:43, #27
+Counter in file 0 31:46 -> 31:60, #28
+Counter in file 0 31:60 -> 31:61, #29
+Counter in file 0 31:60 -> 31:61, #30
+Counter in file 0 31:61 -> 33:10, #31
+Counter in file 0 33:10 -> 33:11, #32
+Counter in file 0 34:9 -> 34:23, #33
+Counter in file 0 36:9 -> 36:15, #34
+Counter in file 0 39:9 -> 39:26, #35
+Counter in file 0 40:8 -> 40:12, (#35 + 0)
+Counter in file 0 40:13 -> 42:6, #36
+Counter in file 0 44:9 -> 44:10, #38
+Counter in file 0 44:16 -> 44:29, #39
+Counter in file 0 45:9 -> 45:23, #40
+Counter in file 0 46:15 -> 46:28, #41
+Counter in file 0 47:12 -> 47:25, #42
+Counter in file 0 47:29 -> 47:42, #43
+Counter in file 0 47:42 -> 47:43, #44
+Counter in file 0 47:42 -> 47:43, #45
+Counter in file 0 47:46 -> 47:60, #46
+Counter in file 0 47:60 -> 47:61, #47
+Counter in file 0 47:60 -> 47:61, #48
+Counter in file 0 47:61 -> 49:10, #49
+Counter in file 0 49:10 -> 49:11, #50
+Counter in file 0 50:9 -> 50:23, #51
+Counter in file 0 52:13 -> 54:15, #52
+Counter in file 0 57:9 -> 57:10, #53
+Counter in file 0 57:16 -> 57:29, (#38 + 0)
+Counter in file 0 58:9 -> 58:23, #54
+Counter in file 0 59:15 -> 59:28, #55
+Counter in file 0 60:12 -> 60:25, #56
+Counter in file 0 60:29 -> 60:42, #57
+Counter in file 0 60:42 -> 60:43, #58
+Counter in file 0 60:42 -> 60:43, #59
+Counter in file 0 60:46 -> 60:60, #60
+Counter in file 0 60:60 -> 60:61, #61
+Counter in file 0 60:60 -> 60:61, #62
+Counter in file 0 60:61 -> 62:10, #63
+Counter in file 0 62:10 -> 62:11, #64
+Counter in file 0 63:9 -> 63:23, #65
+Counter in file 0 65:9 -> 65:15, #66
+Counter in file 0 67:1 -> 67:2, #67
+Counter in file 0 67:1 -> 67:2, #68
+Emitting segments for file: ../coverage/various_conditions.rs
+Combined regions:
+  4:9 -> 4:26 (count=1)
+  5:8 -> 5:12 (count=1)
+  5:13 -> 7:6 (count=1)
+  10:9 -> 10:10 (count=1)
+  10:16 -> 10:29 (count=1)
+  11:9 -> 12:10 (count=1)
+  13:15 -> 13:28 (count=0)
+  14:12 -> 14:25 (count=0)
+  14:29 -> 14:42 (count=0)
+  14:42 -> 14:43 (count=0)
+  14:46 -> 14:60 (count=0)
+  14:60 -> 14:61 (count=0)
+  14:61 -> 16:10 (count=0)
+  16:10 -> 16:11 (count=0)
+  17:9 -> 18:18 (count=0)
+  20:9 -> 20:15 (count=0)
+  23:9 -> 23:26 (count=1)
+  24:8 -> 24:12 (count=1)
+  24:13 -> 26:6 (count=1)
+  28:8 -> 28:21 (count=1)
+  29:9 -> 29:23 (count=1)
+  30:15 -> 30:28 (count=0)
+  31:12 -> 31:25 (count=0)
+  31:29 -> 31:42 (count=0)
+  31:42 -> 31:43 (count=0)
+  31:46 -> 31:60 (count=0)
+  31:60 -> 31:61 (count=0)
+  31:61 -> 33:10 (count=0)
+  33:10 -> 33:11 (count=0)
+  34:9 -> 34:23 (count=0)
+  36:9 -> 36:15 (count=0)
+  39:9 -> 39:26 (count=1)
+  40:8 -> 40:12 (count=1)
+  40:13 -> 42:6 (count=1)
+  44:9 -> 44:10 (count=0)
+  44:16 -> 44:29 (count=1)
+  45:9 -> 45:23 (count=0)
+  46:15 -> 46:28 (count=1)
+  47:12 -> 47:25 (count=0)
+  47:29 -> 47:42 (count=0)
+  47:42 -> 47:43 (count=0)
+  47:46 -> 47:60 (count=0)
+  47:60 -> 47:61 (count=0)
+  47:61 -> 49:10 (count=0)
+  49:10 -> 49:11 (count=0)
+  50:9 -> 50:23 (count=0)
+  52:13 -> 54:15 (count=1)
+  57:9 -> 57:10 (count=0)
+  57:16 -> 57:29 (count=0)
+  58:9 -> 58:23 (count=0)
+  59:15 -> 59:28 (count=0)
+  60:12 -> 60:25 (count=0)
+  60:29 -> 60:42 (count=0)
+  60:42 -> 60:43 (count=0)
+  60:46 -> 60:60 (count=0)
+  60:60 -> 60:61 (count=0)
+  60:61 -> 62:10 (count=0)
+  62:10 -> 62:11 (count=0)
+  63:9 -> 63:23 (count=0)
+  65:9 -> 65:15 (count=0)
+  67:1 -> 67:2 (count=2)
+Segment at 4:9 (count = 1), RegionEntry
+Segment at 4:26 (count = 0), Skipped
+Segment at 5:8 (count = 1), RegionEntry
+Segment at 5:12 (count = 0), Skipped
+Segment at 5:13 (count = 1), RegionEntry
+Segment at 7:6 (count = 0), Skipped
+Segment at 10:9 (count = 1), RegionEntry
+Segment at 10:10 (count = 0), Skipped
+Segment at 10:16 (count = 1), RegionEntry
+Segment at 10:29 (count = 0), Skipped
+Segment at 11:9 (count = 1), RegionEntry
+Segment at 12:10 (count = 0), Skipped
+Segment at 13:15 (count = 0), RegionEntry
+Segment at 13:28 (count = 0), Skipped
+Segment at 14:12 (count = 0), RegionEntry
+Segment at 14:25 (count = 0), Skipped
+Segment at 14:29 (count = 0), RegionEntry
+Segment at 14:42 (count = 0), RegionEntry
+Segment at 14:43 (count = 0), Skipped
+Segment at 14:46 (count = 0), RegionEntry
+Segment at 14:60 (count = 0), RegionEntry
+Segment at 14:61 (count = 0), RegionEntry
+Segment at 16:10 (count = 0), RegionEntry
+Segment at 16:11 (count = 0), Skipped
+Segment at 17:9 (count = 0), RegionEntry
+Segment at 18:18 (count = 0), Skipped
+Segment at 20:9 (count = 0), RegionEntry
+Segment at 20:15 (count = 0), Skipped
+Segment at 23:9 (count = 1), RegionEntry
+Segment at 23:26 (count = 0), Skipped
+Segment at 24:8 (count = 1), RegionEntry
+Segment at 24:12 (count = 0), Skipped
+Segment at 24:13 (count = 1), RegionEntry
+Segment at 26:6 (count = 0), Skipped
+Segment at 28:8 (count = 1), RegionEntry
+Segment at 28:21 (count = 0), Skipped
+Segment at 29:9 (count = 1), RegionEntry
+Segment at 29:23 (count = 0), Skipped
+Segment at 30:15 (count = 0), RegionEntry
+Segment at 30:28 (count = 0), Skipped
+Segment at 31:12 (count = 0), RegionEntry
+Segment at 31:25 (count = 0), Skipped
+Segment at 31:29 (count = 0), RegionEntry
+Segment at 31:42 (count = 0), RegionEntry
+Segment at 31:43 (count = 0), Skipped
+Segment at 31:46 (count = 0), RegionEntry
+Segment at 31:60 (count = 0), RegionEntry
+Segment at 31:61 (count = 0), RegionEntry
+Segment at 33:10 (count = 0), RegionEntry
+Segment at 33:11 (count = 0), Skipped
+Segment at 34:9 (count = 0), RegionEntry
+Segment at 34:23 (count = 0), Skipped
+Segment at 36:9 (count = 0), RegionEntry
+Segment at 36:15 (count = 0), Skipped
+Segment at 39:9 (count = 1), RegionEntry
+Segment at 39:26 (count = 0), Skipped
+Segment at 40:8 (count = 1), RegionEntry
+Segment at 40:12 (count = 0), Skipped
+Segment at 40:13 (count = 1), RegionEntry
+Segment at 42:6 (count = 0), Skipped
+Segment at 44:9 (count = 0), RegionEntry
+Segment at 44:10 (count = 0), Skipped
+Segment at 44:16 (count = 1), RegionEntry
+Segment at 44:29 (count = 0), Skipped
+Segment at 45:9 (count = 0), RegionEntry
+Segment at 45:23 (count = 0), Skipped
+Segment at 46:15 (count = 1), RegionEntry
+Segment at 46:28 (count = 0), Skipped
+Segment at 47:12 (count = 0), RegionEntry
+Segment at 47:25 (count = 0), Skipped
+Segment at 47:29 (count = 0), RegionEntry
+Segment at 47:42 (count = 0), RegionEntry
+Segment at 47:43 (count = 0), Skipped
+Segment at 47:46 (count = 0), RegionEntry
+Segment at 47:60 (count = 0), RegionEntry
+Segment at 47:61 (count = 0), RegionEntry
+Segment at 49:10 (count = 0), RegionEntry
+Segment at 49:11 (count = 0), Skipped
+Segment at 50:9 (count = 0), RegionEntry
+Segment at 50:23 (count = 0), Skipped
+Segment at 52:13 (count = 1), RegionEntry
+Segment at 54:15 (count = 0), Skipped
+Segment at 57:9 (count = 0), RegionEntry
+Segment at 57:10 (count = 0), Skipped
+Segment at 57:16 (count = 0), RegionEntry
+Segment at 57:29 (count = 0), Skipped
+Segment at 58:9 (count = 0), RegionEntry
+Segment at 58:23 (count = 0), Skipped
+Segment at 59:15 (count = 0), RegionEntry
+Segment at 59:28 (count = 0), Skipped
+Segment at 60:12 (count = 0), RegionEntry
+Segment at 60:25 (count = 0), Skipped
+Segment at 60:29 (count = 0), RegionEntry
+Segment at 60:42 (count = 0), RegionEntry
+Segment at 60:43 (count = 0), Skipped
+Segment at 60:46 (count = 0), RegionEntry
+Segment at 60:60 (count = 0), RegionEntry
+Segment at 60:61 (count = 0), RegionEntry
+Segment at 62:10 (count = 0), RegionEntry
+Segment at 62:11 (count = 0), Skipped
+Segment at 63:9 (count = 0), RegionEntry
+Segment at 63:23 (count = 0), Skipped
+Segment at 65:9 (count = 0), RegionEntry
+Segment at 65:15 (count = 0), Skipped
+Segment at 67:1 (count = 2), RegionEntry
+Segment at 67:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.while.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.while.txt
new file mode 100644
index 00000000000..52c809b5325
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.while.txt
@@ -0,0 +1,22 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/while.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/while 
+Counter in file 0 2:9 -> 2:16, #1
+Counter in file 0 3:11 -> 3:20, #2
+Counter in file 0 3:21 -> 4:6, #3
+Counter in file 0 4:6 -> 4:7, (#3 + 0)
+Counter in file 0 5:1 -> 5:2, #4
+Emitting segments for file: ../coverage/while.rs
+Combined regions:
+  2:9 -> 2:16 (count=1)
+  3:11 -> 3:20 (count=1)
+  3:21 -> 4:6 (count=0)
+  4:6 -> 4:7 (count=0)
+  5:1 -> 5:2 (count=1)
+Segment at 2:9 (count = 1), RegionEntry
+Segment at 2:16 (count = 0), Skipped
+Segment at 3:11 (count = 1), RegionEntry
+Segment at 3:20 (count = 0), Skipped
+Segment at 3:21 (count = 0), RegionEntry
+Segment at 4:6 (count = 0), RegionEntry
+Segment at 4:7 (count = 0), Skipped
+Segment at 5:1 (count = 1), RegionEntry
+Segment at 5:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.while_early_return.txt b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.while_early_return.txt
new file mode 100644
index 00000000000..30d14f4f987
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-base/expected_show_coverage_counters.while_early_return.txt
@@ -0,0 +1,44 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/while_early_return.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-base/coverage-reports-base/while_early_return 
+Counter in file 0 5:9 -> 5:27, #1
+Counter in file 0 7:9 -> 9:10, #2
+Counter in file 0 12:13 -> 14:14, #3
+Counter in file 0 18:21 -> 20:22, #4
+Counter in file 0 22:21 -> 22:27, #5
+Counter in file 0 26:21 -> 26:27, #6
+Counter in file 0 27:18 -> 27:19, (#5 + 0)
+Counter in file 0 30:9 -> 32:10, #7
+Counter in file 0 35:5 -> 35:11, #8
+Counter in file 0 36:1 -> 36:2, #9
+Counter in file 0 36:1 -> 36:2, #10
+Emitting segments for file: ../coverage/while_early_return.rs
+Combined regions:
+  5:9 -> 5:27 (count=1)
+  7:9 -> 9:10 (count=7)
+  12:13 -> 14:14 (count=7)
+  18:21 -> 20:22 (count=1)
+  22:21 -> 22:27 (count=0)
+  26:21 -> 26:27 (count=1)
+  27:18 -> 27:19 (count=0)
+  30:9 -> 32:10 (count=6)
+  35:5 -> 35:11 (count=0)
+  36:1 -> 36:2 (count=2)
+Segment at 5:9 (count = 1), RegionEntry
+Segment at 5:27 (count = 0), Skipped
+Segment at 7:9 (count = 7), RegionEntry
+Segment at 9:10 (count = 0), Skipped
+Segment at 12:13 (count = 7), RegionEntry
+Segment at 14:14 (count = 0), Skipped
+Segment at 18:21 (count = 1), RegionEntry
+Segment at 20:22 (count = 0), Skipped
+Segment at 22:21 (count = 0), RegionEntry
+Segment at 22:27 (count = 0), Skipped
+Segment at 26:21 (count = 1), RegionEntry
+Segment at 26:27 (count = 0), Skipped
+Segment at 27:18 (count = 0), RegionEntry
+Segment at 27:19 (count = 0), Skipped
+Segment at 30:9 (count = 6), RegionEntry
+Segment at 32:10 (count = 0), Skipped
+Segment at 35:5 (count = 0), RegionEntry
+Segment at 35:11 (count = 0), Skipped
+Segment at 36:1 (count = 2), RegionEntry
+Segment at 36:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.closure.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.closure.json
index 8c6edae2803..bff55300b3c 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.closure.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.closure.json
@@ -17,14 +17,14 @@
             },
             "lines": {
               "count": 91,
-              "covered": 75,
-              "percent": 82.41758241758241
+              "covered": 77,
+              "percent": 84.61538461538461
             },
             "regions": {
-              "count": 21,
-              "covered": 11,
-              "notcovered": 10,
-              "percent": 52.38095238095239
+              "count": 25,
+              "covered": 13,
+              "notcovered": 12,
+              "percent": 52
             }
           }
         }
@@ -42,14 +42,14 @@
         },
         "lines": {
           "count": 91,
-          "covered": 75,
-          "percent": 82.41758241758241
+          "covered": 77,
+          "percent": 84.61538461538461
         },
         "regions": {
-          "count": 21,
-          "covered": 11,
-          "notcovered": 10,
-          "percent": 52.38095238095239
+          "count": 25,
+          "covered": 13,
+          "notcovered": 12,
+          "percent": 52
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.drop_trait.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.drop_trait.json
index bd2e2d56d4a..7a7e4c04f00 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.drop_trait.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.drop_trait.json
@@ -21,8 +21,8 @@
               "percent": 100
             },
             "regions": {
-              "count": 5,
-              "covered": 5,
+              "count": 6,
+              "covered": 6,
               "notcovered": 0,
               "percent": 100
             }
@@ -46,8 +46,8 @@
           "percent": 100
         },
         "regions": {
-          "count": 5,
-          "covered": 5,
+          "count": 6,
+          "covered": 6,
           "notcovered": 0,
           "percent": 100
         }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.generics.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.generics.json
index a50f4657e20..1025cd3de80 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.generics.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.generics.json
@@ -21,8 +21,8 @@
               "percent": 100
             },
             "regions": {
-              "count": 6,
-              "covered": 6,
+              "count": 7,
+              "covered": 7,
               "notcovered": 0,
               "percent": 100
             }
@@ -46,8 +46,8 @@
           "percent": 100
         },
         "regions": {
-          "count": 6,
-          "covered": 6,
+          "count": 7,
+          "covered": 7,
           "notcovered": 0,
           "percent": 100
         }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if.json
index 2ff53ad33fa..84dcc251f3f 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if.json
@@ -21,10 +21,10 @@
               "percent": 100
             },
             "regions": {
-              "count": 4,
+              "count": 5,
               "covered": 4,
-              "notcovered": 0,
-              "percent": 100
+              "notcovered": 1,
+              "percent": 80
             }
           }
         }
@@ -46,10 +46,10 @@
           "percent": 100
         },
         "regions": {
-          "count": 4,
+          "count": 5,
           "covered": 4,
-          "notcovered": 0,
-          "percent": 100
+          "notcovered": 1,
+          "percent": 80
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if_else.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if_else.json
index 36f81ceae19..2d2ad1dbe3f 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if_else.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.if_else.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 28,
-              "covered": 19,
-              "percent": 67.85714285714286
+              "count": 29,
+              "covered": 21,
+              "percent": 72.41379310344827
             },
             "regions": {
-              "count": 7,
-              "covered": 5,
+              "count": 9,
+              "covered": 7,
               "notcovered": 2,
-              "percent": 71.42857142857143
+              "percent": 77.77777777777779
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 28,
-          "covered": 19,
-          "percent": 67.85714285714286
+          "count": 29,
+          "covered": 21,
+          "percent": 72.41379310344827
         },
         "regions": {
-          "count": 7,
-          "covered": 5,
+          "count": 9,
+          "covered": 7,
           "notcovered": 2,
-          "percent": 71.42857142857143
+          "percent": 77.77777777777779
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.inner_items.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.inner_items.json
index a24e6a33a33..c178e7f9347 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.inner_items.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.inner_items.json
@@ -21,10 +21,10 @@
               "percent": 100
             },
             "regions": {
-              "count": 13,
+              "count": 15,
               "covered": 13,
-              "notcovered": 0,
-              "percent": 100
+              "notcovered": 2,
+              "percent": 86.66666666666667
             }
           }
         }
@@ -46,10 +46,10 @@
           "percent": 100
         },
         "regions": {
-          "count": 13,
+          "count": 15,
           "covered": 13,
-          "notcovered": 0,
-          "percent": 100
+          "notcovered": 2,
+          "percent": 86.66666666666667
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.lazy_boolean.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.lazy_boolean.json
index 585346dc32a..95a1dcd3b8e 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.lazy_boolean.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.lazy_boolean.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 21,
-              "covered": 19,
-              "percent": 90.47619047619048
+              "count": 40,
+              "covered": 32,
+              "percent": 80
             },
             "regions": {
-              "count": 16,
-              "covered": 14,
-              "notcovered": 2,
-              "percent": 87.5
+              "count": 39,
+              "covered": 28,
+              "notcovered": 11,
+              "percent": 71.7948717948718
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 21,
-          "covered": 19,
-          "percent": 90.47619047619048
+          "count": 40,
+          "covered": 32,
+          "percent": 80
         },
         "regions": {
-          "count": 16,
-          "covered": 14,
-          "notcovered": 2,
-          "percent": 87.5
+          "count": 39,
+          "covered": 28,
+          "notcovered": 11,
+          "percent": 71.7948717948718
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.loops_and_branches.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.loops_and_branches.json
new file mode 100644
index 00000000000..aec85cd0329
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.loops_and_branches.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/loops_and_branches.rs",
+          "summary": {
+            "functions": {
+              "count": 2,
+              "covered": 2,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 2,
+              "covered": 2,
+              "percent": 100
+            },
+            "lines": {
+              "count": 11,
+              "covered": 11,
+              "percent": 100
+            },
+            "regions": {
+              "count": 10,
+              "covered": 8,
+              "notcovered": 2,
+              "percent": 80
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 2,
+          "covered": 2,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 2,
+          "covered": 2,
+          "percent": 100
+        },
+        "lines": {
+          "count": 11,
+          "covered": 11,
+          "percent": 100
+        },
+        "regions": {
+          "count": 10,
+          "covered": 8,
+          "notcovered": 2,
+          "percent": 80
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.nested_loops.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.nested_loops.json
new file mode 100644
index 00000000000..dbe4f9ca6fd
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.nested_loops.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/nested_loops.rs",
+          "summary": {
+            "functions": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "lines": {
+              "count": 21,
+              "covered": 17,
+              "percent": 80.95238095238095
+            },
+            "regions": {
+              "count": 20,
+              "covered": 16,
+              "notcovered": 4,
+              "percent": 80
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "lines": {
+          "count": 21,
+          "covered": 17,
+          "percent": 80.95238095238095
+        },
+        "regions": {
+          "count": 20,
+          "covered": 16,
+          "notcovered": 4,
+          "percent": 80
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.partial_eq_counter_without_region.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.partial_eq_counter_without_region.json
new file mode 100644
index 00000000000..779bfe9904c
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.partial_eq_counter_without_region.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/partial_eq_counter_without_region.rs",
+          "summary": {
+            "functions": {
+              "count": 5,
+              "covered": 5,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 8,
+              "covered": 5,
+              "percent": 62.5
+            },
+            "lines": {
+              "count": 15,
+              "covered": 15,
+              "percent": 100
+            },
+            "regions": {
+              "count": 6,
+              "covered": 6,
+              "notcovered": 0,
+              "percent": 100
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 5,
+          "covered": 5,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 8,
+          "covered": 5,
+          "percent": 62.5
+        },
+        "lines": {
+          "count": 15,
+          "covered": 15,
+          "percent": 100
+        },
+        "regions": {
+          "count": 6,
+          "covered": 6,
+          "notcovered": 0,
+          "percent": 100
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_loop.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_loop.json
index 38bc96898ea..ada6bb062dd 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_loop.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_loop.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 18,
-              "covered": 18,
+              "count": 19,
+              "covered": 19,
               "percent": 100
             },
             "regions": {
-              "count": 7,
-              "covered": 7,
-              "notcovered": 0,
-              "percent": 100
+              "count": 9,
+              "covered": 8,
+              "notcovered": 1,
+              "percent": 88.88888888888889
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 18,
-          "covered": 18,
+          "count": 19,
+          "covered": 19,
           "percent": 100
         },
         "regions": {
-          "count": 7,
-          "covered": 7,
-          "notcovered": 0,
-          "percent": 100
+          "count": 9,
+          "covered": 8,
+          "notcovered": 1,
+          "percent": 88.88888888888889
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_match.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_match.json
index f9d91d66f1d..63d1ae74c5f 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_match.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.simple_match.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 26,
-              "covered": 26,
+              "count": 24,
+              "covered": 24,
               "percent": 100
             },
             "regions": {
-              "count": 9,
-              "covered": 9,
-              "notcovered": 0,
-              "percent": 100
+              "count": 15,
+              "covered": 14,
+              "notcovered": 1,
+              "percent": 93.33333333333333
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 26,
-          "covered": 26,
+          "count": 24,
+          "covered": 24,
           "percent": 100
         },
         "regions": {
-          "count": 9,
-          "covered": 9,
-          "notcovered": 0,
-          "percent": 100
+          "count": 15,
+          "covered": 14,
+          "notcovered": 1,
+          "percent": 93.33333333333333
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.tight_infinite_loop.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.tight_infinite_loop.json
new file mode 100644
index 00000000000..3fa6821cd1d
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.tight_infinite_loop.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/tight_infinite_loop.rs",
+          "summary": {
+            "functions": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "lines": {
+              "count": 2,
+              "covered": 2,
+              "percent": 100
+            },
+            "regions": {
+              "count": 2,
+              "covered": 2,
+              "notcovered": 0,
+              "percent": 100
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "lines": {
+          "count": 2,
+          "covered": 2,
+          "percent": 100
+        },
+        "regions": {
+          "count": 2,
+          "covered": 2,
+          "notcovered": 0,
+          "percent": 100
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.try_error_result.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.try_error_result.json
index e6ef2c1ab89..e845ee29fa4 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.try_error_result.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.try_error_result.json
@@ -16,15 +16,15 @@
               "percent": 100
             },
             "lines": {
-              "count": 16,
-              "covered": 15,
-              "percent": 93.75
+              "count": 20,
+              "covered": 19,
+              "percent": 95
             },
             "regions": {
-              "count": 13,
-              "covered": 12,
-              "notcovered": 1,
-              "percent": 92.3076923076923
+              "count": 20,
+              "covered": 17,
+              "notcovered": 3,
+              "percent": 85
             }
           }
         }
@@ -41,15 +41,15 @@
           "percent": 100
         },
         "lines": {
-          "count": 16,
-          "covered": 15,
-          "percent": 93.75
+          "count": 20,
+          "covered": 19,
+          "percent": 95
         },
         "regions": {
-          "count": 13,
-          "covered": 12,
-          "notcovered": 1,
-          "percent": 92.3076923076923
+          "count": 20,
+          "covered": 17,
+          "notcovered": 3,
+          "percent": 85
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.various_conditions.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.various_conditions.json
index 410821ea335..464bb614ea1 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.various_conditions.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.various_conditions.json
@@ -21,10 +21,10 @@
               "percent": 46.93877551020408
             },
             "regions": {
-              "count": 51,
+              "count": 70,
               "covered": 19,
-              "notcovered": 32,
-              "percent": 37.254901960784316
+              "notcovered": 51,
+              "percent": 27.142857142857142
             }
           }
         }
@@ -46,10 +46,10 @@
           "percent": 46.93877551020408
         },
         "regions": {
-          "count": 51,
+          "count": 70,
           "covered": 19,
-          "notcovered": 32,
-          "percent": 37.254901960784316
+          "notcovered": 51,
+          "percent": 27.142857142857142
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while.json
new file mode 100644
index 00000000000..27862087ed5
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while.json
@@ -0,0 +1,59 @@
+{
+  "data": [
+    {
+      "files": [
+        {
+          "filename": "../coverage/while.rs",
+          "summary": {
+            "functions": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "instantiations": {
+              "count": 1,
+              "covered": 1,
+              "percent": 100
+            },
+            "lines": {
+              "count": 4,
+              "covered": 3,
+              "percent": 75
+            },
+            "regions": {
+              "count": 5,
+              "covered": 3,
+              "notcovered": 2,
+              "percent": 60
+            }
+          }
+        }
+      ],
+      "totals": {
+        "functions": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "instantiations": {
+          "count": 1,
+          "covered": 1,
+          "percent": 100
+        },
+        "lines": {
+          "count": 4,
+          "covered": 3,
+          "percent": 75
+        },
+        "regions": {
+          "count": 5,
+          "covered": 3,
+          "notcovered": 2,
+          "percent": 60
+        }
+      }
+    }
+  ],
+  "type": "llvm.coverage.json.export",
+  "version": "2.0.1"
+}
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while_early_return.json b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while_early_return.json
index 865b705fa20..555ac745d53 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while_early_return.json
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_export_coverage.while_early_return.json
@@ -17,14 +17,14 @@
             },
             "lines": {
               "count": 18,
-              "covered": 16,
-              "percent": 88.88888888888889
+              "covered": 15,
+              "percent": 83.33333333333334
             },
             "regions": {
-              "count": 9,
-              "covered": 7,
-              "notcovered": 2,
-              "percent": 77.77777777777779
+              "count": 11,
+              "covered": 8,
+              "notcovered": 3,
+              "percent": 72.72727272727273
             }
           }
         }
@@ -42,14 +42,14 @@
         },
         "lines": {
           "count": 18,
-          "covered": 16,
-          "percent": 88.88888888888889
+          "covered": 15,
+          "percent": 83.33333333333334
         },
         "regions": {
-          "count": 9,
-          "covered": 7,
-          "notcovered": 2,
-          "percent": 77.77777777777779
+          "count": 11,
+          "covered": 8,
+          "notcovered": 3,
+          "percent": 72.72727272727273
         }
       }
     }
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.closure.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.closure.txt
index 17054490e9b..aef26a62e25 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.closure.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.closure.txt
@@ -62,7 +62,7 @@
    62|      1|                let mut countdown = 0;
    63|      1|                if is_false {
    64|      0|                    countdown = 10;
-   65|      0|                }
+   65|      1|                }
    66|      1|                "alt string 3".to_owned()
    67|      1|            }
    68|      1|        )
@@ -77,7 +77,7 @@
    77|      1|        let mut countdown = 0;
    78|      1|        if is_false {
    79|      0|            countdown = 10;
-   80|      0|        }
+   80|      1|        }
    81|      1|        "alt string 4".to_owned()
    82|      1|    };
    83|      1|    println!(
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.drop_trait.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.drop_trait.txt
index 72aa020ca16..43592df1059 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.drop_trait.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.drop_trait.txt
@@ -24,7 +24,7 @@
    24|       |    let _ = Firework { strength: 1000 };
    25|       |
    26|       |    Ok(())
-   27|      1|}
+   27|      2|}
    28|       |
    29|       |// Expected program output:
    30|       |//   Exiting with error...
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.generics.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.generics.txt
index 86199d74763..11dc0aa65e2 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.generics.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.generics.txt
@@ -57,7 +57,7 @@
    35|       |    let _ = Firework { strength: 1000 };
    36|       |
    37|       |    Ok(())
-   38|      1|}
+   38|      2|}
    39|       |
    40|       |// Expected program output:
    41|       |//   Exiting with error...
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if.txt
index bc2f9b108b2..85e6440ab37 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if.txt
@@ -25,5 +25,6 @@
    25|      1|            10
    26|      1|        ;
    27|      1|    }
+                   ^0
    28|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if_else.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if_else.txt
index 5f899723e25..64cbc262521 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if_else.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.if_else.txt
@@ -20,7 +20,7 @@
    20|      0|        countdown
    21|      0|        =
    22|      0|            100
-   23|       |    }
+   23|      1|    }
    24|       |
    25|       |    if
    26|      1|        is_true
@@ -36,6 +36,6 @@
    36|      0|        =
    37|      0|            100
    38|      0|        ;
-   39|      0|    }
+   39|      1|    }
    40|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.inner_items.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.inner_items.txt
index b13ca83d018..4a51f842a4b 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.inner_items.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.inner_items.txt
@@ -10,6 +10,7 @@
    10|      1|    if is_true {
    11|      1|        countdown = 10;
    12|      1|    }
+                   ^0
    13|       |
    14|       |    mod in_mod {
    15|       |        const IN_MOD_CONST: u32 = 1000;
@@ -48,6 +49,7 @@
    48|      1|    if is_true {
    49|      1|        in_func(countdown);
    50|      1|    }
+                   ^0
    51|       |
    52|      1|    let mut val = InStruct {
    53|      1|        in_struct_field: 101,
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.lazy_boolean.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.lazy_boolean.txt
index ded43697515..f01f69f2496 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.lazy_boolean.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.lazy_boolean.txt
@@ -12,12 +12,14 @@
    12|      1|        b = 10;
    13|      1|        c = 100;
    14|      1|    }
+                   ^0
    15|       |    let
    16|      1|        somebool
    17|       |        =
    18|      1|            a < b
    19|       |        ||
-   20|      0|            b < c
+   20|      1|            b < c
+                          ^0
    21|       |    ;
    22|       |    let
    23|      1|        somebool
@@ -26,19 +28,38 @@
    26|       |        ||
    27|      1|            b < c
    28|       |    ;
-   29|       |    let
-   30|      1|        somebool
-   31|       |        =
-   32|      1|            a < b
-   33|       |        &&
-   34|      1|            b < c
-   35|       |    ;
-   36|       |    let
-   37|      1|        somebool
-   38|       |        =
-   39|      1|            b < a
-   40|       |        &&
-   41|      0|            b < c
-   42|       |    ;
-   43|      1|}
+   29|      1|    let somebool = a < b && b < c;
+   30|      1|    let somebool = b < a && b < c;
+                                          ^0
+   31|       |
+   32|       |    if
+   33|      1|        !
+   34|      1|        is_true
+   35|      0|    {
+   36|      0|        a = 2
+   37|      0|        ;
+   38|      1|    }
+   39|       |
+   40|       |    if
+   41|      1|        is_true
+   42|      1|    {
+   43|      1|        b = 30
+   44|      1|        ;
+   45|      1|    }
+   46|       |    else
+   47|      0|    {
+   48|      0|        c = 400
+   49|      0|        ;
+   50|      1|    }
+   51|       |
+   52|      1|    if !is_true {
+   53|      0|        a = 2;
+   54|      1|    }
+   55|       |
+   56|      1|    if is_true {
+   57|      1|        b = 30;
+   58|      1|    } else {
+   59|      0|        c = 400;
+   60|      1|    }
+   61|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.loops_and_branches.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.loops_and_branches.txt
new file mode 100644
index 00000000000..3a969a6b898
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.loops_and_branches.txt
@@ -0,0 +1,38 @@
+    1|       |#![allow(unused_assignments)]
+    2|       |
+    3|       |// This test confirms an earlier problem was resolved, supporting the MIR graph generated by the
+    4|       |// structure of this `fmt` function.
+    5|       |
+    6|       |struct DebugTest;
+    7|       |
+    8|       |impl std::fmt::Debug for DebugTest {
+    9|       |    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
+   10|      1|        if true {
+   11|      1|            if false {
+   12|       |                while true {
+   13|       |                }
+   14|      1|            }
+   15|      1|            write!(f, "error")?;
+                                            ^0
+   16|       |        } else {
+   17|      1|        }
+   18|      1|        Ok(())
+   19|      1|    }
+   20|       |}
+   21|       |
+   22|      1|fn main() {
+   23|      1|    let debug_test = DebugTest;
+   24|      1|    println!("{:?}", debug_test);
+   25|      1|}
+   26|       |
+   27|       |/*
+   28|       |
+   29|       |This is the error message generated, before the issue was fixed:
+   30|       |
+   31|       |error: internal compiler error: compiler/rustc_mir/src/transform/coverage/mod.rs:374:42:
+   32|       |Error processing: DefId(0:6 ~ bug_incomplete_cov_graph_traversal_simplified[317d]::{impl#0}::fmt):
+   33|       |Error { message: "`TraverseCoverageGraphWithLoops` missed some `BasicCoverageBlock`s:
+   34|       |[bcb6, bcb7, bcb9]" }
+   35|       |
+   36|       |*/
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.nested_loops.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.nested_loops.txt
new file mode 100644
index 00000000000..e0545c76f78
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.nested_loops.txt
@@ -0,0 +1,26 @@
+    1|       |fn main() {
+    2|      1|    let is_true = std::env::args().len() == 1;
+    3|      1|    let mut countdown = 10;
+    4|       |
+    5|      1|    'outer: while countdown > 0 {
+    6|      1|        let mut a = 100;
+    7|      1|        let mut b = 100;
+    8|      3|        for _ in 0..50 {
+    9|      3|            if a < 30 {
+   10|      0|                break;
+   11|       |            }
+   12|      3|            a -= 5;
+   13|      3|            b -= 5;
+   14|      3|            if b < 90 {
+   15|      1|                a -= 10;
+   16|      1|                if is_true {
+   17|      1|                    break 'outer;
+   18|       |                } else {
+   19|      0|                    a -= 2;
+   20|      0|                }
+   21|      2|            }
+   22|      3|        }
+   23|      0|        countdown -= 1;
+   24|      1|    }
+   25|      1|}
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.partial_eq_counter_without_region.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.partial_eq_counter_without_region.txt
new file mode 100644
index 00000000000..e7e4dfb5a86
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.partial_eq_counter_without_region.txt
@@ -0,0 +1,111 @@
+    1|       |// This test confirms an earlier problem was resolved, supporting the MIR graph generated by the
+    2|       |// structure of this test.
+    3|       |
+    4|      2|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+                                                    ^1       ^1
+  ------------------
+  | Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::gt
+  ------------------
+  | Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::le
+  ------------------
+  | Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::ge
+  ------------------
+  | <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::lt:
+  |    4|      1|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+  ------------------
+    5|       |pub struct Version {
+    6|       |    major: usize,
+    7|      1|    minor: usize,
+    8|       |    patch: usize,
+    9|       |}
+   10|       |
+   11|       |impl Version {
+   12|       |    pub fn new(major: usize, minor: usize, patch: usize) -> Self {
+   13|      2|        Self {
+   14|      2|            major,
+   15|      2|            minor,
+   16|      2|            patch,
+   17|      2|        }
+   18|      2|    }
+   19|       |}
+   20|       |
+   21|      1|fn main() {
+   22|      1|    let version_3_2_1 = Version::new(3, 2, 1);
+   23|      1|    let version_3_3_0 = Version::new(3, 3, 0);
+   24|      1|
+   25|      1|    println!("{:?} < {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 < version_3_3_0);
+   26|      1|}
+   27|       |
+   28|       |/*
+   29|       |
+   30|       |This test verifies a bug was fixed that otherwise generated this error:
+   31|       |
+   32|       |thread 'rustc' panicked at 'No counters provided the source_hash for function:
+   33|       |    Instance {
+   34|       |        def: Item(WithOptConstParam {
+   35|       |            did: DefId(0:101 ~ autocfg[c44a]::version::{impl#2}::partial_cmp),
+   36|       |            const_param_did: None
+   37|       |        }),
+   38|       |        substs: []
+   39|       |    }'
+   40|       |The `PartialOrd` derived by `Version` happened to generate a MIR that generated coverage
+   41|       |without a code region associated with any `Counter`. Code regions were associated with at least
+   42|       |one expression, which is allowed, but the `function_source_hash` was only passed to the codegen
+   43|       |(coverage mapgen) phase from a `Counter`s code region. A new method was added to pass the
+   44|       |`function_source_hash` without a code region, if necessary.
+   45|       |
+   46|       |*/
+   47|       |
+   48|       |// FIXME(richkadel): It may be worth investigating why the coverage report for this test produces
+   49|       |// the following results:
+   50|       |
+   51|       |/*
+   52|       |
+   53|       |1. Why are their two counts below different characters (first and last) of `PartialOrd`, on line 17?
+   54|       |
+   55|       |2. Line 17 is counted twice, but the `::lt` instance shows a line count of 1? Is there a missing
+   56|       |   line count with a different instance? Or was it really only called once?
+   57|       |
+   58|       |3. Line 20 shows another line count (of 1) for a line within a `struct` declaration (on only one of
+   59|       |   its 3 fields). I doubt the specific field (`minor`) is relevant, but rather I suspect there's a
+   60|       |   problem computing the file position here, for some reason.
+   61|       |
+   62|       |<snip>
+   63|       |   16|       |
+   64|       |   17|      2|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+   65|       |                                                    ^1       ^1
+   66|       |------------------
+   67|       ||Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::gt
+   68|       |------------------
+   69|       ||Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::le
+   70|       |------------------
+   71|       ||Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::ge
+   72|       |------------------
+   73|       ||<partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::lt:
+   74|       ||  17|      1|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+   75|       |------------------
+   76|       |   18|       |pub struct Version {
+   77|       |   19|       |    major: usize,
+   78|       |   20|      1|    minor: usize,
+   79|       |   21|       |    patch: usize,
+   80|       |   22|       |}
+   81|       |   23|       |
+   82|       |   24|       |impl Version {
+   83|       |   25|       |    pub fn new(major: usize, minor: usize, patch: usize) -> Self {
+   84|       |   26|      2|        Version {
+   85|       |   27|      2|            major,
+   86|       |   28|      2|            minor,
+   87|       |   29|      2|            patch,
+   88|       |   30|      2|        }
+   89|       |   31|      2|    }
+   90|       |   32|       |}
+   91|       |   33|       |
+   92|       |   34|      1|fn main() {
+   93|       |   35|      1|    let version_3_2_1 = Version::new(3, 2, 1);
+   94|       |   36|      1|    let version_3_3_0 = Version::new(3, 3, 0);
+   95|       |   37|      1|
+   96|       |   38|      1|    println!("{:?} < {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 < version
+   97|       |_3_3_0);
+   98|       |   39|      1|}
+   99|       |*/
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_loop.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_loop.txt
index f1acb7c5459..064930dd75c 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_loop.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_loop.txt
@@ -16,6 +16,7 @@
    16|      1|            10
    17|      1|        ;
    18|      1|    }
+                   ^0
    19|       |
    20|       |    loop
    21|       |    {
@@ -31,6 +32,6 @@
    31|     10|        -=
    32|     10|        1
    33|       |        ;
-   34|       |    }
+   34|      1|    }
    35|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_match.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_match.txt
index e42f22cd047..1f7e71d3eb0 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_match.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.simple_match.txt
@@ -10,22 +10,24 @@
    10|      1|    if is_true {
    11|      1|        countdown = 0;
    12|      1|    }
+                   ^0
    13|       |
-   14|      3|    for
-   15|      3|        _
+   14|       |    for
+   15|      2|        _
    16|       |    in
-   17|      1|        0..2
+   17|      3|        0..2
    18|       |    {
    19|       |        let z
    20|       |        ;
    21|       |        match
    22|      2|            countdown
-   23|      2|        {
-   24|      2|            x
-   25|      2|            if
+   23|       |        {
+   24|      1|            x
+   25|       |            if
    26|      2|                x
    27|      2|                    <
    28|      2|                1
+                               ^1
    29|       |            =>
    30|      1|            {
    31|      1|                z = countdown
@@ -39,6 +41,6 @@
    39|       |            =>
    40|      1|            {}
    41|       |        }
-   42|       |    }
+   42|      3|    }
    43|      1|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.tight_infinite_loop.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.tight_infinite_loop.txt
new file mode 100644
index 00000000000..e02eac03a6b
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.tight_infinite_loop.txt
@@ -0,0 +1,6 @@
+    1|       |fn main() {
+    2|      1|    if false {
+    3|       |        loop {}
+    4|       |    }
+    5|      1|}
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.try_error_result.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.try_error_result.txt
index ae288d7d7a0..05d72d0de46 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.try_error_result.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.try_error_result.txt
@@ -6,22 +6,22 @@
     6|      1|        Err(())
     7|       |    } else {
     8|      5|        Ok(())
-    9|       |    }
+    9|      1|    }
    10|      6|}
    11|       |
    12|       |fn main() -> Result<(),()> {
    13|      1|    let mut
    14|      1|        countdown = 10
    15|       |    ;
-   16|      6|    for
+   16|       |    for
    17|      6|        _
    18|       |    in
-   19|      1|        0..10
+   19|      6|        0..10
    20|       |    {
    21|      6|        countdown
    22|      6|            -= 1
-   23|       |        ;
-   24|       |        if
+   23|      6|        ;
+   24|      6|        if
    25|      6|            countdown < 5
    26|       |        {
    27|      1|            call(/*return_error=*/ true)?;
@@ -29,8 +29,9 @@
    29|       |        else
    30|       |        {
    31|      5|            call(/*return_error=*/ false)?;
-   32|       |        }
-   33|       |    }
+                                                       ^0
+   32|      5|        }
+   33|      6|    }
    34|      0|    Ok(())
-   35|      1|}
+   35|      2|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.various_conditions.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.various_conditions.txt
index 173ff4aa4c4..e0efe75043d 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.various_conditions.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.various_conditions.txt
@@ -65,5 +65,5 @@
    64|       |    } else {
    65|      0|        return;
    66|       |    };
-   67|      1|}
+   67|      2|}
 
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while.txt
new file mode 100644
index 00000000000..194325b6b9e
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while.txt
@@ -0,0 +1,6 @@
+    1|       |fn main() {
+    2|      1|    let num = 9;
+    3|      1|    while num >= 10 {
+    4|      0|    }
+    5|      1|}
+
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while_early_return.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while_early_return.txt
index 7dce94f25f3..2e0c4022bed 100644
--- a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while_early_return.txt
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage.while_early_return.txt
@@ -3,7 +3,7 @@
     3|       |
     4|       |fn main() -> Result<(),u8> {
     5|      1|    let mut countdown = 10;
-    6|      7|    while
+    6|       |    while
     7|      7|        countdown
     8|      7|            >
     9|      7|        0
@@ -24,7 +24,7 @@
    24|       |                else
    25|       |                {
    26|      1|                    Err(1)
-   27|       |                }
+   27|      0|                }
    28|       |                ;
    29|       |        }
    30|      6|        countdown
@@ -33,7 +33,7 @@
    33|       |        ;
    34|       |    }
    35|      0|    Ok(())
-   36|      1|}
+   36|      2|}
    37|       |
    38|       |// ISSUE(77553): Originally, this test had `Err(1)` on line 22 (instead of `Ok(())`) and
    39|       |// `std::process::exit(2)` on line 26 (instead of `Err(1)`); and this worked as expected on Linux
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.closure.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.closure.txt
new file mode 100644
index 00000000000..39bf7bad9a1
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.closure.txt
@@ -0,0 +1,95 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/closure.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/closure 
+Counter in file 0 20:21 -> 20:38, #1
+Counter in file 0 21:20 -> 21:28, (#1 + 0)
+Counter in file 0 21:29 -> 23:18, #2
+Counter in file 0 23:18 -> 23:19, #3
+Counter in file 0 24:17 -> 25:14, #4
+Counter in file 0 3:11 -> 18:13, #1
+Counter in file 0 25:14 -> 33:9, (#1 + 0)
+Counter in file 0 40:6 -> 60:13, (#1 + 0)
+Counter in file 0 67:14 -> 75:9, (#1 + 0)
+Counter in file 0 82:6 -> 93:2, (#1 + 0)
+Counter in file 0 77:13 -> 77:30, #1
+Counter in file 0 78:12 -> 78:20, (#1 + 0)
+Counter in file 0 78:21 -> 80:10, #2
+Counter in file 0 80:10 -> 80:11, #3
+Counter in file 0 81:9 -> 82:6, #4
+Counter in file 0 62:21 -> 62:38, #1
+Counter in file 0 63:20 -> 63:28, (#1 + 0)
+Counter in file 0 63:29 -> 65:18, #2
+Counter in file 0 65:18 -> 65:19, #3
+Counter in file 0 66:17 -> 67:14, #4
+Counter in file 0 35:13 -> 35:30, #1
+Counter in file 0 36:12 -> 36:20, (#1 + 0)
+Counter in file 0 36:21 -> 38:10, #2
+Counter in file 0 38:10 -> 38:11, #3
+Counter in file 0 39:9 -> 40:6, #4
+Emitting segments for file: ../coverage/closure.rs
+Combined regions:
+  3:11 -> 18:13 (count=1)
+  20:21 -> 20:38 (count=0)
+  21:20 -> 21:28 (count=0)
+  21:29 -> 23:18 (count=0)
+  23:18 -> 23:19 (count=0)
+  24:17 -> 25:14 (count=0)
+  25:14 -> 33:9 (count=1)
+  35:13 -> 35:30 (count=0)
+  36:12 -> 36:20 (count=0)
+  36:21 -> 38:10 (count=0)
+  38:10 -> 38:11 (count=0)
+  39:9 -> 40:6 (count=0)
+  40:6 -> 60:13 (count=1)
+  62:21 -> 62:38 (count=1)
+  63:20 -> 63:28 (count=1)
+  63:29 -> 65:18 (count=0)
+  65:18 -> 65:19 (count=1)
+  66:17 -> 67:14 (count=1)
+  67:14 -> 75:9 (count=1)
+  77:13 -> 77:30 (count=1)
+  78:12 -> 78:20 (count=1)
+  78:21 -> 80:10 (count=0)
+  80:10 -> 80:11 (count=1)
+  81:9 -> 82:6 (count=1)
+  82:6 -> 93:2 (count=1)
+Segment at 3:11 (count = 1), RegionEntry
+Segment at 18:13 (count = 0), Skipped
+Segment at 20:21 (count = 0), RegionEntry
+Segment at 20:38 (count = 0), Skipped
+Segment at 21:20 (count = 0), RegionEntry
+Segment at 21:28 (count = 0), Skipped
+Segment at 21:29 (count = 0), RegionEntry
+Segment at 23:18 (count = 0), RegionEntry
+Segment at 23:19 (count = 0), Skipped
+Segment at 24:17 (count = 0), RegionEntry
+Segment at 25:14 (count = 1), RegionEntry
+Segment at 33:9 (count = 0), Skipped
+Segment at 35:13 (count = 0), RegionEntry
+Segment at 35:30 (count = 0), Skipped
+Segment at 36:12 (count = 0), RegionEntry
+Segment at 36:20 (count = 0), Skipped
+Segment at 36:21 (count = 0), RegionEntry
+Segment at 38:10 (count = 0), RegionEntry
+Segment at 38:11 (count = 0), Skipped
+Segment at 39:9 (count = 0), RegionEntry
+Segment at 40:6 (count = 1), RegionEntry
+Segment at 60:13 (count = 0), Skipped
+Segment at 62:21 (count = 1), RegionEntry
+Segment at 62:38 (count = 0), Skipped
+Segment at 63:20 (count = 1), RegionEntry
+Segment at 63:28 (count = 0), Skipped
+Segment at 63:29 (count = 0), RegionEntry
+Segment at 65:18 (count = 1), RegionEntry
+Segment at 65:19 (count = 0), Skipped
+Segment at 66:17 (count = 1), RegionEntry
+Segment at 67:14 (count = 1), RegionEntry
+Segment at 75:9 (count = 0), Skipped
+Segment at 77:13 (count = 1), RegionEntry
+Segment at 77:30 (count = 0), Skipped
+Segment at 78:12 (count = 1), RegionEntry
+Segment at 78:20 (count = 0), Skipped
+Segment at 78:21 (count = 0), RegionEntry
+Segment at 80:10 (count = 1), RegionEntry
+Segment at 80:11 (count = 0), Skipped
+Segment at 81:9 (count = 1), RegionEntry
+Segment at 82:6 (count = 1), RegionEntry
+Segment at 93:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.drop_trait.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.drop_trait.txt
new file mode 100644
index 00000000000..e416a84820a
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.drop_trait.txt
@@ -0,0 +1,24 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/drop_trait.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/drop_trait 
+Counter in file 0 9:24 -> 11:6, #1
+Counter in file 0 15:9 -> 17:42, #1
+Counter in file 0 19:8 -> 19:12, (#1 + 0)
+Counter in file 0 20:9 -> 21:22, #2
+Counter in file 0 27:1 -> 27:2, #4
+Counter in file 0 27:1 -> 27:2, (#2 + 0)
+Emitting segments for file: ../coverage/drop_trait.rs
+Combined regions:
+  9:24 -> 11:6 (count=2)
+  15:9 -> 17:42 (count=1)
+  19:8 -> 19:12 (count=1)
+  20:9 -> 21:22 (count=1)
+  27:1 -> 27:2 (count=2)
+Segment at 9:24 (count = 2), RegionEntry
+Segment at 11:6 (count = 0), Skipped
+Segment at 15:9 (count = 1), RegionEntry
+Segment at 17:42 (count = 0), Skipped
+Segment at 19:8 (count = 1), RegionEntry
+Segment at 19:12 (count = 0), Skipped
+Segment at 20:9 (count = 1), RegionEntry
+Segment at 21:22 (count = 0), Skipped
+Segment at 27:1 (count = 2), RegionEntry
+Segment at 27:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.generics.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.generics.txt
new file mode 100644
index 00000000000..9e33b48fc29
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.generics.txt
@@ -0,0 +1,50 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/generics.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/generics 
+Counter in file 0 17:24 -> 19:6, #1
+Counter in file 0 17:24 -> 19:6, #1
+Counter in file 0 23:9 -> 28:28, #1
+Counter in file 0 30:8 -> 30:12, (#1 + 0)
+Counter in file 0 31:9 -> 32:22, #2
+Counter in file 0 38:1 -> 38:2, #4
+Counter in file 0 38:1 -> 38:2, (#2 + 0)
+Counter in file 0 10:49 -> 12:6, #1
+Counter in file 0 10:49 -> 12:6, #1
+Emitting segments for file: ../coverage/generics.rs
+Combined regions:
+  10:49 -> 12:6 (count=3)
+  17:24 -> 19:6 (count=2)
+  23:9 -> 28:28 (count=1)
+  30:8 -> 30:12 (count=1)
+  31:9 -> 32:22 (count=1)
+  38:1 -> 38:2 (count=2)
+Segment at 10:49 (count = 3), RegionEntry
+Segment at 12:6 (count = 0), Skipped
+Segment at 17:24 (count = 2), RegionEntry
+Segment at 19:6 (count = 0), Skipped
+Segment at 23:9 (count = 1), RegionEntry
+Segment at 28:28 (count = 0), Skipped
+Segment at 30:8 (count = 1), RegionEntry
+Segment at 30:12 (count = 0), Skipped
+Segment at 31:9 (count = 1), RegionEntry
+Segment at 32:22 (count = 0), Skipped
+Segment at 38:1 (count = 2), RegionEntry
+Segment at 38:2 (count = 0), Skipped
+Emitting segments for function: _RNvMCs4fqI2P2rA04_8genericsINtB2_8FireworkdE12set_strengthB2_
+Combined regions:
+  10:49 -> 12:6 (count=2)
+Segment at 10:49 (count = 2), RegionEntry
+Segment at 12:6 (count = 0), Skipped
+Emitting segments for function: _RNvMCs4fqI2P2rA04_8genericsINtB2_8FireworklE12set_strengthB2_
+Combined regions:
+  10:49 -> 12:6 (count=1)
+Segment at 10:49 (count = 1), RegionEntry
+Segment at 12:6 (count = 0), Skipped
+Emitting segments for function: _RNvXs_Cs4fqI2P2rA04_8genericsINtB4_8FireworklENtNtNtCs7f2nZg1zwMz_4core3ops4drop4Drop4dropB4_
+Combined regions:
+  17:24 -> 19:6 (count=1)
+Segment at 17:24 (count = 1), RegionEntry
+Segment at 19:6 (count = 0), Skipped
+Emitting segments for function: _RNvXs_Cs4fqI2P2rA04_8genericsINtB4_8FireworkdENtNtNtCs7f2nZg1zwMz_4core3ops4drop4Drop4dropB4_
+Combined regions:
+  17:24 -> 19:6 (count=1)
+Segment at 17:24 (count = 1), RegionEntry
+Segment at 19:6 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.if.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.if.txt
new file mode 100644
index 00000000000..325e6985e30
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.if.txt
@@ -0,0 +1,22 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/if.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/if 
+Counter in file 0 8:5 -> 18:10, #1
+Counter in file 0 21:9 -> 21:16, (#1 + 0)
+Counter in file 0 22:5 -> 27:6, #2
+Counter in file 0 27:6 -> 27:7, #3
+Counter in file 0 28:1 -> 28:2, #4
+Emitting segments for file: ../coverage/if.rs
+Combined regions:
+  8:5 -> 18:10 (count=1)
+  21:9 -> 21:16 (count=1)
+  22:5 -> 27:6 (count=1)
+  27:6 -> 27:7 (count=0)
+  28:1 -> 28:2 (count=1)
+Segment at 8:5 (count = 1), RegionEntry
+Segment at 18:10 (count = 0), Skipped
+Segment at 21:9 (count = 1), RegionEntry
+Segment at 21:16 (count = 0), Skipped
+Segment at 22:5 (count = 1), RegionEntry
+Segment at 27:6 (count = 0), RegionEntry
+Segment at 27:7 (count = 0), Skipped
+Segment at 28:1 (count = 1), RegionEntry
+Segment at 28:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.if_else.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.if_else.txt
new file mode 100644
index 00000000000..a620bf8ae4a
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.if_else.txt
@@ -0,0 +1,38 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/if_else.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/if_else 
+Counter in file 0 7:9 -> 11:16, #1
+Counter in file 0 12:5 -> 17:6, #2
+Counter in file 0 20:9 -> 22:16, #3
+Counter in file 0 23:6 -> 23:7, (#2 + 0)
+Counter in file 0 26:9 -> 26:16, #4
+Counter in file 0 27:5 -> 32:6, #5
+Counter in file 0 34:5 -> 39:6, #6
+Counter in file 0 39:6 -> 39:7, (#5 + 0)
+Counter in file 0 40:1 -> 40:2, #7
+Emitting segments for file: ../coverage/if_else.rs
+Combined regions:
+  7:9 -> 11:16 (count=1)
+  12:5 -> 17:6 (count=1)
+  20:9 -> 22:16 (count=0)
+  23:6 -> 23:7 (count=1)
+  26:9 -> 26:16 (count=1)
+  27:5 -> 32:6 (count=1)
+  34:5 -> 39:6 (count=0)
+  39:6 -> 39:7 (count=1)
+  40:1 -> 40:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 11:16 (count = 0), Skipped
+Segment at 12:5 (count = 1), RegionEntry
+Segment at 17:6 (count = 0), Skipped
+Segment at 20:9 (count = 0), RegionEntry
+Segment at 22:16 (count = 0), Skipped
+Segment at 23:6 (count = 1), RegionEntry
+Segment at 23:7 (count = 0), Skipped
+Segment at 26:9 (count = 1), RegionEntry
+Segment at 26:16 (count = 0), Skipped
+Segment at 27:5 (count = 1), RegionEntry
+Segment at 32:6 (count = 0), Skipped
+Segment at 34:5 (count = 0), RegionEntry
+Segment at 39:6 (count = 1), RegionEntry
+Segment at 39:7 (count = 0), Skipped
+Segment at 40:1 (count = 1), RegionEntry
+Segment at 40:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.inner_items.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.inner_items.txt
new file mode 100644
index 00000000000..ea6db9452a7
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.inner_items.txt
@@ -0,0 +1,61 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/inner_items.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/inner_items 
+Counter in file 0 19:13 -> 19:18, #1
+Counter in file 0 20:13 -> 20:14, #2
+Counter in file 0 20:17 -> 20:22, (#1 + 0)
+Counter in file 0 21:9 -> 22:6, (#2 + 0)
+Counter in file 0 7:9 -> 9:26, #1
+Counter in file 0 10:8 -> 10:15, (#1 + 0)
+Counter in file 0 10:16 -> 12:6, #2
+Counter in file 0 12:6 -> 12:7, #3
+Counter in file 0 48:8 -> 48:15, #4
+Counter in file 0 48:16 -> 50:6, #5
+Counter in file 0 50:6 -> 50:7, #6
+Counter in file 0 52:9 -> 57:2, #7
+Counter in file 0 33:42 -> 36:10, #1
+Counter in file 0 41:37 -> 41:41, #1
+Counter in file 0 42:13 -> 43:10, #2
+Emitting segments for file: ../coverage/inner_items.rs
+Combined regions:
+  7:9 -> 9:26 (count=1)
+  10:8 -> 10:15 (count=1)
+  10:16 -> 12:6 (count=1)
+  12:6 -> 12:7 (count=0)
+  19:13 -> 19:18 (count=3)
+  20:13 -> 20:14 (count=3)
+  20:17 -> 20:22 (count=3)
+  21:9 -> 22:6 (count=3)
+  33:42 -> 36:10 (count=1)
+  41:37 -> 41:41 (count=1)
+  42:13 -> 43:10 (count=1)
+  48:8 -> 48:15 (count=1)
+  48:16 -> 50:6 (count=1)
+  50:6 -> 50:7 (count=0)
+  52:9 -> 57:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 9:26 (count = 0), Skipped
+Segment at 10:8 (count = 1), RegionEntry
+Segment at 10:15 (count = 0), Skipped
+Segment at 10:16 (count = 1), RegionEntry
+Segment at 12:6 (count = 0), RegionEntry
+Segment at 12:7 (count = 0), Skipped
+Segment at 19:13 (count = 3), RegionEntry
+Segment at 19:18 (count = 0), Skipped
+Segment at 20:13 (count = 3), RegionEntry
+Segment at 20:14 (count = 0), Skipped
+Segment at 20:17 (count = 3), RegionEntry
+Segment at 20:22 (count = 0), Skipped
+Segment at 21:9 (count = 3), RegionEntry
+Segment at 22:6 (count = 0), Skipped
+Segment at 33:42 (count = 1), RegionEntry
+Segment at 36:10 (count = 0), Skipped
+Segment at 41:37 (count = 1), RegionEntry
+Segment at 41:41 (count = 0), Skipped
+Segment at 42:13 (count = 1), RegionEntry
+Segment at 43:10 (count = 0), Skipped
+Segment at 48:8 (count = 1), RegionEntry
+Segment at 48:15 (count = 0), Skipped
+Segment at 48:16 (count = 1), RegionEntry
+Segment at 50:6 (count = 0), RegionEntry
+Segment at 50:7 (count = 0), Skipped
+Segment at 52:9 (count = 1), RegionEntry
+Segment at 57:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.lazy_boolean.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.lazy_boolean.txt
new file mode 100644
index 00000000000..0f54f4904b0
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.lazy_boolean.txt
@@ -0,0 +1,138 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/lazy_boolean.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/lazy_boolean 
+Counter in file 0 7:9 -> 9:42, #1
+Counter in file 0 10:8 -> 10:15, (#1 + 0)
+Counter in file 0 10:16 -> 14:6, #2
+Counter in file 0 14:6 -> 14:7, #3
+Counter in file 0 16:9 -> 16:17, #4
+Counter in file 0 18:13 -> 18:18, #5
+Counter in file 0 20:13 -> 20:18, #6
+Counter in file 0 20:18 -> 20:19, #7
+Counter in file 0 20:18 -> 20:19, #8
+Counter in file 0 23:9 -> 23:17, #9
+Counter in file 0 25:13 -> 25:18, (#4 + 0)
+Counter in file 0 27:13 -> 27:18, #10
+Counter in file 0 27:18 -> 27:19, #11
+Counter in file 0 27:18 -> 27:19, #12
+Counter in file 0 29:9 -> 29:17, #13
+Counter in file 0 29:20 -> 29:25, (#9 + 0)
+Counter in file 0 29:29 -> 29:34, #14
+Counter in file 0 29:34 -> 29:35, #15
+Counter in file 0 29:34 -> 29:35, #16
+Counter in file 0 30:9 -> 30:17, #17
+Counter in file 0 30:20 -> 30:25, (#13 + 0)
+Counter in file 0 30:29 -> 30:34, #18
+Counter in file 0 30:34 -> 30:35, #19
+Counter in file 0 30:34 -> 30:35, #20
+Counter in file 0 33:9 -> 34:16, (#17 + 0)
+Counter in file 0 35:5 -> 38:6, #21
+Counter in file 0 38:6 -> 38:7, #22
+Counter in file 0 41:9 -> 41:16, #23
+Counter in file 0 42:5 -> 45:6, #24
+Counter in file 0 47:5 -> 50:6, #25
+Counter in file 0 50:6 -> 50:7, (#24 + 0)
+Counter in file 0 52:8 -> 52:16, #26
+Counter in file 0 52:17 -> 54:6, #27
+Counter in file 0 54:6 -> 54:7, #28
+Counter in file 0 56:8 -> 56:15, #29
+Counter in file 0 56:16 -> 58:6, #30
+Counter in file 0 58:12 -> 60:6, #31
+Counter in file 0 60:6 -> 60:7, (#30 + 0)
+Counter in file 0 61:1 -> 61:2, #32
+Emitting segments for file: ../coverage/lazy_boolean.rs
+Combined regions:
+  7:9 -> 9:42 (count=1)
+  10:8 -> 10:15 (count=1)
+  10:16 -> 14:6 (count=1)
+  14:6 -> 14:7 (count=0)
+  16:9 -> 16:17 (count=1)
+  18:13 -> 18:18 (count=1)
+  20:13 -> 20:18 (count=0)
+  20:18 -> 20:19 (count=1)
+  23:9 -> 23:17 (count=1)
+  25:13 -> 25:18 (count=1)
+  27:13 -> 27:18 (count=1)
+  27:18 -> 27:19 (count=1)
+  29:9 -> 29:17 (count=1)
+  29:20 -> 29:25 (count=1)
+  29:29 -> 29:34 (count=1)
+  29:34 -> 29:35 (count=1)
+  30:9 -> 30:17 (count=1)
+  30:20 -> 30:25 (count=1)
+  30:29 -> 30:34 (count=0)
+  30:34 -> 30:35 (count=1)
+  33:9 -> 34:16 (count=1)
+  35:5 -> 38:6 (count=0)
+  38:6 -> 38:7 (count=1)
+  41:9 -> 41:16 (count=1)
+  42:5 -> 45:6 (count=1)
+  47:5 -> 50:6 (count=0)
+  50:6 -> 50:7 (count=1)
+  52:8 -> 52:16 (count=1)
+  52:17 -> 54:6 (count=0)
+  54:6 -> 54:7 (count=1)
+  56:8 -> 56:15 (count=1)
+  56:16 -> 58:6 (count=1)
+  58:12 -> 60:6 (count=0)
+  60:6 -> 60:7 (count=1)
+  61:1 -> 61:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 9:42 (count = 0), Skipped
+Segment at 10:8 (count = 1), RegionEntry
+Segment at 10:15 (count = 0), Skipped
+Segment at 10:16 (count = 1), RegionEntry
+Segment at 14:6 (count = 0), RegionEntry
+Segment at 14:7 (count = 0), Skipped
+Segment at 16:9 (count = 1), RegionEntry
+Segment at 16:17 (count = 0), Skipped
+Segment at 18:13 (count = 1), RegionEntry
+Segment at 18:18 (count = 0), Skipped
+Segment at 20:13 (count = 0), RegionEntry
+Segment at 20:18 (count = 1), RegionEntry
+Segment at 20:19 (count = 0), Skipped
+Segment at 23:9 (count = 1), RegionEntry
+Segment at 23:17 (count = 0), Skipped
+Segment at 25:13 (count = 1), RegionEntry
+Segment at 25:18 (count = 0), Skipped
+Segment at 27:13 (count = 1), RegionEntry
+Segment at 27:18 (count = 1), RegionEntry
+Segment at 27:19 (count = 0), Skipped
+Segment at 29:9 (count = 1), RegionEntry
+Segment at 29:17 (count = 0), Skipped
+Segment at 29:20 (count = 1), RegionEntry
+Segment at 29:25 (count = 0), Skipped
+Segment at 29:29 (count = 1), RegionEntry
+Segment at 29:34 (count = 1), RegionEntry
+Segment at 29:35 (count = 0), Skipped
+Segment at 30:9 (count = 1), RegionEntry
+Segment at 30:17 (count = 0), Skipped
+Segment at 30:20 (count = 1), RegionEntry
+Segment at 30:25 (count = 0), Skipped
+Segment at 30:29 (count = 0), RegionEntry
+Segment at 30:34 (count = 1), RegionEntry
+Segment at 30:35 (count = 0), Skipped
+Segment at 33:9 (count = 1), RegionEntry
+Segment at 34:16 (count = 0), Skipped
+Segment at 35:5 (count = 0), RegionEntry
+Segment at 38:6 (count = 1), RegionEntry
+Segment at 38:7 (count = 0), Skipped
+Segment at 41:9 (count = 1), RegionEntry
+Segment at 41:16 (count = 0), Skipped
+Segment at 42:5 (count = 1), RegionEntry
+Segment at 45:6 (count = 0), Skipped
+Segment at 47:5 (count = 0), RegionEntry
+Segment at 50:6 (count = 1), RegionEntry
+Segment at 50:7 (count = 0), Skipped
+Segment at 52:8 (count = 1), RegionEntry
+Segment at 52:16 (count = 0), Skipped
+Segment at 52:17 (count = 0), RegionEntry
+Segment at 54:6 (count = 1), RegionEntry
+Segment at 54:7 (count = 0), Skipped
+Segment at 56:8 (count = 1), RegionEntry
+Segment at 56:15 (count = 0), Skipped
+Segment at 56:16 (count = 1), RegionEntry
+Segment at 58:6 (count = 0), Skipped
+Segment at 58:12 (count = 0), RegionEntry
+Segment at 60:6 (count = 1), RegionEntry
+Segment at 60:7 (count = 0), Skipped
+Segment at 61:1 (count = 1), RegionEntry
+Segment at 61:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.loop_break_value.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.loop_break_value.txt
new file mode 100644
index 00000000000..3f5fc4a4401
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.loop_break_value.txt
@@ -0,0 +1,7 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/loop_break_value.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/loop_break_value 
+Counter in file 0 3:11 -> 13:2, #1
+Emitting segments for file: ../coverage/loop_break_value.rs
+Combined regions:
+  3:11 -> 13:2 (count=1)
+Segment at 3:11 (count = 1), RegionEntry
+Segment at 13:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.loops_and_branches.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.loops_and_branches.txt
new file mode 100644
index 00000000000..ca3b1d61343
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.loops_and_branches.txt
@@ -0,0 +1,39 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/loops_and_branches.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/loops_and_branches 
+Counter in file 0 10:12 -> 10:16, #1
+Counter in file 0 11:16 -> 11:21, #2
+Counter in file 0 14:14 -> 14:15, #6
+Counter in file 0 15:13 -> 15:31, #7
+Counter in file 0 15:31 -> 15:32, #8
+Counter in file 0 17:10 -> 17:11, #10
+Counter in file 0 18:9 -> 18:15, #11
+Counter in file 0 19:5 -> 19:6, #12
+Counter in file 0 19:5 -> 19:6, (#8 + 0)
+Counter in file 0 22:11 -> 25:2, #1
+Emitting segments for file: ../coverage/loops_and_branches.rs
+Combined regions:
+  10:12 -> 10:16 (count=1)
+  11:16 -> 11:21 (count=1)
+  14:14 -> 14:15 (count=1)
+  15:13 -> 15:31 (count=1)
+  15:31 -> 15:32 (count=0)
+  17:10 -> 17:11 (count=1)
+  18:9 -> 18:15 (count=1)
+  19:5 -> 19:6 (count=1)
+  22:11 -> 25:2 (count=1)
+Segment at 10:12 (count = 1), RegionEntry
+Segment at 10:16 (count = 0), Skipped
+Segment at 11:16 (count = 1), RegionEntry
+Segment at 11:21 (count = 0), Skipped
+Segment at 14:14 (count = 1), RegionEntry
+Segment at 14:15 (count = 0), Skipped
+Segment at 15:13 (count = 1), RegionEntry
+Segment at 15:31 (count = 0), RegionEntry
+Segment at 15:32 (count = 0), Skipped
+Segment at 17:10 (count = 1), RegionEntry
+Segment at 17:11 (count = 0), Skipped
+Segment at 18:9 (count = 1), RegionEntry
+Segment at 18:15 (count = 0), Skipped
+Segment at 19:5 (count = 1), RegionEntry
+Segment at 19:6 (count = 0), Skipped
+Segment at 22:11 (count = 1), RegionEntry
+Segment at 25:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.nested_loops.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.nested_loops.txt
new file mode 100644
index 00000000000..9c9c46a0834
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.nested_loops.txt
@@ -0,0 +1,76 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/nested_loops.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/nested_loops 
+Counter in file 0 2:9 -> 3:27, #1
+Counter in file 0 5:19 -> 5:32, #2
+Counter in file 0 6:13 -> 7:24, #3
+Counter in file 0 8:13 -> 8:14, #4
+Counter in file 0 8:18 -> 8:23, #5
+Counter in file 0 9:16 -> 9:22, (#4 + 0)
+Counter in file 0 10:17 -> 10:22, #6
+Counter in file 0 12:13 -> 12:19, #7
+Counter in file 0 13:13 -> 13:19, #8
+Counter in file 0 14:16 -> 14:22, (#8 + 0)
+Counter in file 0 15:17 -> 16:27, #9
+Counter in file 0 17:21 -> 17:33, #10
+Counter in file 0 19:21 -> 21:14, #11
+Counter in file 0 21:14 -> 21:15, #12
+Counter in file 0 22:10 -> 22:11, #13
+Counter in file 0 22:10 -> 22:11, (#3 + 0)
+Counter in file 0 23:9 -> 23:23, #14
+Counter in file 0 24:6 -> 24:7, #15
+Counter in file 0 24:6 -> 24:7, (#1 + 0)
+Counter in file 0 25:1 -> 25:2, #16
+Emitting segments for file: ../coverage/nested_loops.rs
+Combined regions:
+  2:9 -> 3:27 (count=1)
+  5:19 -> 5:32 (count=1)
+  6:13 -> 7:24 (count=1)
+  8:13 -> 8:14 (count=3)
+  8:18 -> 8:23 (count=3)
+  9:16 -> 9:22 (count=3)
+  10:17 -> 10:22 (count=0)
+  12:13 -> 12:19 (count=3)
+  13:13 -> 13:19 (count=3)
+  14:16 -> 14:22 (count=3)
+  15:17 -> 16:27 (count=1)
+  17:21 -> 17:33 (count=1)
+  19:21 -> 21:14 (count=0)
+  21:14 -> 21:15 (count=2)
+  22:10 -> 22:11 (count=3)
+  23:9 -> 23:23 (count=0)
+  24:6 -> 24:7 (count=1)
+  25:1 -> 25:2 (count=1)
+Segment at 2:9 (count = 1), RegionEntry
+Segment at 3:27 (count = 0), Skipped
+Segment at 5:19 (count = 1), RegionEntry
+Segment at 5:32 (count = 0), Skipped
+Segment at 6:13 (count = 1), RegionEntry
+Segment at 7:24 (count = 0), Skipped
+Segment at 8:13 (count = 3), RegionEntry
+Segment at 8:14 (count = 0), Skipped
+Segment at 8:18 (count = 3), RegionEntry
+Segment at 8:23 (count = 0), Skipped
+Segment at 9:16 (count = 3), RegionEntry
+Segment at 9:22 (count = 0), Skipped
+Segment at 10:17 (count = 0), RegionEntry
+Segment at 10:22 (count = 0), Skipped
+Segment at 12:13 (count = 3), RegionEntry
+Segment at 12:19 (count = 0), Skipped
+Segment at 13:13 (count = 3), RegionEntry
+Segment at 13:19 (count = 0), Skipped
+Segment at 14:16 (count = 3), RegionEntry
+Segment at 14:22 (count = 0), Skipped
+Segment at 15:17 (count = 1), RegionEntry
+Segment at 16:27 (count = 0), Skipped
+Segment at 17:21 (count = 1), RegionEntry
+Segment at 17:33 (count = 0), Skipped
+Segment at 19:21 (count = 0), RegionEntry
+Segment at 21:14 (count = 2), RegionEntry
+Segment at 21:15 (count = 0), Skipped
+Segment at 22:10 (count = 3), RegionEntry
+Segment at 22:11 (count = 0), Skipped
+Segment at 23:9 (count = 0), RegionEntry
+Segment at 23:23 (count = 0), Skipped
+Segment at 24:6 (count = 1), RegionEntry
+Segment at 24:7 (count = 0), Skipped
+Segment at 25:1 (count = 1), RegionEntry
+Segment at 25:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.partial_eq_counter_without_region.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.partial_eq_counter_without_region.txt
new file mode 100644
index 00000000000..dbcaa57b4b2
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.partial_eq_counter_without_region.txt
@@ -0,0 +1,68 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/partial_eq_counter_without_region.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/partial_eq_counter_without_region 
+Counter in file 0 4:39 -> 4:49, #1
+Counter in file 0 4:39 -> 4:49, #2
+Counter in file 0 4:39 -> 4:49, #3
+Counter in file 0 4:39 -> 4:49, #4
+Counter in file 0 4:48 -> 4:49, #5
+Counter in file 0 8:5 -> 8:17, #1
+Counter in file 0 21:11 -> 26:2, #1
+Counter in file 0 4:39 -> 4:40, #1
+Counter in file 0 4:48 -> 4:49, (#1 + 0)
+Counter in file 0 7:5 -> 7:6, #1
+Counter in file 0 8:5 -> 8:17, #1
+Counter in file 0 4:39 -> 4:40, #1
+Counter in file 0 4:48 -> 4:49, (#1 + 0)
+Counter in file 0 4:24 -> 4:33, #1
+Counter in file 0 4:24 -> 4:33, #2
+Counter in file 0 4:24 -> 4:33, #3
+Counter in file 0 4:24 -> 4:33, #4
+Counter in file 0 4:32 -> 4:33, #5
+Counter in file 0 4:51 -> 4:54, #1
+Counter in file 0 4:51 -> 4:54, #2
+Counter in file 0 4:51 -> 4:54, #3
+Counter in file 0 4:51 -> 4:54, #4
+Counter in file 0 4:53 -> 4:54, #5
+Counter in file 0 13:9 -> 18:6, #1
+Counter in file 0 7:5 -> 7:6, #1
+Counter in file 0 4:39 -> 4:40, #1
+Counter in file 0 4:48 -> 4:49, (#1 + 0)
+Counter in file 0 7:5 -> 7:6, #1
+Counter in file 0 4:10 -> 4:15, #1
+Counter in file 0 4:35 -> 4:37, #1
+Counter in file 0 7:5 -> 7:6, #1
+Counter in file 0 8:5 -> 8:17, #1
+Counter in file 0 4:17 -> 4:22, #1
+Counter in file 0 8:5 -> 8:17, #1
+Counter in file 0 4:39 -> 4:40, #1
+Counter in file 0 4:48 -> 4:49, (#1 + 0)
+Counter in file 0 4:24 -> 4:33, #1
+Counter in file 0 4:24 -> 4:33, #2
+Counter in file 0 4:32 -> 4:33, #3
+Emitting segments for file: ../coverage/partial_eq_counter_without_region.rs
+Combined regions:
+  4:17 -> 4:22 (count=2)
+  4:39 -> 4:40 (count=1)
+  4:48 -> 4:49 (count=1)
+  7:5 -> 7:6 (count=1)
+  13:9 -> 18:6 (count=2)
+  21:11 -> 26:2 (count=1)
+Segment at 4:17 (count = 2), RegionEntry
+Segment at 4:22 (count = 0), Skipped
+Segment at 4:39 (count = 1), RegionEntry
+Segment at 4:40 (count = 0), Skipped
+Segment at 4:48 (count = 1), RegionEntry
+Segment at 4:49 (count = 0), Skipped
+Segment at 7:5 (count = 1), RegionEntry
+Segment at 7:6 (count = 0), Skipped
+Segment at 13:9 (count = 2), RegionEntry
+Segment at 18:6 (count = 0), Skipped
+Segment at 21:11 (count = 1), RegionEntry
+Segment at 26:2 (count = 0), Skipped
+Emitting segments for function: _RNvXs0_Cs4fqI2P2rA04_33partial_eq_counter_without_regionNtB5_7VersionNtNtCs7f2nZg1zwMz_4core3cmp10PartialOrd2ltB5_
+Combined regions:
+  4:39 -> 4:40 (count=1)
+  4:48 -> 4:49 (count=1)
+Segment at 4:39 (count = 1), RegionEntry
+Segment at 4:40 (count = 0), Skipped
+Segment at 4:48 (count = 1), RegionEntry
+Segment at 4:49 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.simple_loop.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.simple_loop.txt
new file mode 100644
index 00000000000..90e09099dcc
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.simple_loop.txt
@@ -0,0 +1,38 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/simple_loop.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/simple_loop 
+Counter in file 0 7:9 -> 9:26, #1
+Counter in file 0 12:9 -> 12:16, (#1 + 0)
+Counter in file 0 13:5 -> 18:6, #2
+Counter in file 0 18:6 -> 18:7, #3
+Counter in file 0 23:13 -> 25:14, #4
+Counter in file 0 27:13 -> 27:18, #5
+Counter in file 0 30:9 -> 32:10, #6
+Counter in file 0 34:6 -> 34:7, #7
+Counter in file 0 35:1 -> 35:2, (#5 + 0)
+Emitting segments for file: ../coverage/simple_loop.rs
+Combined regions:
+  7:9 -> 9:26 (count=1)
+  12:9 -> 12:16 (count=1)
+  13:5 -> 18:6 (count=1)
+  18:6 -> 18:7 (count=0)
+  23:13 -> 25:14 (count=11)
+  27:13 -> 27:18 (count=1)
+  30:9 -> 32:10 (count=10)
+  34:6 -> 34:7 (count=1)
+  35:1 -> 35:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 9:26 (count = 0), Skipped
+Segment at 12:9 (count = 1), RegionEntry
+Segment at 12:16 (count = 0), Skipped
+Segment at 13:5 (count = 1), RegionEntry
+Segment at 18:6 (count = 0), RegionEntry
+Segment at 18:7 (count = 0), Skipped
+Segment at 23:13 (count = 11), RegionEntry
+Segment at 25:14 (count = 0), Skipped
+Segment at 27:13 (count = 1), RegionEntry
+Segment at 27:18 (count = 0), Skipped
+Segment at 30:9 (count = 10), RegionEntry
+Segment at 32:10 (count = 0), Skipped
+Segment at 34:6 (count = 1), RegionEntry
+Segment at 34:7 (count = 0), Skipped
+Segment at 35:1 (count = 1), RegionEntry
+Segment at 35:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.simple_match.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.simple_match.txt
new file mode 100644
index 00000000000..39a986332cd
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.simple_match.txt
@@ -0,0 +1,58 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/simple_match.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/simple_match 
+Counter in file 0 7:9 -> 9:26, #1
+Counter in file 0 10:8 -> 10:15, (#1 + 0)
+Counter in file 0 10:16 -> 12:6, #2
+Counter in file 0 12:6 -> 12:7, #3
+Counter in file 0 15:9 -> 15:10, #4
+Counter in file 0 17:9 -> 17:13, #5
+Counter in file 0 22:13 -> 22:22, (#4 + 0)
+Counter in file 0 24:13 -> 24:14, #6
+Counter in file 0 26:17 -> 28:18, (#4 + 0)
+Counter in file 0 28:18 -> 28:19, #7
+Counter in file 0 30:13 -> 37:14, (#6 + 0)
+Counter in file 0 40:13 -> 40:15, #8
+Counter in file 0 42:6 -> 42:7, #9
+Counter in file 0 42:6 -> 42:7, #10
+Counter in file 0 43:1 -> 43:2, #11
+Emitting segments for file: ../coverage/simple_match.rs
+Combined regions:
+  7:9 -> 9:26 (count=1)
+  10:8 -> 10:15 (count=1)
+  10:16 -> 12:6 (count=1)
+  12:6 -> 12:7 (count=0)
+  15:9 -> 15:10 (count=2)
+  17:9 -> 17:13 (count=3)
+  22:13 -> 22:22 (count=2)
+  24:13 -> 24:14 (count=1)
+  26:17 -> 28:18 (count=2)
+  28:18 -> 28:19 (count=1)
+  30:13 -> 37:14 (count=1)
+  40:13 -> 40:15 (count=1)
+  42:6 -> 42:7 (count=3)
+  43:1 -> 43:2 (count=1)
+Segment at 7:9 (count = 1), RegionEntry
+Segment at 9:26 (count = 0), Skipped
+Segment at 10:8 (count = 1), RegionEntry
+Segment at 10:15 (count = 0), Skipped
+Segment at 10:16 (count = 1), RegionEntry
+Segment at 12:6 (count = 0), RegionEntry
+Segment at 12:7 (count = 0), Skipped
+Segment at 15:9 (count = 2), RegionEntry
+Segment at 15:10 (count = 0), Skipped
+Segment at 17:9 (count = 3), RegionEntry
+Segment at 17:13 (count = 0), Skipped
+Segment at 22:13 (count = 2), RegionEntry
+Segment at 22:22 (count = 0), Skipped
+Segment at 24:13 (count = 1), RegionEntry
+Segment at 24:14 (count = 0), Skipped
+Segment at 26:17 (count = 2), RegionEntry
+Segment at 28:18 (count = 1), RegionEntry
+Segment at 28:19 (count = 0), Skipped
+Segment at 30:13 (count = 1), RegionEntry
+Segment at 37:14 (count = 0), Skipped
+Segment at 40:13 (count = 1), RegionEntry
+Segment at 40:15 (count = 0), Skipped
+Segment at 42:6 (count = 3), RegionEntry
+Segment at 42:7 (count = 0), Skipped
+Segment at 43:1 (count = 1), RegionEntry
+Segment at 43:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.tight_infinite_loop.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.tight_infinite_loop.txt
new file mode 100644
index 00000000000..a0687815fb9
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.tight_infinite_loop.txt
@@ -0,0 +1,11 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/tight_infinite_loop.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/tight_infinite_loop 
+Counter in file 0 2:8 -> 2:13, #1
+Counter in file 0 5:1 -> 5:2, #4
+Emitting segments for file: ../coverage/tight_infinite_loop.rs
+Combined regions:
+  2:8 -> 2:13 (count=1)
+  5:1 -> 5:2 (count=1)
+Segment at 2:8 (count = 1), RegionEntry
+Segment at 2:13 (count = 0), Skipped
+Segment at 5:1 (count = 1), RegionEntry
+Segment at 5:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.try_error_result.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.try_error_result.txt
new file mode 100644
index 00000000000..10fc52354b9
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.try_error_result.txt
@@ -0,0 +1,72 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/try_error_result.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/try_error_result 
+Counter in file 0 13:9 -> 14:23, #1
+Counter in file 0 17:9 -> 17:10, #2
+Counter in file 0 19:9 -> 19:14, #3
+Counter in file 0 21:9 -> 25:26, #4
+Counter in file 0 27:13 -> 27:41, #5
+Counter in file 0 27:41 -> 27:42, #6
+Counter in file 0 31:13 -> 31:42, #7
+Counter in file 0 31:42 -> 31:43, #8
+Counter in file 0 32:10 -> 32:11, #9
+Counter in file 0 32:10 -> 32:11, #10
+Counter in file 0 33:6 -> 33:7, #11
+Counter in file 0 33:6 -> 33:7, (#1 + 0)
+Counter in file 0 34:5 -> 34:11, #12
+Counter in file 0 35:1 -> 35:2, #13
+Counter in file 0 35:1 -> 35:2, #14
+Counter in file 0 5:8 -> 5:20, #1
+Counter in file 0 6:9 -> 6:16, #2
+Counter in file 0 8:9 -> 8:15, #3
+Counter in file 0 9:6 -> 9:7, (#2 + 0)
+Counter in file 0 10:1 -> 10:2, #4
+Emitting segments for file: ../coverage/try_error_result.rs
+Combined regions:
+  5:8 -> 5:20 (count=6)
+  6:9 -> 6:16 (count=1)
+  8:9 -> 8:15 (count=5)
+  9:6 -> 9:7 (count=1)
+  10:1 -> 10:2 (count=6)
+  13:9 -> 14:23 (count=1)
+  17:9 -> 17:10 (count=6)
+  19:9 -> 19:14 (count=6)
+  21:9 -> 25:26 (count=6)
+  27:13 -> 27:41 (count=1)
+  27:41 -> 27:42 (count=1)
+  31:13 -> 31:42 (count=5)
+  31:42 -> 31:43 (count=0)
+  32:10 -> 32:11 (count=5)
+  33:6 -> 33:7 (count=6)
+  34:5 -> 34:11 (count=0)
+  35:1 -> 35:2 (count=2)
+Segment at 5:8 (count = 6), RegionEntry
+Segment at 5:20 (count = 0), Skipped
+Segment at 6:9 (count = 1), RegionEntry
+Segment at 6:16 (count = 0), Skipped
+Segment at 8:9 (count = 5), RegionEntry
+Segment at 8:15 (count = 0), Skipped
+Segment at 9:6 (count = 1), RegionEntry
+Segment at 9:7 (count = 0), Skipped
+Segment at 10:1 (count = 6), RegionEntry
+Segment at 10:2 (count = 0), Skipped
+Segment at 13:9 (count = 1), RegionEntry
+Segment at 14:23 (count = 0), Skipped
+Segment at 17:9 (count = 6), RegionEntry
+Segment at 17:10 (count = 0), Skipped
+Segment at 19:9 (count = 6), RegionEntry
+Segment at 19:14 (count = 0), Skipped
+Segment at 21:9 (count = 6), RegionEntry
+Segment at 25:26 (count = 0), Skipped
+Segment at 27:13 (count = 1), RegionEntry
+Segment at 27:41 (count = 1), RegionEntry
+Segment at 27:42 (count = 0), Skipped
+Segment at 31:13 (count = 5), RegionEntry
+Segment at 31:42 (count = 0), RegionEntry
+Segment at 31:43 (count = 0), Skipped
+Segment at 32:10 (count = 5), RegionEntry
+Segment at 32:11 (count = 0), Skipped
+Segment at 33:6 (count = 6), RegionEntry
+Segment at 33:7 (count = 0), Skipped
+Segment at 34:5 (count = 0), RegionEntry
+Segment at 34:11 (count = 0), Skipped
+Segment at 35:1 (count = 2), RegionEntry
+Segment at 35:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.various_conditions.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.various_conditions.txt
new file mode 100644
index 00000000000..567c8cd9b6d
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.various_conditions.txt
@@ -0,0 +1,240 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/various_conditions.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/various_conditions 
+Counter in file 0 4:9 -> 4:26, #1
+Counter in file 0 5:8 -> 5:12, (#1 + 0)
+Counter in file 0 5:13 -> 7:6, #2
+Counter in file 0 10:9 -> 10:10, #4
+Counter in file 0 10:16 -> 10:29, #5
+Counter in file 0 11:9 -> 12:10, #6
+Counter in file 0 13:15 -> 13:28, #7
+Counter in file 0 14:12 -> 14:25, #8
+Counter in file 0 14:29 -> 14:42, #9
+Counter in file 0 14:42 -> 14:43, #10
+Counter in file 0 14:42 -> 14:43, #11
+Counter in file 0 14:46 -> 14:60, #12
+Counter in file 0 14:60 -> 14:61, #13
+Counter in file 0 14:60 -> 14:61, #14
+Counter in file 0 14:61 -> 16:10, #15
+Counter in file 0 16:10 -> 16:11, #16
+Counter in file 0 17:9 -> 18:18, #17
+Counter in file 0 20:9 -> 20:15, #18
+Counter in file 0 23:9 -> 23:26, (#4 + 0)
+Counter in file 0 24:8 -> 24:12, (#4 + 0)
+Counter in file 0 24:13 -> 26:6, #19
+Counter in file 0 28:8 -> 28:21, #21
+Counter in file 0 29:9 -> 29:23, #22
+Counter in file 0 30:15 -> 30:28, #23
+Counter in file 0 31:12 -> 31:25, #24
+Counter in file 0 31:29 -> 31:42, #25
+Counter in file 0 31:42 -> 31:43, #26
+Counter in file 0 31:42 -> 31:43, #27
+Counter in file 0 31:46 -> 31:60, #28
+Counter in file 0 31:60 -> 31:61, #29
+Counter in file 0 31:60 -> 31:61, #30
+Counter in file 0 31:61 -> 33:10, #31
+Counter in file 0 33:10 -> 33:11, #32
+Counter in file 0 34:9 -> 34:23, #33
+Counter in file 0 36:9 -> 36:15, #34
+Counter in file 0 39:9 -> 39:26, #35
+Counter in file 0 40:8 -> 40:12, (#35 + 0)
+Counter in file 0 40:13 -> 42:6, #36
+Counter in file 0 44:9 -> 44:10, #38
+Counter in file 0 44:16 -> 44:29, #39
+Counter in file 0 45:9 -> 45:23, #40
+Counter in file 0 46:15 -> 46:28, #41
+Counter in file 0 47:12 -> 47:25, #42
+Counter in file 0 47:29 -> 47:42, #43
+Counter in file 0 47:42 -> 47:43, #44
+Counter in file 0 47:42 -> 47:43, #45
+Counter in file 0 47:46 -> 47:60, #46
+Counter in file 0 47:60 -> 47:61, #47
+Counter in file 0 47:60 -> 47:61, #48
+Counter in file 0 47:61 -> 49:10, #49
+Counter in file 0 49:10 -> 49:11, #50
+Counter in file 0 50:9 -> 50:23, #51
+Counter in file 0 52:13 -> 54:15, #52
+Counter in file 0 57:9 -> 57:10, #53
+Counter in file 0 57:16 -> 57:29, (#38 + 0)
+Counter in file 0 58:9 -> 58:23, #54
+Counter in file 0 59:15 -> 59:28, #55
+Counter in file 0 60:12 -> 60:25, #56
+Counter in file 0 60:29 -> 60:42, #57
+Counter in file 0 60:42 -> 60:43, #58
+Counter in file 0 60:42 -> 60:43, #59
+Counter in file 0 60:46 -> 60:60, #60
+Counter in file 0 60:60 -> 60:61, #61
+Counter in file 0 60:60 -> 60:61, #62
+Counter in file 0 60:61 -> 62:10, #63
+Counter in file 0 62:10 -> 62:11, #64
+Counter in file 0 63:9 -> 63:23, #65
+Counter in file 0 65:9 -> 65:15, #66
+Counter in file 0 67:1 -> 67:2, #67
+Counter in file 0 67:1 -> 67:2, #68
+Emitting segments for file: ../coverage/various_conditions.rs
+Combined regions:
+  4:9 -> 4:26 (count=1)
+  5:8 -> 5:12 (count=1)
+  5:13 -> 7:6 (count=1)
+  10:9 -> 10:10 (count=1)
+  10:16 -> 10:29 (count=1)
+  11:9 -> 12:10 (count=1)
+  13:15 -> 13:28 (count=0)
+  14:12 -> 14:25 (count=0)
+  14:29 -> 14:42 (count=0)
+  14:42 -> 14:43 (count=0)
+  14:46 -> 14:60 (count=0)
+  14:60 -> 14:61 (count=0)
+  14:61 -> 16:10 (count=0)
+  16:10 -> 16:11 (count=0)
+  17:9 -> 18:18 (count=0)
+  20:9 -> 20:15 (count=0)
+  23:9 -> 23:26 (count=1)
+  24:8 -> 24:12 (count=1)
+  24:13 -> 26:6 (count=1)
+  28:8 -> 28:21 (count=1)
+  29:9 -> 29:23 (count=1)
+  30:15 -> 30:28 (count=0)
+  31:12 -> 31:25 (count=0)
+  31:29 -> 31:42 (count=0)
+  31:42 -> 31:43 (count=0)
+  31:46 -> 31:60 (count=0)
+  31:60 -> 31:61 (count=0)
+  31:61 -> 33:10 (count=0)
+  33:10 -> 33:11 (count=0)
+  34:9 -> 34:23 (count=0)
+  36:9 -> 36:15 (count=0)
+  39:9 -> 39:26 (count=1)
+  40:8 -> 40:12 (count=1)
+  40:13 -> 42:6 (count=1)
+  44:9 -> 44:10 (count=0)
+  44:16 -> 44:29 (count=1)
+  45:9 -> 45:23 (count=0)
+  46:15 -> 46:28 (count=1)
+  47:12 -> 47:25 (count=0)
+  47:29 -> 47:42 (count=0)
+  47:42 -> 47:43 (count=0)
+  47:46 -> 47:60 (count=0)
+  47:60 -> 47:61 (count=0)
+  47:61 -> 49:10 (count=0)
+  49:10 -> 49:11 (count=0)
+  50:9 -> 50:23 (count=0)
+  52:13 -> 54:15 (count=1)
+  57:9 -> 57:10 (count=0)
+  57:16 -> 57:29 (count=0)
+  58:9 -> 58:23 (count=0)
+  59:15 -> 59:28 (count=0)
+  60:12 -> 60:25 (count=0)
+  60:29 -> 60:42 (count=0)
+  60:42 -> 60:43 (count=0)
+  60:46 -> 60:60 (count=0)
+  60:60 -> 60:61 (count=0)
+  60:61 -> 62:10 (count=0)
+  62:10 -> 62:11 (count=0)
+  63:9 -> 63:23 (count=0)
+  65:9 -> 65:15 (count=0)
+  67:1 -> 67:2 (count=2)
+Segment at 4:9 (count = 1), RegionEntry
+Segment at 4:26 (count = 0), Skipped
+Segment at 5:8 (count = 1), RegionEntry
+Segment at 5:12 (count = 0), Skipped
+Segment at 5:13 (count = 1), RegionEntry
+Segment at 7:6 (count = 0), Skipped
+Segment at 10:9 (count = 1), RegionEntry
+Segment at 10:10 (count = 0), Skipped
+Segment at 10:16 (count = 1), RegionEntry
+Segment at 10:29 (count = 0), Skipped
+Segment at 11:9 (count = 1), RegionEntry
+Segment at 12:10 (count = 0), Skipped
+Segment at 13:15 (count = 0), RegionEntry
+Segment at 13:28 (count = 0), Skipped
+Segment at 14:12 (count = 0), RegionEntry
+Segment at 14:25 (count = 0), Skipped
+Segment at 14:29 (count = 0), RegionEntry
+Segment at 14:42 (count = 0), RegionEntry
+Segment at 14:43 (count = 0), Skipped
+Segment at 14:46 (count = 0), RegionEntry
+Segment at 14:60 (count = 0), RegionEntry
+Segment at 14:61 (count = 0), RegionEntry
+Segment at 16:10 (count = 0), RegionEntry
+Segment at 16:11 (count = 0), Skipped
+Segment at 17:9 (count = 0), RegionEntry
+Segment at 18:18 (count = 0), Skipped
+Segment at 20:9 (count = 0), RegionEntry
+Segment at 20:15 (count = 0), Skipped
+Segment at 23:9 (count = 1), RegionEntry
+Segment at 23:26 (count = 0), Skipped
+Segment at 24:8 (count = 1), RegionEntry
+Segment at 24:12 (count = 0), Skipped
+Segment at 24:13 (count = 1), RegionEntry
+Segment at 26:6 (count = 0), Skipped
+Segment at 28:8 (count = 1), RegionEntry
+Segment at 28:21 (count = 0), Skipped
+Segment at 29:9 (count = 1), RegionEntry
+Segment at 29:23 (count = 0), Skipped
+Segment at 30:15 (count = 0), RegionEntry
+Segment at 30:28 (count = 0), Skipped
+Segment at 31:12 (count = 0), RegionEntry
+Segment at 31:25 (count = 0), Skipped
+Segment at 31:29 (count = 0), RegionEntry
+Segment at 31:42 (count = 0), RegionEntry
+Segment at 31:43 (count = 0), Skipped
+Segment at 31:46 (count = 0), RegionEntry
+Segment at 31:60 (count = 0), RegionEntry
+Segment at 31:61 (count = 0), RegionEntry
+Segment at 33:10 (count = 0), RegionEntry
+Segment at 33:11 (count = 0), Skipped
+Segment at 34:9 (count = 0), RegionEntry
+Segment at 34:23 (count = 0), Skipped
+Segment at 36:9 (count = 0), RegionEntry
+Segment at 36:15 (count = 0), Skipped
+Segment at 39:9 (count = 1), RegionEntry
+Segment at 39:26 (count = 0), Skipped
+Segment at 40:8 (count = 1), RegionEntry
+Segment at 40:12 (count = 0), Skipped
+Segment at 40:13 (count = 1), RegionEntry
+Segment at 42:6 (count = 0), Skipped
+Segment at 44:9 (count = 0), RegionEntry
+Segment at 44:10 (count = 0), Skipped
+Segment at 44:16 (count = 1), RegionEntry
+Segment at 44:29 (count = 0), Skipped
+Segment at 45:9 (count = 0), RegionEntry
+Segment at 45:23 (count = 0), Skipped
+Segment at 46:15 (count = 1), RegionEntry
+Segment at 46:28 (count = 0), Skipped
+Segment at 47:12 (count = 0), RegionEntry
+Segment at 47:25 (count = 0), Skipped
+Segment at 47:29 (count = 0), RegionEntry
+Segment at 47:42 (count = 0), RegionEntry
+Segment at 47:43 (count = 0), Skipped
+Segment at 47:46 (count = 0), RegionEntry
+Segment at 47:60 (count = 0), RegionEntry
+Segment at 47:61 (count = 0), RegionEntry
+Segment at 49:10 (count = 0), RegionEntry
+Segment at 49:11 (count = 0), Skipped
+Segment at 50:9 (count = 0), RegionEntry
+Segment at 50:23 (count = 0), Skipped
+Segment at 52:13 (count = 1), RegionEntry
+Segment at 54:15 (count = 0), Skipped
+Segment at 57:9 (count = 0), RegionEntry
+Segment at 57:10 (count = 0), Skipped
+Segment at 57:16 (count = 0), RegionEntry
+Segment at 57:29 (count = 0), Skipped
+Segment at 58:9 (count = 0), RegionEntry
+Segment at 58:23 (count = 0), Skipped
+Segment at 59:15 (count = 0), RegionEntry
+Segment at 59:28 (count = 0), Skipped
+Segment at 60:12 (count = 0), RegionEntry
+Segment at 60:25 (count = 0), Skipped
+Segment at 60:29 (count = 0), RegionEntry
+Segment at 60:42 (count = 0), RegionEntry
+Segment at 60:43 (count = 0), Skipped
+Segment at 60:46 (count = 0), RegionEntry
+Segment at 60:60 (count = 0), RegionEntry
+Segment at 60:61 (count = 0), RegionEntry
+Segment at 62:10 (count = 0), RegionEntry
+Segment at 62:11 (count = 0), Skipped
+Segment at 63:9 (count = 0), RegionEntry
+Segment at 63:23 (count = 0), Skipped
+Segment at 65:9 (count = 0), RegionEntry
+Segment at 65:15 (count = 0), Skipped
+Segment at 67:1 (count = 2), RegionEntry
+Segment at 67:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.while.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.while.txt
new file mode 100644
index 00000000000..1aad1a3c83b
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.while.txt
@@ -0,0 +1,22 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/while.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/while 
+Counter in file 0 2:9 -> 2:16, #1
+Counter in file 0 3:11 -> 3:20, #2
+Counter in file 0 3:21 -> 4:6, #3
+Counter in file 0 4:6 -> 4:7, (#3 + 0)
+Counter in file 0 5:1 -> 5:2, #4
+Emitting segments for file: ../coverage/while.rs
+Combined regions:
+  2:9 -> 2:16 (count=1)
+  3:11 -> 3:20 (count=1)
+  3:21 -> 4:6 (count=0)
+  4:6 -> 4:7 (count=0)
+  5:1 -> 5:2 (count=1)
+Segment at 2:9 (count = 1), RegionEntry
+Segment at 2:16 (count = 0), Skipped
+Segment at 3:11 (count = 1), RegionEntry
+Segment at 3:20 (count = 0), Skipped
+Segment at 3:21 (count = 0), RegionEntry
+Segment at 4:6 (count = 0), RegionEntry
+Segment at 4:7 (count = 0), Skipped
+Segment at 5:1 (count = 1), RegionEntry
+Segment at 5:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.while_early_return.txt b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.while_early_return.txt
new file mode 100644
index 00000000000..7c24ea22d67
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-reports-deadcode/expected_show_coverage_counters.while_early_return.txt
@@ -0,0 +1,44 @@
+Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/while_early_return.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/while_early_return 
+Counter in file 0 5:9 -> 5:27, #1
+Counter in file 0 7:9 -> 9:10, #2
+Counter in file 0 12:13 -> 14:14, #3
+Counter in file 0 18:21 -> 20:22, #4
+Counter in file 0 22:21 -> 22:27, #5
+Counter in file 0 26:21 -> 26:27, #6
+Counter in file 0 27:18 -> 27:19, (#5 + 0)
+Counter in file 0 30:9 -> 32:10, #7
+Counter in file 0 35:5 -> 35:11, #8
+Counter in file 0 36:1 -> 36:2, #9
+Counter in file 0 36:1 -> 36:2, #10
+Emitting segments for file: ../coverage/while_early_return.rs
+Combined regions:
+  5:9 -> 5:27 (count=1)
+  7:9 -> 9:10 (count=7)
+  12:13 -> 14:14 (count=7)
+  18:21 -> 20:22 (count=1)
+  22:21 -> 22:27 (count=0)
+  26:21 -> 26:27 (count=1)
+  27:18 -> 27:19 (count=0)
+  30:9 -> 32:10 (count=6)
+  35:5 -> 35:11 (count=0)
+  36:1 -> 36:2 (count=2)
+Segment at 5:9 (count = 1), RegionEntry
+Segment at 5:27 (count = 0), Skipped
+Segment at 7:9 (count = 7), RegionEntry
+Segment at 9:10 (count = 0), Skipped
+Segment at 12:13 (count = 7), RegionEntry
+Segment at 14:14 (count = 0), Skipped
+Segment at 18:21 (count = 1), RegionEntry
+Segment at 20:22 (count = 0), Skipped
+Segment at 22:21 (count = 0), RegionEntry
+Segment at 22:27 (count = 0), Skipped
+Segment at 26:21 (count = 1), RegionEntry
+Segment at 26:27 (count = 0), Skipped
+Segment at 27:18 (count = 0), RegionEntry
+Segment at 27:19 (count = 0), Skipped
+Segment at 30:9 (count = 6), RegionEntry
+Segment at 32:10 (count = 0), Skipped
+Segment at 35:5 (count = 0), RegionEntry
+Segment at 35:11 (count = 0), Skipped
+Segment at 36:1 (count = 2), RegionEntry
+Segment at 36:2 (count = 0), Skipped
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html
index 43f75c574d0..0f076a93c09 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html
@@ -65,16 +65,19 @@
 35:13-35:26: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="36:12-36:20: @0[5]: _4 = (*((*_1).0: &amp;bool))
 36:12-36:20: @0[6]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>is_false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="37:13-37:27: @3[0]: _2 = const 10_i32
-36:21-38:10: @3[1]: _3 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+36:21-38:10: @3[1]: _3 = const ()
+38:10-38:10: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="37:13-37:27: @3[0]: _2 = const 10_i32
-36:21-38:10: @3[1]: _3 = const ()">            countdown = 10;</span></span>
+36:21-38:10: @3[1]: _3 = const ()
+38:10-38:10: @3.Goto: goto -&gt; bb4">            countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="37:13-37:27: @3[0]: _2 = const 10_i32
-36:21-38:10: @3[1]: _3 = const ()">        }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="39:9-39:23: @4[4]: _6 = const &quot;alt string 2&quot;
+36:21-38:10: @3[1]: _3 = const ()
+38:10-38:10: @3.Goto: goto -&gt; bb4">        }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="38:10-38:10: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="39:9-39:23: @4[4]: _6 = const &quot;alt string 2&quot;
 39:9-39:23: @4[5]: _5 = &amp;(*_6)
 39:9-39:34: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 40:6-40:6: @5.Return: return"><span class="annotation">@4,5⦊</span>"alt string 2".to_owned()</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="39:9-39:23: @4[4]: _6 = const &quot;alt string 2&quot;
+<span class="line"><span class="code odd" style="--layer: 1" title="39:9-39:23: @4[4]: _6 = const &quot;alt string 2&quot;
 39:9-39:23: @4[5]: _5 = &amp;(*_6)
 39:9-39:34: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 40:6-40:6: @5.Return: return">    }<span class="annotation">⦉@4,5</span></span></span></span></div>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html
index 8f07ec5fcde..bc78a604e31 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html
@@ -65,16 +65,19 @@
 77:13-77:26: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="78:12-78:20: @0[5]: _4 = (*((*_1).0: &amp;bool))
 78:12-78:20: @0[6]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>is_false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="79:13-79:27: @3[0]: _2 = const 10_i32
-78:21-80:10: @3[1]: _3 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+78:21-80:10: @3[1]: _3 = const ()
+80:10-80:10: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="79:13-79:27: @3[0]: _2 = const 10_i32
-78:21-80:10: @3[1]: _3 = const ()">            countdown = 10;</span></span>
+78:21-80:10: @3[1]: _3 = const ()
+80:10-80:10: @3.Goto: goto -&gt; bb4">            countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="79:13-79:27: @3[0]: _2 = const 10_i32
-78:21-80:10: @3[1]: _3 = const ()">        }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="81:9-81:23: @4[4]: _6 = const &quot;alt string 4&quot;
+78:21-80:10: @3[1]: _3 = const ()
+80:10-80:10: @3.Goto: goto -&gt; bb4">        }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="80:10-80:10: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="81:9-81:23: @4[4]: _6 = const &quot;alt string 4&quot;
 81:9-81:23: @4[5]: _5 = &amp;(*_6)
 81:9-81:34: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 82:6-82:6: @5.Return: return"><span class="annotation">@4,5⦊</span>"alt string 4".to_owned()</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="81:9-81:23: @4[4]: _6 = const &quot;alt string 4&quot;
+<span class="line"><span class="code odd" style="--layer: 1" title="81:9-81:23: @4[4]: _6 = const &quot;alt string 4&quot;
 81:9-81:23: @4[5]: _5 = &amp;(*_6)
 81:9-81:34: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 82:6-82:6: @5.Return: return">    }<span class="annotation">⦉@4,5</span></span></span></span></div>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html
index ca9031a1094..b0db2311730 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html
@@ -65,16 +65,19 @@
 20:21-20:34: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">                if </span><span><span class="code even" style="--layer: 1" title="21:20-21:28: @0[5]: _4 = (*(_1.0: &amp;bool))
 21:20-21:28: @0[6]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>is_false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="22:21-22:35: @3[0]: _2 = const 10_i32
-21:29-23:18: @3[1]: _3 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+21:29-23:18: @3[1]: _3 = const ()
+23:18-23:18: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="22:21-22:35: @3[0]: _2 = const 10_i32
-21:29-23:18: @3[1]: _3 = const ()">                    countdown = 10;</span></span>
+21:29-23:18: @3[1]: _3 = const ()
+23:18-23:18: @3.Goto: goto -&gt; bb4">                    countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="22:21-22:35: @3[0]: _2 = const 10_i32
-21:29-23:18: @3[1]: _3 = const ()">                }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code even" style="--layer: 1" title="24:17-24:31: @4[4]: _6 = const &quot;alt string 1&quot;
+21:29-23:18: @3[1]: _3 = const ()
+23:18-23:18: @3.Goto: goto -&gt; bb4">                }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="23:18-23:18: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code odd" style="--layer: 1" title="24:17-24:31: @4[4]: _6 = const &quot;alt string 1&quot;
 24:17-24:31: @4[5]: _5 = &amp;(*_6)
 24:17-24:42: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 25:14-25:14: @5.Return: return"><span class="annotation">@4,5⦊</span>"alt string 1".to_owned()</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="24:17-24:31: @4[4]: _6 = const &quot;alt string 1&quot;
+<span class="line"><span class="code odd" style="--layer: 1" title="24:17-24:31: @4[4]: _6 = const &quot;alt string 1&quot;
 24:17-24:31: @4[5]: _5 = &amp;(*_6)
 24:17-24:42: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 25:14-25:14: @5.Return: return">            }<span class="annotation">⦉@4,5</span></span></span></span></div>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html
index 820f8d9c6cf..ca07a8d3ce5 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html
@@ -65,16 +65,19 @@
 62:21-62:34: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">                if </span><span><span class="code even" style="--layer: 1" title="63:20-63:28: @0[5]: _4 = (*(_1.0: &amp;bool))
 63:20-63:28: @0[6]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>is_false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="64:21-64:35: @3[0]: _2 = const 10_i32
-63:29-65:18: @3[1]: _3 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+63:29-65:18: @3[1]: _3 = const ()
+65:18-65:18: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="64:21-64:35: @3[0]: _2 = const 10_i32
-63:29-65:18: @3[1]: _3 = const ()">                    countdown = 10;</span></span>
+63:29-65:18: @3[1]: _3 = const ()
+65:18-65:18: @3.Goto: goto -&gt; bb4">                    countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="64:21-64:35: @3[0]: _2 = const 10_i32
-63:29-65:18: @3[1]: _3 = const ()">                }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code even" style="--layer: 1" title="66:17-66:31: @4[4]: _6 = const &quot;alt string 3&quot;
+63:29-65:18: @3[1]: _3 = const ()
+65:18-65:18: @3.Goto: goto -&gt; bb4">                }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="65:18-65:18: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code odd" style="--layer: 1" title="66:17-66:31: @4[4]: _6 = const &quot;alt string 3&quot;
 66:17-66:31: @4[5]: _5 = &amp;(*_6)
 66:17-66:42: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 67:14-67:14: @5.Return: return"><span class="annotation">@4,5⦊</span>"alt string 3".to_owned()</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="66:17-66:31: @4[4]: _6 = const &quot;alt string 3&quot;
+<span class="line"><span class="code odd" style="--layer: 1" title="66:17-66:31: @4[4]: _6 = const &quot;alt string 3&quot;
 66:17-66:31: @4[5]: _5 = &amp;(*_6)
 66:17-66:42: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 67:14-67:14: @5.Return: return">            }<span class="annotation">⦉@4,5</span></span></span></span></div>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html
index 494e6f20ea7..325b6c64345 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html
@@ -114,6 +114,6 @@
 <span class="line"><span class="code even" style="--layer: 1" title="24:13-24:40: @2[4]: _18 = Firework { strength: const 1000_i32 }
 26:8-26:10: @6[2]: _19 = ()
 26:5-26:11: @6[3]: _0 = std::result::Result::&lt;(), u8&gt;::Ok(move _19)">    Ok(())<span class="annotation">⦉@2,6,7,8</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="27:2-27:2: @11.Return: return"><span class="annotation">@11⦊</span>‸<span class="annotation">⦉@11</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="27:2-27:2: @10.Goto: goto -&gt; bb11"><span class="annotation">@1,3,4,5,9,10⦊</span>‸<span class="annotation">⦉@1,3,4,5,9,10</span></span></span><span><span class="code even" style="--layer: 1" title="27:2-27:2: @8.Goto: goto -&gt; bb11"><span class="annotation">@2,6,7,8⦊</span>‸<span class="annotation">⦉@2,6,7,8</span></span></span><span><span class="code odd" style="--layer: 1" title="27:2-27:2: @11.Return: return"><span class="annotation">@11⦊</span>‸<span class="annotation">⦉@11</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html
index 6dc893d28ff..55d7e8bfbae 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html
@@ -162,6 +162,6 @@
 <span class="line"><span class="code even" style="--layer: 1" title="35:13-35:40: @5[4]: _24 = Firework::&lt;i32&gt; { strength: const 1000_i32 }
 37:8-37:10: @9[2]: _25 = ()
 37:5-37:11: @9[3]: _0 = std::result::Result::&lt;(), u8&gt;::Ok(move _25)">    Ok(())<span class="annotation">⦉@5,9,10,11</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="38:2-38:2: @14.Return: return"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="38:2-38:2: @13.Goto: goto -&gt; bb14"><span class="annotation">@4,6,7,8,12,13⦊</span>‸<span class="annotation">⦉@4,6,7,8,12,13</span></span></span><span><span class="code even" style="--layer: 1" title="38:2-38:2: @11.Goto: goto -&gt; bb14"><span class="annotation">@5,9,10,11⦊</span>‸<span class="annotation">⦉@5,9,10,11</span></span></span><span><span class="code odd" style="--layer: 1" title="38:2-38:2: @14.Return: return"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html
index 0379d900e94..0d4b940214e 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html
@@ -146,17 +146,23 @@
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="21:9-21:16: @3[5]: _6 = _1
 21:9-21:16: @3[6]: FakeRead(ForMatchedPlace, _6)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">        countdown</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">        countdown</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">        =</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">        =</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">            10</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">            10</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">        ;</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">        ;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="28:2-28:2: @7.Return: return"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span></span></div>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="27:6-27:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="28:2-28:2: @7.Return: return"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html
index b51c5c84c0d..094dacde986 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html
@@ -128,36 +128,36 @@
 20:9-22:16: @5[1]: _6 = const ()">        =</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="20:9-22:16: @5[0]: _5 = const 100_i32
 20:9-22:16: @5[1]: _6 = const ()">            100<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code odd" style="--layer: 1" title="23:6-23:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>‸<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    if</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="26:9-26:16: @7[3]: _8 = _1
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="26:9-26:16: @7[3]: _8 = _1
 26:9-26:16: @7[4]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@7⦊</span>is_true<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()"><span class="annotation">@8,10⦊</span>{</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">        countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">        =</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">            10</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">        ;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">    }<span class="annotation">⦉@8,10</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    else</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()"><span class="annotation">@9⦊</span>{</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()">        countdown</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()">        =</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()">            100</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()">        ;</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
-34:5-39:6: @9[1]: _0 = const ()">    }<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+34:5-39:6: @9[1]: _0 = const ()">    }<span class="annotation">⦉@9</span></span></span><span><span class="code odd" style="--layer: 1" title="39:6-39:6: @10.Goto: goto -&gt; bb11"><span class="annotation">@8,10⦊</span>‸<span class="annotation">⦉@8,10</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="40:2-40:2: @11.Return: return"><span class="annotation">@11⦊</span>‸<span class="annotation">⦉@11</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html
index 49639cc6884..7f1262a6abf 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html
@@ -63,8 +63,7 @@
 <span class="line"><span class="code" style="--layer: 0">        let </span><span><span class="code even" style="--layer: 1" title="19:17-19:18: @0[1]: _2 = const 1_u32
 19:13-19:14: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>b = 1<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        let </span><span><span class="code odd" style="--layer: 1" title="20:13-20:14: @1[3]: FakeRead(ForLet, _3)"><span class="annotation">@1,2,3,4⦊</span>c<span class="annotation">⦉@1,2,3,4</span></span></span><span class="code" style="--layer: 0"> = </span><span><span class="code even" style="--layer: 1" title="20:17-20:18: @0[5]: _4 = _1
-20:21-20:22: @0[7]: _5 = _2
-20:17-20:22: @0[8]: _6 = CheckedAdd(_4, _5)"><span class="annotation">@0⦊</span>a + b<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
+20:21-20:22: @0[7]: _5 = _2"><span class="annotation">@0⦊</span>a + b<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="21:18-21:26: @1[9]: _23 = const in_func::promoted[0]
 21:18-21:26: @1[10]: _11 = &amp;(*_23)
 21:18-21:26: @1[11]: _10 = &amp;(*_11)
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html
index a2cf86de278..c9e0fe31211 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html
@@ -60,8 +60,7 @@
 </head>
 <body>
 <div class="code" style="counter-reset: line 39"><span class="line">        <span class="code" style="--layer: 0">fn trait_func(&amp;mut self, incr: u32) {</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2
-41:13-41:41: @0[2]: _4 = CheckedAdd(((*_1).0: u32), _3)"><span class="annotation">@0⦊</span>self.in_struct_field += incr<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            self.in_struct_field += </span><span><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2"><span class="annotation">@0⦊</span>incr<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="42:21-42:41: @1[4]: _6 = ((*_1).0: u32)
 42:13-42:42: @1.Call: _5 = in_func(move _6) -&gt; [return: bb2, unwind: bb3]
 43:10-43:10: @2.Return: return"><span class="annotation">@1,2⦊</span>in_func(self.in_struct_field);</span></span>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html
index 56557b8ef95..ec3517ec9ed 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html
@@ -86,11 +86,14 @@
 9:9-9:22: @3[3]: FakeRead(ForLet, _5)">    let mut countdown = 0<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="10:8-10:15: @3[6]: _7 = _1
 10:8-10:15: @3[7]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:23: @6[0]: _5 = const 10_u32
-10:16-12:6: @6[1]: _6 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:23: @6[0]: _5 = const 10_u32
-10:16-12:6: @6[1]: _6 = const ()">        countdown = 10;</span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7">        countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:23: @6[0]: _5 = const 10_u32
-10:16-12:6: @6[1]: _6 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="12:6-12:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    mod in_mod {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        const IN_MOD_CONST: u32 = 1000;</span></span>
@@ -126,16 +129,19 @@
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    type InType = String;</span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="48:8-48:15: @7[4]: _9 = _1
-48:8-48:15: @7[5]: FakeRead(ForMatchedPlace, _9)"><span class="annotation">@7⦊</span>is_true<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code odd" style="--layer: 1" title="48:8-48:15: @7[4]: _9 = _1
+48:8-48:15: @7[5]: FakeRead(ForMatchedPlace, _9)"><span class="annotation">@7⦊</span>is_true<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
 49:9-49:27: @10.Call: _10 = in_func(move _11) -&gt; [return: bb11, unwind: bb15]
-48:16-50:6: @11[2]: _8 = const ()"><span class="annotation">@8,10,11⦊</span>{</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
+48:16-50:6: @11[2]: _8 = const ()
+50:6-50:6: @11.Goto: goto -&gt; bb12"><span class="annotation">@8,10,11⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
 49:9-49:27: @10.Call: _10 = in_func(move _11) -&gt; [return: bb11, unwind: bb15]
-48:16-50:6: @11[2]: _8 = const ()">        in_func(countdown);</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
+48:16-50:6: @11[2]: _8 = const ()
+50:6-50:6: @11.Goto: goto -&gt; bb12">        in_func(countdown);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
 49:9-49:27: @10.Call: _10 = in_func(move _11) -&gt; [return: bb11, unwind: bb15]
-48:16-50:6: @11[2]: _8 = const ()">    }<span class="annotation">⦉@8,10,11</span></span></span><span class="code" style="--layer: 0"></span></span>
+48:16-50:6: @11[2]: _8 = const ()
+50:6-50:6: @11.Goto: goto -&gt; bb12">    }<span class="annotation">⦉@8,10,11</span></span></span><span><span class="code odd" style="--layer: 1" title="50:6-50:6: @9.Goto: goto -&gt; bb12"><span class="annotation">@9⦊</span>‸<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="52:19-54:6: @12[3]: _12 = InStruct { in_struct_field: const 101_u32 }
 52:9-52:16: @12[4]: FakeRead(ForLet, _12)
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html
index defe743df60..636341055dc 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html
@@ -63,27 +63,27 @@
 <span class="line"><span class="code" style="--layer: 0">    // Initialize test constants in a way that cannot be determined at compile time, to ensure</span></span>
 <span class="line"><span class="code" style="--layer: 0">    // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from</span></span>
 <span class="line"><span class="code" style="--layer: 0">    // dependent conditions.</span></span>
-<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb25]
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb41]
 7:19-7:35: @1[0]: _3 = &amp;_4
-7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb24]
+7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb40]
 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize)
 7:9-7:16: @2[3]: FakeRead(ForLet, _1)
 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32)
 9:10-9:15: @3[4]: _5 = (_8.0: i32)
 9:17-9:22: @3[6]: _6 = (_8.1: i32)
 9:24-9:29: @3[8]: _7 = (_8.2: i32)"><span class="annotation">@0,1,2,3⦊</span>is_true = std::env::args().len() == 1;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb25]
+<span class="line"><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb41]
 7:19-7:35: @1[0]: _3 = &amp;_4
-7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb24]
+7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb40]
 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize)
 7:9-7:16: @2[3]: FakeRead(ForLet, _1)
 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32)
 9:10-9:15: @3[4]: _5 = (_8.0: i32)
 9:17-9:22: @3[6]: _6 = (_8.1: i32)
 9:24-9:29: @3[8]: _7 = (_8.2: i32)"></span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb25]
+<span class="line"><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb41]
 7:19-7:35: @1[0]: _3 = &amp;_4
-7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb24]
+7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb40]
 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize)
 7:9-7:16: @2[3]: FakeRead(ForLet, _1)
 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32)
@@ -94,67 +94,126 @@
 10:8-10:15: @3[13]: FakeRead(ForMatchedPlace, _10)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()">        a = 1;</span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7">        a = 1;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()">        b = 10;</span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7">        b = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()">        c = 100;</span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7">        c = 100;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="14:6-14:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    let</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="16:9-16:17: @11[2]: FakeRead(ForLet, _11)"><span class="annotation">@11⦊</span>somebool<span class="annotation">⦉@11</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="16:9-16:17: @11[2]: FakeRead(ForLet, _11)"><span class="annotation">@11⦊</span>somebool<span class="annotation">⦉@11</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        =</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="18:13-18:14: @7[5]: _13 = _5
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="18:13-18:14: @7[5]: _13 = _5
 18:17-18:18: @7[7]: _14 = _6
 18:13-18:18: @7[8]: _12 = Lt(move _13, move _14)"><span class="annotation">@7⦊</span>a &lt; b<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        ||</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="20:13-20:14: @10[2]: _16 = _6
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="20:13-20:14: @10[2]: _16 = _6
 20:17-20:18: @10[4]: _17 = _7
-20:13-20:18: @10[5]: _15 = Lt(move _16, move _17)"><span class="annotation">@10⦊</span>b &lt; c<span class="annotation">⦉@10</span></span></span><span class="code" style="--layer: 0"></span></span>
+20:13-20:18: @10[5]: _15 = Lt(move _16, move _17)"><span class="annotation">@10⦊</span>b &lt; c<span class="annotation">⦉@10</span></span></span><span><span class="code even" style="--layer: 1" title="20:18-20:18: @8.Goto: goto -&gt; bb11"><span class="annotation">@8⦊</span>‸<span class="annotation">⦉@8</span></span></span><span><span class="code odd" style="--layer: 1" title="20:18-20:18: @9.Goto: goto -&gt; bb11"><span class="annotation">@9⦊</span>‸<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    let</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="23:9-23:17: @15[2]: FakeRead(ForLet, _18)"><span class="annotation">@15⦊</span>somebool<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="23:9-23:17: @15[2]: FakeRead(ForLet, _18)"><span class="annotation">@15⦊</span>somebool<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        =</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="25:13-25:14: @11[6]: _20 = _6
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="25:13-25:14: @11[6]: _20 = _6
 25:17-25:18: @11[8]: _21 = _5
 25:13-25:18: @11[9]: _19 = Lt(move _20, move _21)"><span class="annotation">@11⦊</span>b &lt; a<span class="annotation">⦉@11</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        ||</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="27:13-27:14: @14[2]: _23 = _6
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="27:13-27:14: @14[2]: _23 = _6
 27:17-27:18: @14[4]: _24 = _7
-27:13-27:18: @14[5]: _22 = Lt(move _23, move _24)"><span class="annotation">@14⦊</span>b &lt; c<span class="annotation">⦉@14</span></span></span><span class="code" style="--layer: 0"></span></span>
+27:13-27:18: @14[5]: _22 = Lt(move _23, move _24)"><span class="annotation">@14⦊</span>b &lt; c<span class="annotation">⦉@14</span></span></span><span><span class="code odd" style="--layer: 1" title="27:18-27:18: @12.Goto: goto -&gt; bb15"><span class="annotation">@12⦊</span>‸<span class="annotation">⦉@12</span></span></span><span><span class="code even" style="--layer: 1" title="27:18-27:18: @13.Goto: goto -&gt; bb15"><span class="annotation">@13⦊</span>‸<span class="annotation">⦉@13</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    let</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="30:9-30:17: @19[2]: FakeRead(ForLet, _25)"><span class="annotation">@19⦊</span>somebool<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        =</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="32:13-32:14: @15[6]: _27 = _5
-32:17-32:18: @15[8]: _28 = _6
-32:13-32:18: @15[9]: _26 = Lt(move _27, move _28)"><span class="annotation">@15⦊</span>a &lt; b<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        &amp;&amp;</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="34:13-34:14: @18[2]: _30 = _6
-34:17-34:18: @18[4]: _31 = _7
-34:13-34:18: @18[5]: _29 = Lt(move _30, move _31)"><span class="annotation">@18⦊</span>b &lt; c<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    let</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="37:9-37:17: @23[2]: FakeRead(ForLet, _32)"><span class="annotation">@23⦊</span>somebool<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        =</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="39:13-39:14: @19[6]: _34 = _6
-39:17-39:18: @19[8]: _35 = _5
-39:13-39:18: @19[9]: _33 = Lt(move _34, move _35)"><span class="annotation">@19⦊</span>b &lt; a<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        &amp;&amp;</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="41:13-41:14: @22[2]: _37 = _6
-41:17-41:18: @22[4]: _38 = _7
-41:13-41:18: @22[5]: _36 = Lt(move _37, move _38)"><span class="annotation">@22⦊</span>b &lt; c<span class="annotation">⦉@22</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="43:2-43:2: @23.Return: return"><span class="annotation">@23⦊</span>‸<span class="annotation">⦉@23</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code odd" style="--layer: 1" title="29:9-29:17: @19[2]: FakeRead(ForLet, _25)"><span class="annotation">@19⦊</span>somebool<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"> = </span><span><span class="code even" style="--layer: 1" title="29:20-29:21: @15[6]: _27 = _5
+29:24-29:25: @15[8]: _28 = _6
+29:20-29:25: @15[9]: _26 = Lt(move _27, move _28)"><span class="annotation">@15⦊</span>a &lt; b<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"> &amp;&amp; </span><span><span class="code odd" style="--layer: 1" title="29:29-29:30: @18[2]: _30 = _6
+29:33-29:34: @18[4]: _31 = _7
+29:29-29:34: @18[5]: _29 = Lt(move _30, move _31)"><span class="annotation">@18⦊</span>b &lt; c<span class="annotation">⦉@18</span></span></span><span><span class="code even" style="--layer: 1" title="29:34-29:34: @16.Goto: goto -&gt; bb19"><span class="annotation">@16⦊</span>‸<span class="annotation">⦉@16</span></span></span><span><span class="code odd" style="--layer: 1" title="29:34-29:34: @17.Goto: goto -&gt; bb19"><span class="annotation">@17⦊</span>‸<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="30:9-30:17: @23[2]: FakeRead(ForLet, _32)"><span class="annotation">@23⦊</span>somebool<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"> = </span><span><span class="code odd" style="--layer: 1" title="30:20-30:21: @19[6]: _34 = _6
+30:24-30:25: @19[8]: _35 = _5
+30:20-30:25: @19[9]: _33 = Lt(move _34, move _35)"><span class="annotation">@19⦊</span>b &lt; a<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"> &amp;&amp; </span><span><span class="code even" style="--layer: 1" title="30:29-30:30: @22[2]: _37 = _6
+30:33-30:34: @22[4]: _38 = _7
+30:29-30:34: @22[5]: _36 = Lt(move _37, move _38)"><span class="annotation">@22⦊</span>b &lt; c<span class="annotation">⦉@22</span></span></span><span><span class="code odd" style="--layer: 1" title="30:34-30:34: @20.Goto: goto -&gt; bb23"><span class="annotation">@20⦊</span>‸<span class="annotation">⦉@20</span></span></span><span><span class="code even" style="--layer: 1" title="30:34-30:34: @21.Goto: goto -&gt; bb23"><span class="annotation">@21⦊</span>‸<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    if</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="34:9-34:16: @23[6]: _41 = _1
+33:9-34:16: @23[7]: _40 = Not(move _41)
+33:9-34:16: @23[9]: FakeRead(ForMatchedPlace, _40)"><span class="annotation">@23⦊</span>!</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="34:9-34:16: @23[6]: _41 = _1
+33:9-34:16: @23[7]: _40 = Not(move _41)
+33:9-34:16: @23[9]: FakeRead(ForMatchedPlace, _40)">        is_true<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="36:9-36:14: @26[0]: _5 = const 2_i32
+35:5-38:6: @26[1]: _39 = const ()
+38:6-38:6: @26.Goto: goto -&gt; bb27"><span class="annotation">@24,26⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="36:9-36:14: @26[0]: _5 = const 2_i32
+35:5-38:6: @26[1]: _39 = const ()
+38:6-38:6: @26.Goto: goto -&gt; bb27">        a = 2</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="36:9-36:14: @26[0]: _5 = const 2_i32
+35:5-38:6: @26[1]: _39 = const ()
+38:6-38:6: @26.Goto: goto -&gt; bb27">        ;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="36:9-36:14: @26[0]: _5 = const 2_i32
+35:5-38:6: @26[1]: _39 = const ()
+38:6-38:6: @26.Goto: goto -&gt; bb27">    }<span class="annotation">⦉@24,26</span></span></span><span><span class="code odd" style="--layer: 1" title="38:6-38:6: @25.Goto: goto -&gt; bb27"><span class="annotation">@25⦊</span>‸<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    if</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="41:9-41:16: @27[4]: _43 = _1
+41:9-41:16: @27[5]: FakeRead(ForMatchedPlace, _43)"><span class="annotation">@27⦊</span>is_true<span class="annotation">⦉@27</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="43:9-43:15: @30[0]: _6 = const 30_i32
+42:5-45:6: @30[1]: _42 = const ()"><span class="annotation">@28,30⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="43:9-43:15: @30[0]: _6 = const 30_i32
+42:5-45:6: @30[1]: _42 = const ()">        b = 30</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="43:9-43:15: @30[0]: _6 = const 30_i32
+42:5-45:6: @30[1]: _42 = const ()">        ;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="43:9-43:15: @30[0]: _6 = const 30_i32
+42:5-45:6: @30[1]: _42 = const ()">    }<span class="annotation">⦉@28,30</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    else</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="48:9-48:16: @29[0]: _7 = const 400_i32
+47:5-50:6: @29[1]: _42 = const ()"><span class="annotation">@29⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="48:9-48:16: @29[0]: _7 = const 400_i32
+47:5-50:6: @29[1]: _42 = const ()">        c = 400</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="48:9-48:16: @29[0]: _7 = const 400_i32
+47:5-50:6: @29[1]: _42 = const ()">        ;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="48:9-48:16: @29[0]: _7 = const 400_i32
+47:5-50:6: @29[1]: _42 = const ()">    }<span class="annotation">⦉@29</span></span></span><span><span class="code odd" style="--layer: 1" title="50:6-50:6: @30.Goto: goto -&gt; bb31"><span class="annotation">@28,30⦊</span>‸<span class="annotation">⦉@28,30</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="52:9-52:16: @31[5]: _46 = _1
+52:8-52:16: @31[6]: _45 = Not(move _46)
+52:8-52:16: @31[8]: FakeRead(ForMatchedPlace, _45)"><span class="annotation">@31⦊</span>!is_true<span class="annotation">⦉@31</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="53:9-53:14: @34[0]: _5 = const 2_i32
+52:17-54:6: @34[1]: _44 = const ()
+54:6-54:6: @34.Goto: goto -&gt; bb35"><span class="annotation">@32,34⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="53:9-53:14: @34[0]: _5 = const 2_i32
+52:17-54:6: @34[1]: _44 = const ()
+54:6-54:6: @34.Goto: goto -&gt; bb35">        a = 2;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="53:9-53:14: @34[0]: _5 = const 2_i32
+52:17-54:6: @34[1]: _44 = const ()
+54:6-54:6: @34.Goto: goto -&gt; bb35">    }<span class="annotation">⦉@32,34</span></span></span><span><span class="code even" style="--layer: 1" title="54:6-54:6: @33.Goto: goto -&gt; bb35"><span class="annotation">@33⦊</span>‸<span class="annotation">⦉@33</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code odd" style="--layer: 1" title="56:8-56:15: @35[3]: _47 = _1
+56:8-56:15: @35[4]: FakeRead(ForMatchedPlace, _47)"><span class="annotation">@35⦊</span>is_true<span class="annotation">⦉@35</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="57:9-57:15: @38[0]: _6 = const 30_i32
+56:16-58:6: @38[1]: _0 = const ()"><span class="annotation">@36,38⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="57:9-57:15: @38[0]: _6 = const 30_i32
+56:16-58:6: @38[1]: _0 = const ()">        b = 30;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="57:9-57:15: @38[0]: _6 = const 30_i32
+56:16-58:6: @38[1]: _0 = const ()">    }<span class="annotation">⦉@36,38</span></span></span><span class="code" style="--layer: 0"> else </span><span><span class="code odd" style="--layer: 1" title="59:9-59:16: @37[0]: _7 = const 400_i32
+58:12-60:6: @37[1]: _0 = const ()"><span class="annotation">@37⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="59:9-59:16: @37[0]: _7 = const 400_i32
+58:12-60:6: @37[1]: _0 = const ()">        c = 400;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="59:9-59:16: @37[0]: _7 = const 400_i32
+58:12-60:6: @37[1]: _0 = const ()">    }<span class="annotation">⦉@37</span></span></span><span><span class="code even" style="--layer: 1" title="60:6-60:6: @38.Goto: goto -&gt; bb39"><span class="annotation">@36,38⦊</span>‸<span class="annotation">⦉@36,38</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="61:2-61:2: @39.Return: return"><span class="annotation">@39⦊</span>‸<span class="annotation">⦉@39</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.loops_and_branches/loops_and_branches.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.loops_and_branches/loops_and_branches.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..a876c85822f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.loops_and_branches/loops_and_branches.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>loops_and_branches.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 21"><span class="line"><span class="code" style="--layer: 0">fn main() </span><span><span class="code even" style="--layer: 1" title="23:22-23:31: @0[1]: _1 = DebugTest
+23:9-23:19: @0[2]: FakeRead(ForLet, _1)
+24:14-24:20: @0[9]: _19 = const main::promoted[0]
+24:14-24:20: @0[10]: _7 = &amp;(*_19)
+24:14-24:20: @0[11]: _6 = &amp;(*_7)
+24:14-24:20: @0[12]: _5 = move _6 as &amp;[&amp;str] (Pointer(Unsize))
+24:22-24:32: @0[20]: _14 = &amp;_1
+24:5-24:34: @0[21]: _13 = (move _14,)
+24:5-24:34: @0[23]: FakeRead(ForMatchedPlace, _13)
+24:5-24:34: @0[25]: _15 = (_13.0: &amp;DebugTest)
+24:5-24:34: @0[28]: _17 = &amp;(*_15)
+24:5-24:34: @0[30]: _18 = &lt;DebugTest as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r DebugTest, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+24:5-24:34: @0.Call: _16 = ArgumentV1::new::&lt;DebugTest&gt;(move _17, move _18) -&gt; [return: bb1, unwind: bb4]
+24:5-24:34: @1[2]: _12 = [move _16]
+24:5-24:34: @1[5]: _11 = &amp;_12
+24:5-24:34: @1[6]: _10 = &amp;(*_11)
+24:5-24:34: @1[7]: _9 = move _10 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+24:5-24:34: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -&gt; [return: bb2, unwind: bb4]
+24:5-24:34: @2.Call: _3 = _print(move _4) -&gt; [return: bb3, unwind: bb4]
+24:5-24:34: @3[6]: _2 = const ()
+22:11-25:2: @3[8]: _0 = const ()
+25:2-25:2: @3.Return: return"><span class="annotation">@0,1,2,3⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="23:22-23:31: @0[1]: _1 = DebugTest
+23:9-23:19: @0[2]: FakeRead(ForLet, _1)
+24:14-24:20: @0[9]: _19 = const main::promoted[0]
+24:14-24:20: @0[10]: _7 = &amp;(*_19)
+24:14-24:20: @0[11]: _6 = &amp;(*_7)
+24:14-24:20: @0[12]: _5 = move _6 as &amp;[&amp;str] (Pointer(Unsize))
+24:22-24:32: @0[20]: _14 = &amp;_1
+24:5-24:34: @0[21]: _13 = (move _14,)
+24:5-24:34: @0[23]: FakeRead(ForMatchedPlace, _13)
+24:5-24:34: @0[25]: _15 = (_13.0: &amp;DebugTest)
+24:5-24:34: @0[28]: _17 = &amp;(*_15)
+24:5-24:34: @0[30]: _18 = &lt;DebugTest as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r DebugTest, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+24:5-24:34: @0.Call: _16 = ArgumentV1::new::&lt;DebugTest&gt;(move _17, move _18) -&gt; [return: bb1, unwind: bb4]
+24:5-24:34: @1[2]: _12 = [move _16]
+24:5-24:34: @1[5]: _11 = &amp;_12
+24:5-24:34: @1[6]: _10 = &amp;(*_11)
+24:5-24:34: @1[7]: _9 = move _10 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+24:5-24:34: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -&gt; [return: bb2, unwind: bb4]
+24:5-24:34: @2.Call: _3 = _print(move _4) -&gt; [return: bb3, unwind: bb4]
+24:5-24:34: @3[6]: _2 = const ()
+22:11-25:2: @3[8]: _0 = const ()
+25:2-25:2: @3.Return: return">    let debug_test = DebugTest;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="23:22-23:31: @0[1]: _1 = DebugTest
+23:9-23:19: @0[2]: FakeRead(ForLet, _1)
+24:14-24:20: @0[9]: _19 = const main::promoted[0]
+24:14-24:20: @0[10]: _7 = &amp;(*_19)
+24:14-24:20: @0[11]: _6 = &amp;(*_7)
+24:14-24:20: @0[12]: _5 = move _6 as &amp;[&amp;str] (Pointer(Unsize))
+24:22-24:32: @0[20]: _14 = &amp;_1
+24:5-24:34: @0[21]: _13 = (move _14,)
+24:5-24:34: @0[23]: FakeRead(ForMatchedPlace, _13)
+24:5-24:34: @0[25]: _15 = (_13.0: &amp;DebugTest)
+24:5-24:34: @0[28]: _17 = &amp;(*_15)
+24:5-24:34: @0[30]: _18 = &lt;DebugTest as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r DebugTest, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+24:5-24:34: @0.Call: _16 = ArgumentV1::new::&lt;DebugTest&gt;(move _17, move _18) -&gt; [return: bb1, unwind: bb4]
+24:5-24:34: @1[2]: _12 = [move _16]
+24:5-24:34: @1[5]: _11 = &amp;_12
+24:5-24:34: @1[6]: _10 = &amp;(*_11)
+24:5-24:34: @1[7]: _9 = move _10 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+24:5-24:34: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -&gt; [return: bb2, unwind: bb4]
+24:5-24:34: @2.Call: _3 = _print(move _4) -&gt; [return: bb3, unwind: bb4]
+24:5-24:34: @3[6]: _2 = const ()
+22:11-25:2: @3[8]: _0 = const ()
+25:2-25:2: @3.Return: return">    println!("{:?}", debug_test);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="23:22-23:31: @0[1]: _1 = DebugTest
+23:9-23:19: @0[2]: FakeRead(ForLet, _1)
+24:14-24:20: @0[9]: _19 = const main::promoted[0]
+24:14-24:20: @0[10]: _7 = &amp;(*_19)
+24:14-24:20: @0[11]: _6 = &amp;(*_7)
+24:14-24:20: @0[12]: _5 = move _6 as &amp;[&amp;str] (Pointer(Unsize))
+24:22-24:32: @0[20]: _14 = &amp;_1
+24:5-24:34: @0[21]: _13 = (move _14,)
+24:5-24:34: @0[23]: FakeRead(ForMatchedPlace, _13)
+24:5-24:34: @0[25]: _15 = (_13.0: &amp;DebugTest)
+24:5-24:34: @0[28]: _17 = &amp;(*_15)
+24:5-24:34: @0[30]: _18 = &lt;DebugTest as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r DebugTest, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+24:5-24:34: @0.Call: _16 = ArgumentV1::new::&lt;DebugTest&gt;(move _17, move _18) -&gt; [return: bb1, unwind: bb4]
+24:5-24:34: @1[2]: _12 = [move _16]
+24:5-24:34: @1[5]: _11 = &amp;_12
+24:5-24:34: @1[6]: _10 = &amp;(*_11)
+24:5-24:34: @1[7]: _9 = move _10 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+24:5-24:34: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -&gt; [return: bb2, unwind: bb4]
+24:5-24:34: @2.Call: _3 = _print(move _4) -&gt; [return: bb3, unwind: bb4]
+24:5-24:34: @3[6]: _2 = const ()
+22:11-25:2: @3[8]: _0 = const ()
+25:2-25:2: @3.Return: return">}<span class="annotation">⦉@0,1,2,3</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.loops_and_branches/loops_and_branches.{impl#0}-fmt.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.loops_and_branches/loops_and_branches.{impl#0}-fmt.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..1b9767506f2
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.loops_and_branches/loops_and_branches.{impl#0}-fmt.-------.InstrumentCoverage.0.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>loops_and_branches.{impl#0}-fmt - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 8"><span class="line">    <span class="code" style="--layer: 0">fn fmt(&amp;self, f: &amp;mut std::fmt::Formatter) -&gt; std::fmt::Result {</span></span>
+<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="10:12-10:16: @0[2]: _4 = const true
+10:12-10:16: @0[3]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>true<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">            if </span><span><span class="code odd" style="--layer: 1" title="11:16-11:21: @3[2]: _6 = const false
+11:16-11:21: @3[3]: FakeRead(ForMatchedPlace, _6)"><span class="annotation">@1,3⦊</span>false<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                while </span><span><span class="code even" style="--layer: 1" title="12:23-12:27: @7[1]: _8 = const true
+12:23-12:27: @7[2]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@6,7⦊</span>true<span class="annotation">⦉@6,7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="12:28-13:18: @10[0]: _7 = const ()
+13:18-13:18: @10.Goto: goto -&gt; bb6"><span class="annotation">@8,10⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="12:28-13:18: @10[0]: _7 = const ()
+13:18-13:18: @10.Goto: goto -&gt; bb6">                }<span class="annotation">⦉@8,10</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">            }</span><span><span class="code even" style="--layer: 1" title="14:14-14:14: @9.Goto: goto -&gt; bb11"><span class="annotation">@9⦊</span>‸<span class="annotation">⦉@9</span></span></span><span><span class="code odd" style="--layer: 1" title="14:14-14:14: @5.Goto: goto -&gt; bb11"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="15:20-15:21: @11[6]: _13 = &amp;mut (*_2)
+15:23-15:30: @11[11]: _32 = const &lt;DebugTest as Debug&gt;::fmt::promoted[1]
+15:23-15:30: @11[12]: _17 = &amp;(*_32)
+15:23-15:30: @11[13]: _16 = &amp;(*_17)
+15:23-15:30: @11[14]: _15 = move _16 as &amp;[&amp;str] (Pointer(Unsize))
+15:13-15:31: @11[20]: _23 = ()
+15:13-15:31: @11[21]: FakeRead(ForMatchedPlace, _23)
+15:13-15:31: @11[22]: _31 = const &lt;DebugTest as Debug&gt;::fmt::promoted[0]
+15:13-15:31: @11[23]: _21 = &amp;(*_31)
+15:13-15:31: @11[24]: _20 = &amp;(*_21)
+15:13-15:31: @11[25]: _19 = move _20 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+15:13-15:31: @11.Call: _14 = Arguments::new_v1(move _15, move _19) -&gt; [return: bb12, unwind: bb23]
+15:13-15:31: @12.Call: _12 = Formatter::write_fmt(move _13, move _14) -&gt; [return: bb13, unwind: bb23]"><span class="annotation">@11,12,13,14⦊</span>write!(f, "error")<span class="annotation">⦉@11,12,13,14</span></span></span><span><span class="code odd" style="--layer: 1" title="15:31-15:32: @18[1]: _25 = ((_11 as Err).0: std::fmt::Error)
+15:31-15:32: @18[4]: _28 = _25
+15:31-15:32: @18.Call: _27 = &lt;std::fmt::Error as From&lt;std::fmt::Error&gt;&gt;::from(move _28) -&gt; [return: bb19, unwind: bb23]"><span class="annotation">@16,18,19,20⦊</span>?<span class="annotation">⦉@16,18,19,20</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        } else </span><span><span class="code even" style="--layer: 1" title="16:16-17:10: @2[0]: _3 = const ()"><span class="annotation">@2⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="16:16-17:10: @2[0]: _3 = const ()">        }<span class="annotation">⦉@2</span></span></span><span><span class="code odd" style="--layer: 1" title="17:10-17:10: @15.Goto: goto -&gt; bb21"><span class="annotation">@15⦊</span>‸<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="18:12-18:14: @21[3]: _30 = ()
+18:9-18:15: @21[4]: _0 = std::result::Result::&lt;(), std::fmt::Error&gt;::Ok(move _30)"><span class="annotation">@21⦊</span>Ok(())<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code odd" style="--layer: 1" title="19:6-19:6: @20.Goto: goto -&gt; bb22"><span class="annotation">@16,18,19,20⦊</span>‸<span class="annotation">⦉@16,18,19,20</span></span></span><span><span class="code even" style="--layer: 1" title="19:6-19:6: @22.Return: return"><span class="annotation">@22⦊</span>‸<span class="annotation">⦉@22</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..042845b70cc
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>nested_loops.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 0"><span class="line"><span class="code" style="--layer: 0">fn main() {</span></span>
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="2:19-2:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb35]
+2:19-2:35: @1[0]: _3 = &amp;_4
+2:19-2:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb34]
+2:19-2:46: @2[1]: _1 = Eq(move _2, const 1_usize)
+2:9-2:16: @2[3]: FakeRead(ForLet, _1)
+3:25-3:27: @3[2]: _5 = const 10_i32
+3:9-3:22: @3[3]: FakeRead(ForLet, _5)"><span class="annotation">@0,1,2,3⦊</span>is_true = std::env::args().len() == 1;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="2:19-2:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb35]
+2:19-2:35: @1[0]: _3 = &amp;_4
+2:19-2:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb34]
+2:19-2:46: @2[1]: _1 = Eq(move _2, const 1_usize)
+2:9-2:16: @2[3]: FakeRead(ForLet, _1)
+3:25-3:27: @3[2]: _5 = const 10_i32
+3:9-3:22: @3[3]: FakeRead(ForLet, _5)">    let mut countdown = 10<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    'outer: while </span><span><span class="code odd" style="--layer: 1" title="5:19-5:28: @5[2]: _8 = _5
+5:19-5:32: @5[3]: _7 = Gt(move _8, const 0_i32)
+5:19-5:32: @5[5]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@4,5⦊</span>countdown &gt; 0<span class="annotation">⦉@4,5</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">        let </span><span><span class="code even" style="--layer: 1" title="6:21-6:24: @8[1]: _9 = const 100_i32
+6:13-6:18: @8[2]: FakeRead(ForLet, _9)
+7:21-7:24: @8[4]: _10 = const 100_i32
+7:13-7:18: @8[5]: FakeRead(ForLet, _10)"><span class="annotation">@6,8,9⦊</span>mut a = 100;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="6:21-6:24: @8[1]: _9 = const 100_i32
+6:13-6:18: @8[2]: FakeRead(ForLet, _9)
+7:21-7:24: @8[4]: _10 = const 100_i32
+7:13-7:18: @8[5]: FakeRead(ForLet, _10)">        let mut b = 100<span class="annotation">⦉@6,8,9</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        for </span><span><span class="code odd" style="--layer: 1" title="8:13-8:14: @16[1]: _21 = ((_17 as Some).0: i32)
+8:13-8:14: @16[3]: _22 = _21
+8:13-8:14: @16[4]: _15 = move _22
+8:13-8:14: @16[5]: _16 = const ()"><span class="annotation">@14,16⦊</span>_<span class="annotation">⦉@14,16</span></span></span><span class="code" style="--layer: 0"> in </span><span><span class="code even" style="--layer: 1" title="8:18-8:23: @11[5]: _19 = &amp;mut _14
+8:18-8:23: @11[6]: _18 = &amp;mut (*_19)
+8:18-8:23: @11.Call: _17 = &lt;std::ops::Range&lt;i32&gt; as Iterator&gt;::next(move _18) -&gt; [return: bb12, unwind: bb35]
+8:18-8:23: @12[1]: FakeRead(ForMatchedPlace, _17)"><span class="annotation">@10,11,12⦊</span>0..50<span class="annotation">⦉@10,11,12</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">            if </span><span><span class="code odd" style="--layer: 1" title="9:16-9:17: @16[15]: _27 = _9
+9:16-9:22: @16[16]: _26 = Lt(move _27, const 30_i32)
+9:16-9:22: @16[18]: FakeRead(ForMatchedPlace, _26)"><span class="annotation">@14,16⦊</span>a &lt; 30<span class="annotation">⦉@14,16</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code even" style="--layer: 1" title="10:17-10:22: @19[0]: _11 = const ()"><span class="annotation">@17,19⦊</span>break<span class="annotation">⦉@17,19</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            }</span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="12:13-12:19: @20[0]: _9 = move (_29.0: i32)"><span class="annotation">@20⦊</span>a -= 5<span class="annotation">⦉@20</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="13:13-13:19: @21[0]: _10 = move (_30.0: i32)"><span class="annotation">@21⦊</span>b -= 5<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            if </span><span><span class="code even" style="--layer: 1" title="14:16-14:17: @21[3]: _32 = _10
+14:16-14:22: @21[4]: _31 = Lt(move _32, const 90_i32)
+14:16-14:22: @21[6]: FakeRead(ForMatchedPlace, _31)"><span class="annotation">@21⦊</span>b &lt; 90<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code odd" style="--layer: 1" title="15:17-15:24: @25[0]: _9 = move (_33.0: i32)
+16:20-16:27: @25[2]: _34 = _1
+16:20-16:27: @25[3]: FakeRead(ForMatchedPlace, _34)"><span class="annotation">@25⦊</span>a -= 10;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="15:17-15:24: @25[0]: _9 = move (_33.0: i32)
+16:20-16:27: @25[2]: _34 = _1
+16:20-16:27: @25[3]: FakeRead(ForMatchedPlace, _34)">                if is_true<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                    </span><span><span class="code even" style="--layer: 1" title="17:21-17:33: @28[0]: _0 = const ()"><span class="annotation">@26,28⦊</span>break 'outer<span class="annotation">⦉@26,28</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">                } else {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                    </span><span><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
+21:14-21:14: @29.Goto: goto -&gt; bb30"><span class="annotation">@29⦊</span>a -= 2;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
+21:14-21:14: @29.Goto: goto -&gt; bb30">                }</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
+21:14-21:14: @29.Goto: goto -&gt; bb30">            }<span class="annotation">⦉@29</span></span></span><span><span class="code even" style="--layer: 1" title="21:14-21:14: @23.Goto: goto -&gt; bb30"><span class="annotation">@23⦊</span>‸<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        }</span><span><span class="code odd" style="--layer: 1" title="22:10-22:10: @9.Goto: goto -&gt; bb10"><span class="annotation">@6,8,9⦊</span>‸<span class="annotation">⦉@6,8,9</span></span></span><span><span class="code even" style="--layer: 1" title="22:10-22:10: @30.Goto: goto -&gt; bb10"><span class="annotation">@30⦊</span>‸<span class="annotation">⦉@30</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="23:9-23:23: @32[0]: _5 = move (_37.0: i32)"><span class="annotation">@32⦊</span>countdown -= 1<span class="annotation">⦉@32</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code even" style="--layer: 1" title="24:6-24:6: @3.Goto: goto -&gt; bb4"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span><span class="code odd" style="--layer: 1" title="24:6-24:6: @7.Goto: goto -&gt; bb33"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="25:2-25:2: @33.Return: return"><span class="annotation">@33⦊</span>‸<span class="annotation">⦉@33</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..3ebe51bc7ec
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,285 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 20"><span class="line"><span class="code" style="--layer: 0">fn main() </span><span><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return"><span class="annotation">@0,1,2,3,4,5,6,7,8⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return">    let version_3_2_1 = Version::new(3, 2, 1);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return">    let version_3_3_0 = Version::new(3, 3, 0);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return"></span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return">    println!("{:?} &lt; {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 &lt; version_3_3_0);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return">}<span class="annotation">⦉@0,1,2,3,4,5,6,7,8</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#0}-new.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#0}-new.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..ee6a5489f26
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#0}-new.-------.InstrumentCoverage.0.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#0}-new - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 11"><span class="line">    <span class="code" style="--layer: 0">pub fn new(major: usize, minor: usize, patch: usize) -&gt; Self {</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return"><span class="annotation">@0⦊</span>Self {</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">            major,</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">            minor,</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">            patch,</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">        }</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">    }<span class="annotation">⦉@0</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#1}-cmp.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#1}-cmp.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..a39772288a3
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#1}-cmp.-------.InstrumentCoverage.0.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#1}-cmp - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                                  <span><span class="code even" style="--layer: 1" title="4:51-4:54: @14.Goto: goto -&gt; bb15"><span class="annotation">@14⦊</span></span></span><span class="code even" style="--layer: 2" title="4:51-4:54: @12[0]: _0 = Equal
+4:51-4:54: @12.Goto: goto -&gt; bb13"><span class="annotation">@11,12⦊</span></span><span class="code even" style="--layer: 3" title="4:51-4:54: @10[1]: _27 = _21
+4:51-4:54: @10[2]: _0 = _27
+4:51-4:54: @10.Goto: goto -&gt; bb13"><span class="annotation">@10⦊</span></span><span class="code even" style="--layer: 4" title="4:51-4:54: @13.Goto: goto -&gt; bb14"><span class="annotation">@13⦊</span>Ord<span class="annotation">⦉@13</span></span><span class="code even" style="--layer: 3" title="4:51-4:54: @10[1]: _27 = _21
+4:51-4:54: @10[2]: _0 = _27
+4:51-4:54: @10.Goto: goto -&gt; bb13"><span class="annotation">⦉@10</span></span><span class="code even" style="--layer: 2" title="4:51-4:54: @12[0]: _0 = Equal
+4:51-4:54: @12.Goto: goto -&gt; bb13"><span class="annotation">⦉@11,12</span></span><span><span class="code even" style="--layer: 1" title="4:51-4:54: @14.Goto: goto -&gt; bb15"><span class="annotation">⦉@14</span></span></span><span><span class="code odd" style="--layer: 1" title="4:54-4:54: @15.Return: return"><span class="annotation">@15⦊</span>‸<span class="annotation">⦉@15</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..671cbea0ff3
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 6"><span class="line">    <span class="code" style="--layer: 0">minor: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="8:5-8:17: @0[3]: _4 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+8:5-8:17: @0[4]: _3 = &amp;(*_4)
+8:5-8:17: @0[7]: _6 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+8:5-8:17: @0[8]: _5 = &amp;(*_6)
+8:5-8:17: @0.Call: _2 = &lt;usize as PartialOrd&gt;::partial_cmp(move _3, move _5) -&gt; [return: bb1, unwind: bb3]
+8:5-8:17: @1[3]: _7 = Less
+8:5-8:17: @1.Call: _0 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _2, move _7) -&gt; [return: bb2, unwind: bb3]
+8:5-8:17: @2.Return: return"><span class="annotation">@0,1,2⦊</span>patch: usize<span class="annotation">⦉@0,1,2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..6da79c4b130
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-ge-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 5"><span class="line">    <span class="code" style="--layer: 0">major: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="7:5-7:17: @0[4]: _5 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+7:5-7:17: @0[5]: _4 = &amp;(*_5)
+7:5-7:17: @0[8]: _7 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+7:5-7:17: @0[9]: _6 = &amp;(*_7)
+7:5-7:17: @0.Call: _3 = &lt;usize as PartialOrd&gt;::partial_cmp(move _4, move _6) -&gt; [return: bb1, unwind: bb4]
+7:5-7:17: @1[3]: _8 = Equal
+7:5-7:17: @1.Call: _2 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _3, move _8) -&gt; [return: bb2, unwind: bb4]
+7:5-7:17: @2[4]: _10 = &amp;(*(_1.2: &amp;&amp;usize))
+7:5-7:17: @2[6]: _11 = &amp;(*(_1.3: &amp;&amp;usize))"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">minor: usize</span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..5f5c31ce775
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge.-------.InstrumentCoverage.0.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-ge - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @0[0]: FakeRead(ForMatchedPlace, (*_2))
+4:39-4:49: @0[2]: _3 = &amp;((*_2).0: usize)
+4:39-4:49: @0[4]: _4 = &amp;((*_2).1: usize)
+4:39-4:49: @0[6]: _5 = &amp;((*_2).2: usize)
+4:39-4:49: @0[7]: FakeRead(ForMatchedPlace, (*_1))
+4:39-4:49: @0[9]: _6 = &amp;((*_1).0: usize)
+4:39-4:49: @0[11]: _7 = &amp;((*_1).1: usize)
+4:39-4:49: @0[13]: _8 = &amp;((*_1).2: usize)
+4:39-4:49: @0[20]: _14 = &amp;(*_6)
+4:39-4:49: @0[21]: _13 = &amp;(*_14)
+4:39-4:49: @0[24]: _16 = &amp;(*_3)
+4:39-4:49: @0[25]: _15 = &amp;(*_16)
+4:39-4:49: @0.Call: _12 = &lt;usize as PartialOrd&gt;::partial_cmp(move _13, move _15) -&gt; [return: bb1, unwind: bb5]
+4:39-4:49: @1[3]: _17 = Equal
+4:39-4:49: @1.Call: _11 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _12, move _17) -&gt; [return: bb2, unwind: bb5]
+4:39-4:49: @2[4]: _19 = &amp;_7
+4:39-4:49: @2[6]: _20 = &amp;_4
+4:39-4:49: @2[8]: _21 = &amp;_8
+4:39-4:49: @2[10]: _22 = &amp;_5"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">PartialOrd</span><span><span class="code even" style="--layer: 1" title="4:49-4:49: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..fbdd0f7db42
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 6"><span class="line">    <span class="code" style="--layer: 0">minor: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="8:5-8:17: @0[3]: _4 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+8:5-8:17: @0[4]: _3 = &amp;(*_4)
+8:5-8:17: @0[7]: _6 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+8:5-8:17: @0[8]: _5 = &amp;(*_6)
+8:5-8:17: @0.Call: _2 = &lt;usize as PartialOrd&gt;::partial_cmp(move _3, move _5) -&gt; [return: bb1, unwind: bb3]
+8:5-8:17: @1[3]: _7 = Less
+8:5-8:17: @1.Call: _0 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _2, move _7) -&gt; [return: bb2, unwind: bb3]
+8:5-8:17: @2.Return: return"><span class="annotation">@0,1,2⦊</span>patch: usize<span class="annotation">⦉@0,1,2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..736f2034333
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-gt-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 5"><span class="line">    <span class="code" style="--layer: 0">major: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="7:5-7:17: @0[4]: _5 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+7:5-7:17: @0[5]: _4 = &amp;(*_5)
+7:5-7:17: @0[8]: _7 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+7:5-7:17: @0[9]: _6 = &amp;(*_7)
+7:5-7:17: @0.Call: _3 = &lt;usize as PartialOrd&gt;::partial_cmp(move _4, move _6) -&gt; [return: bb1, unwind: bb4]
+7:5-7:17: @1[3]: _8 = Equal
+7:5-7:17: @1.Call: _2 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _3, move _8) -&gt; [return: bb2, unwind: bb4]
+7:5-7:17: @2[4]: _10 = &amp;(*(_1.2: &amp;&amp;usize))
+7:5-7:17: @2[6]: _11 = &amp;(*(_1.3: &amp;&amp;usize))"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">minor: usize</span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..0fec7c9932f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt.-------.InstrumentCoverage.0.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-gt - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @0[0]: FakeRead(ForMatchedPlace, (*_2))
+4:39-4:49: @0[2]: _3 = &amp;((*_2).0: usize)
+4:39-4:49: @0[4]: _4 = &amp;((*_2).1: usize)
+4:39-4:49: @0[6]: _5 = &amp;((*_2).2: usize)
+4:39-4:49: @0[7]: FakeRead(ForMatchedPlace, (*_1))
+4:39-4:49: @0[9]: _6 = &amp;((*_1).0: usize)
+4:39-4:49: @0[11]: _7 = &amp;((*_1).1: usize)
+4:39-4:49: @0[13]: _8 = &amp;((*_1).2: usize)
+4:39-4:49: @0[20]: _14 = &amp;(*_6)
+4:39-4:49: @0[21]: _13 = &amp;(*_14)
+4:39-4:49: @0[24]: _16 = &amp;(*_3)
+4:39-4:49: @0[25]: _15 = &amp;(*_16)
+4:39-4:49: @0.Call: _12 = &lt;usize as PartialOrd&gt;::partial_cmp(move _13, move _15) -&gt; [return: bb1, unwind: bb5]
+4:39-4:49: @1[3]: _17 = Equal
+4:39-4:49: @1.Call: _11 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _12, move _17) -&gt; [return: bb2, unwind: bb5]
+4:39-4:49: @2[4]: _19 = &amp;_7
+4:39-4:49: @2[6]: _20 = &amp;_4
+4:39-4:49: @2[8]: _21 = &amp;_8
+4:39-4:49: @2[10]: _22 = &amp;_5"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">PartialOrd</span><span><span class="code even" style="--layer: 1" title="4:49-4:49: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..ff4eba10789
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 6"><span class="line">    <span class="code" style="--layer: 0">minor: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="8:5-8:17: @0[3]: _4 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+8:5-8:17: @0[4]: _3 = &amp;(*_4)
+8:5-8:17: @0[7]: _6 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+8:5-8:17: @0[8]: _5 = &amp;(*_6)
+8:5-8:17: @0.Call: _2 = &lt;usize as PartialOrd&gt;::partial_cmp(move _3, move _5) -&gt; [return: bb1, unwind: bb3]
+8:5-8:17: @1[3]: _7 = Greater
+8:5-8:17: @1.Call: _0 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _2, move _7) -&gt; [return: bb2, unwind: bb3]
+8:5-8:17: @2.Return: return"><span class="annotation">@0,1,2⦊</span>patch: usize<span class="annotation">⦉@0,1,2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..ccc86a7f92f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-le-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 5"><span class="line">    <span class="code" style="--layer: 0">major: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="7:5-7:17: @0[4]: _5 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+7:5-7:17: @0[5]: _4 = &amp;(*_5)
+7:5-7:17: @0[8]: _7 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+7:5-7:17: @0[9]: _6 = &amp;(*_7)
+7:5-7:17: @0.Call: _3 = &lt;usize as PartialOrd&gt;::partial_cmp(move _4, move _6) -&gt; [return: bb1, unwind: bb4]
+7:5-7:17: @1[3]: _8 = Equal
+7:5-7:17: @1.Call: _2 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _3, move _8) -&gt; [return: bb2, unwind: bb4]
+7:5-7:17: @2[4]: _10 = &amp;(*(_1.2: &amp;&amp;usize))
+7:5-7:17: @2[6]: _11 = &amp;(*(_1.3: &amp;&amp;usize))"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">minor: usize</span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..682b9112c4c
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le.-------.InstrumentCoverage.0.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-le - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @0[0]: FakeRead(ForMatchedPlace, (*_2))
+4:39-4:49: @0[2]: _3 = &amp;((*_2).0: usize)
+4:39-4:49: @0[4]: _4 = &amp;((*_2).1: usize)
+4:39-4:49: @0[6]: _5 = &amp;((*_2).2: usize)
+4:39-4:49: @0[7]: FakeRead(ForMatchedPlace, (*_1))
+4:39-4:49: @0[9]: _6 = &amp;((*_1).0: usize)
+4:39-4:49: @0[11]: _7 = &amp;((*_1).1: usize)
+4:39-4:49: @0[13]: _8 = &amp;((*_1).2: usize)
+4:39-4:49: @0[20]: _14 = &amp;(*_6)
+4:39-4:49: @0[21]: _13 = &amp;(*_14)
+4:39-4:49: @0[24]: _16 = &amp;(*_3)
+4:39-4:49: @0[25]: _15 = &amp;(*_16)
+4:39-4:49: @0.Call: _12 = &lt;usize as PartialOrd&gt;::partial_cmp(move _13, move _15) -&gt; [return: bb1, unwind: bb5]
+4:39-4:49: @1[3]: _17 = Equal
+4:39-4:49: @1.Call: _11 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _12, move _17) -&gt; [return: bb2, unwind: bb5]
+4:39-4:49: @2[4]: _19 = &amp;_7
+4:39-4:49: @2[6]: _20 = &amp;_4
+4:39-4:49: @2[8]: _21 = &amp;_8
+4:39-4:49: @2[10]: _22 = &amp;_5"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">PartialOrd</span><span><span class="code even" style="--layer: 1" title="4:49-4:49: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..e018c96c24f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 6"><span class="line">    <span class="code" style="--layer: 0">minor: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="8:5-8:17: @0[3]: _4 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+8:5-8:17: @0[4]: _3 = &amp;(*_4)
+8:5-8:17: @0[7]: _6 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+8:5-8:17: @0[8]: _5 = &amp;(*_6)
+8:5-8:17: @0.Call: _2 = &lt;usize as PartialOrd&gt;::partial_cmp(move _3, move _5) -&gt; [return: bb1, unwind: bb3]
+8:5-8:17: @1[3]: _7 = Greater
+8:5-8:17: @1.Call: _0 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _2, move _7) -&gt; [return: bb2, unwind: bb3]
+8:5-8:17: @2.Return: return"><span class="annotation">@0,1,2⦊</span>patch: usize<span class="annotation">⦉@0,1,2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..a10032059b5
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-lt-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 5"><span class="line">    <span class="code" style="--layer: 0">major: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="7:5-7:17: @0[4]: _5 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+7:5-7:17: @0[5]: _4 = &amp;(*_5)
+7:5-7:17: @0[8]: _7 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+7:5-7:17: @0[9]: _6 = &amp;(*_7)
+7:5-7:17: @0.Call: _3 = &lt;usize as PartialOrd&gt;::partial_cmp(move _4, move _6) -&gt; [return: bb1, unwind: bb4]
+7:5-7:17: @1[3]: _8 = Equal
+7:5-7:17: @1.Call: _2 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _3, move _8) -&gt; [return: bb2, unwind: bb4]
+7:5-7:17: @2[4]: _10 = &amp;(*(_1.2: &amp;&amp;usize))
+7:5-7:17: @2[6]: _11 = &amp;(*(_1.3: &amp;&amp;usize))"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">minor: usize</span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..89dad0f9069
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt.-------.InstrumentCoverage.0.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-lt - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @0[0]: FakeRead(ForMatchedPlace, (*_2))
+4:39-4:49: @0[2]: _3 = &amp;((*_2).0: usize)
+4:39-4:49: @0[4]: _4 = &amp;((*_2).1: usize)
+4:39-4:49: @0[6]: _5 = &amp;((*_2).2: usize)
+4:39-4:49: @0[7]: FakeRead(ForMatchedPlace, (*_1))
+4:39-4:49: @0[9]: _6 = &amp;((*_1).0: usize)
+4:39-4:49: @0[11]: _7 = &amp;((*_1).1: usize)
+4:39-4:49: @0[13]: _8 = &amp;((*_1).2: usize)
+4:39-4:49: @0[20]: _14 = &amp;(*_6)
+4:39-4:49: @0[21]: _13 = &amp;(*_14)
+4:39-4:49: @0[24]: _16 = &amp;(*_3)
+4:39-4:49: @0[25]: _15 = &amp;(*_16)
+4:39-4:49: @0.Call: _12 = &lt;usize as PartialOrd&gt;::partial_cmp(move _13, move _15) -&gt; [return: bb1, unwind: bb5]
+4:39-4:49: @1[3]: _17 = Equal
+4:39-4:49: @1.Call: _11 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _12, move _17) -&gt; [return: bb2, unwind: bb5]
+4:39-4:49: @2[4]: _19 = &amp;_7
+4:39-4:49: @2[6]: _20 = &amp;_4
+4:39-4:49: @2[8]: _21 = &amp;_8
+4:39-4:49: @2[10]: _22 = &amp;_5"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">PartialOrd</span><span><span class="code even" style="--layer: 1" title="4:49-4:49: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-partial_cmp.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-partial_cmp.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..2c03e967eeb
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-partial_cmp.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-partial_cmp - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @17.Goto: goto -&gt; bb18"><span class="annotation">@17⦊</span></span></span><span class="code even" style="--layer: 2" title="4:39-4:49: @15[1]: _30 = Equal
+4:39-4:49: @15[2]: _0 = Option::&lt;std::cmp::Ordering&gt;::Some(move _30)
+4:39-4:49: @15.Goto: goto -&gt; bb16"><span class="annotation">@14,15⦊</span></span><span class="code even" style="--layer: 3" title="4:39-4:49: @12[1]: _31 = _23
+4:39-4:49: @12[2]: _0 = _31
+4:39-4:49: @12.Goto: goto -&gt; bb16"><span class="annotation">@12⦊</span></span><span class="code even" style="--layer: 4" title="4:39-4:49: @16.Goto: goto -&gt; bb17"><span class="annotation">@16⦊</span>PartialOrd<span class="annotation">⦉@16</span></span><span class="code even" style="--layer: 3" title="4:39-4:49: @12[1]: _31 = _23
+4:39-4:49: @12[2]: _0 = _31
+4:39-4:49: @12.Goto: goto -&gt; bb16"><span class="annotation">⦉@12</span></span><span class="code even" style="--layer: 2" title="4:39-4:49: @15[1]: _30 = Equal
+4:39-4:49: @15[2]: _0 = Option::&lt;std::cmp::Ordering&gt;::Some(move _30)
+4:39-4:49: @15.Goto: goto -&gt; bb16"><span class="annotation">⦉@14,15</span></span><span><span class="code even" style="--layer: 1" title="4:39-4:49: @17.Goto: goto -&gt; bb18"><span class="annotation">⦉@17</span></span></span><span><span class="code odd" style="--layer: 1" title="4:49-4:49: @18.Return: return"><span class="annotation">@18⦊</span>‸<span class="annotation">⦉@18</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..49d73b3457b
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq.-------.InstrumentCoverage.0.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                  <span><span class="code even" style="--layer: 1" title="4:35-4:37: @0[0]: _0 = const ()
+4:37-4:37: @0.Return: return"><span class="annotation">@0⦊</span>Eq<span class="annotation">⦉@0</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-eq.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-eq.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..bc34080f109
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-eq.-------.InstrumentCoverage.0.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#6}-eq - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                       <span><span class="code even" style="--layer: 1" title="4:24-4:33: @2[0]: _0 = const false
+4:24-4:33: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span></span></span><span class="code even" style="--layer: 2" title="4:24-4:33: @1[0]: _0 = const true
+4:24-4:33: @1.Goto: goto -&gt; bb4"><span class="annotation">@1⦊</span>PartialEq<span class="annotation">⦉@1</span></span><span><span class="code even" style="--layer: 1" title="4:24-4:33: @2[0]: _0 = const false
+4:24-4:33: @2.Goto: goto -&gt; bb4"><span class="annotation">⦉@2</span></span></span><span><span class="code odd" style="--layer: 1" title="4:33-4:33: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-ne.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-ne.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..376c8dd80d0
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-ne.-------.InstrumentCoverage.0.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#6}-ne - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                       <span><span class="code even" style="--layer: 1" title="4:24-4:33: @2[0]: _0 = const false
+4:24-4:33: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span></span></span><span class="code even" style="--layer: 2" title="4:24-4:33: @5[0]: _9 = const true
+4:24-4:33: @5.Goto: goto -&gt; bb8"><span class="annotation">@5⦊</span></span><span class="code even" style="--layer: 3" title="4:24-4:33: @6[0]: _9 = const false
+4:24-4:33: @6.Goto: goto -&gt; bb8"><span class="annotation">@6⦊</span></span><span class="code even" style="--layer: 4" title="4:24-4:33: @1[0]: _0 = const true
+4:24-4:33: @1.Goto: goto -&gt; bb4"><span class="annotation">@1⦊</span>PartialEq<span class="annotation">⦉@1</span></span><span class="code even" style="--layer: 3" title="4:24-4:33: @6[0]: _9 = const false
+4:24-4:33: @6.Goto: goto -&gt; bb8"><span class="annotation">⦉@6</span></span><span class="code even" style="--layer: 2" title="4:24-4:33: @5[0]: _9 = const true
+4:24-4:33: @5.Goto: goto -&gt; bb8"><span class="annotation">⦉@5</span></span><span><span class="code even" style="--layer: 1" title="4:24-4:33: @2[0]: _0 = const false
+4:24-4:33: @2.Goto: goto -&gt; bb4"><span class="annotation">⦉@2</span></span></span><span><span class="code odd" style="--layer: 1" title="4:33-4:33: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#7}-fmt.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#7}-fmt.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..c3fed16a3b4
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#7}-fmt.-------.InstrumentCoverage.0.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#7}-fmt - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                <span><span class="code even" style="--layer: 1" title="4:17-4:22: @0[0]: FakeRead(ForMatchedPlace, (*_1))
+4:17-4:22: @0[2]: _3 = &amp;((*_1).0: usize)
+4:17-4:22: @0[4]: _4 = &amp;((*_1).1: usize)
+4:17-4:22: @0[6]: _5 = &amp;((*_1).2: usize)
+4:17-4:22: @0[9]: _7 = &amp;mut (*_2)
+4:17-4:22: @0[12]: _9 = const &quot;Version&quot;
+4:17-4:22: @0[13]: _8 = &amp;(*_9)
+4:17-4:22: @0.Call: _6 = Formatter::debug_struct(move _7, move _8) -&gt; [return: bb1, unwind: bb6]
+4:17-4:22: @1[2]: FakeRead(ForLet, _6)
+4:17-4:22: @1[6]: _11 = &amp;mut _6
+4:17-4:22: @1[9]: _13 = const &quot;major&quot;
+4:17-4:22: @1[10]: _12 = &amp;(*_13)
+4:17-4:22: @1[15]: _17 = &amp;(*_3)
+4:17-4:22: @1[16]: _16 = &amp;_17
+4:17-4:22: @1[17]: _15 = &amp;(*_16)
+4:17-4:22: @1[18]: _14 = move _15 as &amp;dyn std::fmt::Debug (Pointer(Unsize))
+4:17-4:22: @1.Call: _10 = DebugStruct::field(move _11, move _12, move _14) -&gt; [return: bb2, unwind: bb6]
+4:17-4:22: @2[9]: _19 = &amp;mut _6
+4:17-4:22: @2[12]: _21 = const &quot;minor&quot;
+4:17-4:22: @2[13]: _20 = &amp;(*_21)
+4:17-4:22: @2[18]: _25 = &amp;(*_4)
+4:17-4:22: @2[19]: _24 = &amp;_25
+4:17-4:22: @2[20]: _23 = &amp;(*_24)
+4:17-4:22: @2[21]: _22 = move _23 as &amp;dyn std::fmt::Debug (Pointer(Unsize))
+4:17-4:22: @2.Call: _18 = DebugStruct::field(move _19, move _20, move _22) -&gt; [return: bb3, unwind: bb6]
+4:17-4:22: @3[9]: _27 = &amp;mut _6
+4:17-4:22: @3[12]: _29 = const &quot;patch&quot;
+4:17-4:22: @3[13]: _28 = &amp;(*_29)
+4:17-4:22: @3[18]: _33 = &amp;(*_5)
+4:17-4:22: @3[19]: _32 = &amp;_33
+4:17-4:22: @3[20]: _31 = &amp;(*_32)
+4:17-4:22: @3[21]: _30 = move _31 as &amp;dyn std::fmt::Debug (Pointer(Unsize))
+4:17-4:22: @3.Call: _26 = DebugStruct::field(move _27, move _28, move _30) -&gt; [return: bb4, unwind: bb6]
+4:17-4:22: @4[8]: _34 = &amp;mut _6
+4:17-4:22: @4.Call: _0 = DebugStruct::finish(move _34) -&gt; [return: bb5, unwind: bb6]
+4:22-4:22: @5.Return: return"><span class="annotation">@0,1,2,3,4,5⦊</span>Debug<span class="annotation">⦉@0,1,2,3,4,5</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#8}-clone.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#8}-clone.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..6a4f11e0754
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#8}-clone.-------.InstrumentCoverage.0.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#8}-clone - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">         <span><span class="code even" style="--layer: 1" title="4:10-4:15: @0[0]: FakeRead(ForMatchedPlace, (*_1))
+4:10-4:15: @0[2]: _2 = &amp;((*_1).0: usize)
+4:10-4:15: @0[4]: _3 = &amp;((*_1).1: usize)
+4:10-4:15: @0[6]: _4 = &amp;((*_1).2: usize)
+4:10-4:15: @0[10]: _7 = &amp;(*_2)
+4:10-4:15: @0[11]: _6 = &amp;(*_7)
+4:10-4:15: @0.Call: _5 = &lt;usize as Clone&gt;::clone(move _6) -&gt; [return: bb1, unwind: bb4]
+4:10-4:15: @1[4]: _10 = &amp;(*_3)
+4:10-4:15: @1[5]: _9 = &amp;(*_10)
+4:10-4:15: @1.Call: _8 = &lt;usize as Clone&gt;::clone(move _9) -&gt; [return: bb2, unwind: bb4]
+4:10-4:15: @2[4]: _13 = &amp;(*_4)
+4:10-4:15: @2[5]: _12 = &amp;(*_13)
+4:10-4:15: @2.Call: _11 = &lt;usize as Clone&gt;::clone(move _12) -&gt; [return: bb3, unwind: bb4]
+4:10-4:15: @3[1]: _0 = Version { major: move _5, minor: move _8, patch: move _11 }
+4:15-4:15: @3.Return: return"><span class="annotation">@0,1,2,3⦊</span>Clone<span class="annotation">⦉@0,1,2,3</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html
index 4b21d3fc263..618f84513e9 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html
@@ -89,39 +89,45 @@
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="12:9-12:16: @3[6]: _7 = _1
 12:9-12:16: @3[7]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">        countdown</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">        countdown</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">        =</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">        =</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">            10</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">            10</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">        ;</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">        ;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="18:6-18:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    loop</span></span>
 <span class="line"><span class="code" style="--layer: 0">    {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
 23:13-25:14: @9[4]: _10 = Eq(move _11, const 0_i32)
 23:13-25:14: @9[6]: FakeRead(ForMatchedPlace, _10)"><span class="annotation">@8,9⦊</span>countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
+<span class="line"><span class="code odd" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
 23:13-25:14: @9[4]: _10 = Eq(move _11, const 0_i32)
 23:13-25:14: @9[6]: FakeRead(ForMatchedPlace, _10)">                ==</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
+<span class="line"><span class="code odd" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
 23:13-25:14: @9[4]: _10 = Eq(move _11, const 0_i32)
 23:13-25:14: @9[6]: FakeRead(ForMatchedPlace, _10)">            0<span class="annotation">⦉@8,9</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        {</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="27:13-27:18: @12[0]: _0 = const ()"><span class="annotation">@10,12⦊</span>break<span class="annotation">⦉@10,12</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="27:13-27:18: @12[0]: _0 = const ()"><span class="annotation">@10,12⦊</span>break<span class="annotation">⦉@10,12</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">            ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        }</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)"><span class="annotation">@11⦊</span>countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)">        -=</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)">        1<span class="annotation">⦉@11</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)"><span class="annotation">@13⦊</span>countdown</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)">        -=</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)">        1<span class="annotation">⦉@13</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code even" style="--layer: 1" title="34:6-34:6: @7.Goto: goto -&gt; bb8"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="35:2-35:2: @12.Return: return"><span class="annotation">@10,12⦊</span>‸<span class="annotation">⦉@10,12</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html
index 5ba770ef607..66885d0612b 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html
@@ -86,51 +86,39 @@
 9:9-9:22: @3[3]: FakeRead(ForLet, _5)">    let mut countdown = 1<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="10:8-10:15: @3[6]: _7 = _1
 10:8-10:15: @3[7]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:22: @6[0]: _5 = const 0_i32
-10:16-12:6: @6[1]: _6 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:22: @6[0]: _5 = const 0_i32
-10:16-12:6: @6[1]: _6 = const ()">        countdown = 0;</span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7">        countdown = 0;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:22: @6[0]: _5 = const 0_i32
-10:16-12:6: @6[1]: _6 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="12:6-12:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="15:9-15:10: @11[2]: _17 = discriminant(_14)"><span class="annotation">@9,10,11⦊</span>for</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="15:9-15:10: @11[2]: _17 = discriminant(_14)">        _<span class="annotation">⦉@9,10,11</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    for</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="15:9-15:10: @15[1]: _18 = ((_14 as Some).0: i32)
+15:9-15:10: @15[3]: _19 = _18
+15:9-15:10: @15[4]: _12 = move _19
+15:9-15:10: @15[5]: _13 = const ()"><span class="annotation">@13,15,17⦊</span>_<span class="annotation">⦉@13,15,17</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    in</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="17:9-17:13: @7[4]: _9 = std::ops::Range::&lt;i32&gt; { start: const 0_i32, end: const 2_i32 }
-17:9-17:13: @7.Call: _8 = &lt;std::ops::Range&lt;i32&gt; as IntoIterator&gt;::into_iter(move _9) -&gt; [return: bb8, unwind: bb22]
-17:9-17:13: @8[1]: FakeRead(ForMatchedPlace, _8)
-17:9-17:13: @8[3]: _10 = move _8"><span class="annotation">@7,8⦊</span>0..2<span class="annotation">⦉@7,8</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="17:9-17:13: @10[5]: _16 = &amp;mut _10
+17:9-17:13: @10[6]: _15 = &amp;mut (*_16)
+17:9-17:13: @10.Call: _14 = &lt;std::ops::Range&lt;i32&gt; as Iterator&gt;::next(move _15) -&gt; [return: bb11, unwind: bb22]
+17:9-17:13: @11[1]: FakeRead(ForMatchedPlace, _14)"><span class="annotation">@9,10,11⦊</span>0..2<span class="annotation">⦉@9,10,11</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        let z</span></span>
 <span class="line"><span class="code" style="--layer: 0">        ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        match</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)"><span class="annotation">@13,15,17⦊</span>countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">        {</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">            x</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">            if</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">                x</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)"><span class="annotation">@13,15,17⦊</span>countdown<span class="annotation">⦉@13,15,17</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        {</span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="24:13-24:14: @18[3]: _23 = _5"><span class="annotation">@18⦊</span>x<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">            if</span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code odd" style="--layer: 1" title="26:17-26:18: @17[4]: _26 = (*_24)
+26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)"><span class="annotation">@13,15,17⦊</span>x</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="26:17-26:18: @17[4]: _26 = (*_24)
 26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">                    &lt;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">                1<span class="annotation">⦉@13,15,17</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="26:17-26:18: @17[4]: _26 = (*_24)
+26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">                1<span class="annotation">⦉@13,15,17</span></span></span><span><span class="code even" style="--layer: 1" title="28:18-28:18: @19.Goto: goto -&gt; bb16"><span class="annotation">@19⦊</span>‸<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">            =&gt;</span></span>
 <span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="31:21-31:30: @18[5]: _27 = _5
 31:17-31:30: @18[6]: _22 = move _27
@@ -184,7 +172,7 @@
 <span class="line"><span class="code" style="--layer: 0">            =&gt;</span></span>
 <span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="40:13-40:15: @16[0]: _21 = const ()"><span class="annotation">@16⦊</span>{}<span class="annotation">⦉@16</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        }</span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code odd" style="--layer: 1" title="42:6-42:6: @8.Goto: goto -&gt; bb9"><span class="annotation">@7,8⦊</span>‸<span class="annotation">⦉@7,8</span></span></span><span><span class="code even" style="--layer: 1" title="42:6-42:6: @20.Goto: goto -&gt; bb9"><span class="annotation">@20⦊</span>‸<span class="annotation">⦉@20</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="43:2-43:2: @12.Return: return"><span class="annotation">@12⦊</span>‸<span class="annotation">⦉@12</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.tight_infinite_loop/tight_infinite_loop.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.tight_infinite_loop/tight_infinite_loop.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..db08315baa6
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.tight_infinite_loop/tight_infinite_loop.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>tight_infinite_loop.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 0"><span class="line"><span class="code" style="--layer: 0">fn main() {</span></span>
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="2:8-2:13: @0[1]: _1 = const false
+2:8-2:13: @0[2]: FakeRead(ForMatchedPlace, _1)"><span class="annotation">@0⦊</span>false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="3:9-3:16: @4.FalseUnwind: falseUnwind -&gt; [real: bb5, cleanup: bb6]
+3:14-3:16: @5[0]: _3 = const ()"><span class="annotation">@4,5⦊</span>loop {}<span class="annotation">⦉@4,5</span></span></span><span><span class="code even" style="--layer: 1" title="3:16-3:16: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>‸<span class="annotation">⦉@1,3</span></span></span><span><span class="code odd" style="--layer: 1" title="3:16-3:16: @5.Goto: goto -&gt; bb4"><span class="annotation">@4,5⦊</span>‸<span class="annotation">⦉@4,5</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="5:2-5:2: @2.Return: return"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html
index 9f993342340..8a0b1ae8dab 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html
@@ -67,7 +67,7 @@
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="8:12-8:14: @2[1]: _4 = ()
 8:9-8:15: @2[2]: _0 = std::result::Result::&lt;(), ()&gt;::Ok(move _4)"><span class="annotation">@2⦊</span>Ok(())<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="10:2-10:2: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code odd" style="--layer: 1" title="9:6-9:6: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>‸<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="10:2-10:2: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html
index 660c3031f35..428c6fadc27 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html
@@ -65,37 +65,51 @@
 <span class="line"><span class="code even" style="--layer: 1" title="14:21-14:23: @0[1]: _1 = const 10_i32
 13:9-14:18: @0[2]: FakeRead(ForLet, _1)">        countdown = 10<span class="annotation">⦉@0,1</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="17:9-17:10: @4[2]: _12 = discriminant(_9)"><span class="annotation">@2,3,4⦊</span>for</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="17:9-17:10: @4[2]: _12 = discriminant(_9)">        _<span class="annotation">⦉@2,3,4</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    for</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="17:9-17:10: @8[1]: _13 = ((_9 as Some).0: i32)
+17:9-17:10: @8[3]: _14 = _13
+17:9-17:10: @8[4]: _7 = move _14
+17:9-17:10: @8[5]: _8 = const ()"><span class="annotation">@6,8⦊</span>_<span class="annotation">⦉@6,8</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    in</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="19:9-19:14: @0[6]: _4 = std::ops::Range::&lt;i32&gt; { start: const 0_i32, end: const 10_i32 }
-19:9-19:14: @0.Call: _3 = &lt;std::ops::Range&lt;i32&gt; as IntoIterator&gt;::into_iter(move _4) -&gt; [return: bb1, unwind: bb32]
-19:9-19:14: @1[1]: FakeRead(ForMatchedPlace, _3)
-19:9-19:14: @1[3]: _5 = move _3"><span class="annotation">@0,1⦊</span>0..10<span class="annotation">⦉@0,1</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="19:9-19:14: @3[5]: _11 = &amp;mut _5
+19:9-19:14: @3[6]: _10 = &amp;mut (*_11)
+19:9-19:14: @3.Call: _9 = &lt;std::ops::Range&lt;i32&gt; as Iterator&gt;::next(move _10) -&gt; [return: bb4, unwind: bb32]
+19:9-19:14: @4[1]: FakeRead(ForMatchedPlace, _9)"><span class="annotation">@2,3,4⦊</span>0..10<span class="annotation">⦉@2,3,4</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)"><span class="annotation">@6,8⦊</span>countdown</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)">            -= 1<span class="annotation">⦉@6,8</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">        if</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="25:13-25:22: @9[3]: _19 = _1
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
 25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
-25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"><span class="annotation">@9⦊</span>countdown &lt; 5<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"><span class="annotation">@9⦊</span>countdown</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
+25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)">            -= 1</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
+25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)">        ;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
+25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)">        if</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
+25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)">            countdown &lt; 5<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        {</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="27:13-27:41: @12.Call: _22 = call(const true) -&gt; [return: bb13, unwind: bb32]
-27:13-27:42: @13.Call: _21 = &lt;std::result::Result&lt;(), ()&gt; as Try&gt;::into_result(move _22) -&gt; [return: bb14, unwind: bb32]
-27:13-27:42: @14[1]: FakeRead(ForMatchedPlace, _21)
-27:41-27:42: @14[2]: _23 = discriminant(_21)"><span class="annotation">@10,12,13,14⦊</span>call(/*return_error=*/ true)?<span class="annotation">⦉@10,12,13,14</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="27:13-27:41: @12.Call: _22 = call(const true) -&gt; [return: bb13, unwind: bb32]"><span class="annotation">@10,12,13,14⦊</span>call(/*return_error=*/ true)<span class="annotation">⦉@10,12,13,14</span></span></span><span><span class="code odd" style="--layer: 1" title="27:41-27:42: @18[1]: _24 = ((_21 as Err).0: ())
+27:41-27:42: @18[4]: _27 = _24
+27:41-27:42: @18.Call: _26 = &lt;() as From&lt;()&gt;&gt;::from(move _27) -&gt; [return: bb19, unwind: bb32]"><span class="annotation">@16,18,19,20⦊</span>?<span class="annotation">⦉@16,18,19,20</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        }</span></span>
 <span class="line"><span class="code" style="--layer: 0">        else</span></span>
 <span class="line"><span class="code" style="--layer: 0">        {</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="31:13-31:42: @11.Call: _31 = call(const false) -&gt; [return: bb21, unwind: bb32]
-31:13-31:43: @21.Call: _30 = &lt;std::result::Result&lt;(), ()&gt; as Try&gt;::into_result(move _31) -&gt; [return: bb22, unwind: bb32]
-31:13-31:43: @22[1]: FakeRead(ForMatchedPlace, _30)
-31:42-31:43: @22[2]: _32 = discriminant(_30)"><span class="annotation">@11,21,22⦊</span>call(/*return_error=*/ false)?<span class="annotation">⦉@11,21,22</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">        }</span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="34:8-34:10: @5[9]: _38 = ()
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="31:13-31:42: @11.Call: _31 = call(const false) -&gt; [return: bb21, unwind: bb32]"><span class="annotation">@11,21,22⦊</span>call(/*return_error=*/ false)<span class="annotation">⦉@11,21,22</span></span></span><span><span class="code odd" style="--layer: 1" title="31:42-31:43: @26[1]: _33 = ((_30 as Err).0: ())
+31:42-31:43: @26[4]: _36 = _33
+31:42-31:43: @26.Call: _35 = &lt;() as From&lt;()&gt;&gt;::from(move _36) -&gt; [return: bb27, unwind: bb32]"><span class="annotation">@24,26,27,28⦊</span>?<span class="annotation">⦉@24,26,27,28</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        }</span><span><span class="code even" style="--layer: 1" title="32:10-32:10: @15.Goto: goto -&gt; bb29"><span class="annotation">@15⦊</span>‸<span class="annotation">⦉@15</span></span></span><span><span class="code odd" style="--layer: 1" title="32:10-32:10: @23.Goto: goto -&gt; bb29"><span class="annotation">@23⦊</span>‸<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code even" style="--layer: 1" title="33:6-33:6: @1.Goto: goto -&gt; bb2"><span class="annotation">@0,1⦊</span>‸<span class="annotation">⦉@0,1</span></span></span><span><span class="code odd" style="--layer: 1" title="33:6-33:6: @29.Goto: goto -&gt; bb2"><span class="annotation">@29⦊</span>‸<span class="annotation">⦉@29</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="34:8-34:10: @5[9]: _38 = ()
 34:5-34:11: @5[10]: _0 = std::result::Result::&lt;(), ()&gt;::Ok(move _38)"><span class="annotation">@5⦊</span>Ok(())<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="35:2-35:2: @31.Return: return"><span class="annotation">@31⦊</span>‸<span class="annotation">⦉@31</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="35:2-35:2: @30.Goto: goto -&gt; bb31"><span class="annotation">@30⦊</span>‸<span class="annotation">⦉@30</span></span></span><span><span class="code even" style="--layer: 1" title="35:2-35:2: @31.Return: return"><span class="annotation">@31⦊</span>‸<span class="annotation">⦉@31</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html
index 28f1d013c83..b9f6f4d7832 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html
@@ -64,32 +64,42 @@
 4:9-4:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="5:8-5:12: @0[5]: _3 = const true
 5:8-5:12: @0[6]: FakeRead(ForMatchedPlace, _3)"><span class="annotation">@0⦊</span>true<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="6:9-6:23: @3[0]: _1 = const 10_u32
-5:13-7:6: @3[1]: _2 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+5:13-7:6: @3[1]: _2 = const ()
+7:6-7:6: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="6:9-6:23: @3[0]: _1 = const 10_u32
-5:13-7:6: @3[1]: _2 = const ()">        countdown = 10;</span></span>
+5:13-7:6: @3[1]: _2 = const ()
+7:6-7:6: @3.Goto: goto -&gt; bb4">        countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="6:9-6:23: @3[0]: _1 = const 10_u32
-5:13-7:6: @3[1]: _2 = const ()">    }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
+5:13-7:6: @3[1]: _2 = const ()
+7:6-7:6: @3.Goto: goto -&gt; bb4">    }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="7:6-7:6: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    const B: u32 = 100;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="10:9-10:10: @25[0]: FakeRead(ForLet, _4)"><span class="annotation">@25⦊</span>x<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code odd" style="--layer: 1" title="10:16-10:25: @4[5]: _6 = _1
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code odd" style="--layer: 1" title="10:9-10:10: @25[0]: FakeRead(ForLet, _4)"><span class="annotation">@25⦊</span>x<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="10:16-10:25: @4[5]: _6 = _1
 10:16-10:29: @4[6]: _5 = Gt(move _6, const 7_u32)
 10:16-10:29: @4[8]: FakeRead(ForMatchedPlace, _5)"><span class="annotation">@4⦊</span>countdown &gt; 7<span class="annotation">⦉@4</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="11:9-11:23: @7[0]: _7 = CheckedSub(_1, const 4_u32)"><span class="annotation">@5,7⦊</span>countdown -= 4<span class="annotation">⦉@5,7</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="12:9-12:10: @8[1]: _4 = const B"><span class="annotation">@8⦊</span>B<span class="annotation">⦉@8</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="11:9-11:23: @8[0]: _1 = move (_7.0: u32)
+12:9-12:10: @8[1]: _4 = const B"><span class="annotation">@8⦊</span>countdown -= 4;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:23: @8[0]: _1 = move (_7.0: u32)
+12:9-12:10: @8[1]: _4 = const B">        B<span class="annotation">⦉@8</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code even" style="--layer: 1" title="13:15-13:24: @6[2]: _9 = _1
 13:15-13:28: @6[3]: _8 = Gt(move _9, const 2_u32)
 13:15-13:28: @6[5]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@6⦊</span>countdown &gt; 2<span class="annotation">⦉@6</span></span></span><span class="code" style="--layer: 0"> {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code odd" style="--layer: 1" title="14:12-14:21: @11[5]: _14 = _1
 14:12-14:25: @11[6]: _13 = Lt(move _14, const 1_u32)"><span class="annotation">@9,11⦊</span>countdown &lt; 1<span class="annotation">⦉@9,11</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="14:29-14:38: @18[2]: _16 = _1
-14:29-14:42: @18[3]: _15 = Gt(move _16, const 5_u32)"><span class="annotation">@18⦊</span>countdown &gt; 5<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="14:46-14:55: @14[2]: _18 = _1
-14:46-14:60: @14[3]: _17 = Ne(move _18, const 9_u32)"><span class="annotation">@14⦊</span>countdown != 9<span class="annotation">⦉@14</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
-14:61-16:10: @22[1]: _10 = const ()"><span class="annotation">@20,22⦊</span>{</span></span>
+14:29-14:42: @18[3]: _15 = Gt(move _16, const 5_u32)"><span class="annotation">@18⦊</span>countdown &gt; 5<span class="annotation">⦉@18</span></span></span><span><span class="code odd" style="--layer: 1" title="14:42-14:42: @16.Goto: goto -&gt; bb19"><span class="annotation">@16⦊</span>‸<span class="annotation">⦉@16</span></span></span><span><span class="code even" style="--layer: 1" title="14:42-14:42: @17.Goto: goto -&gt; bb19"><span class="annotation">@17⦊</span>‸<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="14:46-14:55: @14[2]: _18 = _1
+14:46-14:60: @14[3]: _17 = Ne(move _18, const 9_u32)"><span class="annotation">@14⦊</span>countdown != 9<span class="annotation">⦉@14</span></span></span><span><span class="code even" style="--layer: 1" title="14:60-14:60: @12.Goto: goto -&gt; bb15"><span class="annotation">@12⦊</span>‸<span class="annotation">⦉@12</span></span></span><span><span class="code odd" style="--layer: 1" title="14:60-14:60: @13.Goto: goto -&gt; bb15"><span class="annotation">@13⦊</span>‸<span class="annotation">⦉@13</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
+14:61-16:10: @22[1]: _10 = const ()
+16:10-16:10: @22.Goto: goto -&gt; bb23"><span class="annotation">@20,22⦊</span>{</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
-14:61-16:10: @22[1]: _10 = const ()">            countdown = 0;</span></span>
+14:61-16:10: @22[1]: _10 = const ()
+16:10-16:10: @22.Goto: goto -&gt; bb23">            countdown = 0;</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
-14:61-16:10: @22[1]: _10 = const ()">        }<span class="annotation">⦉@20,22</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="17:9-17:23: @23[2]: _19 = CheckedSub(_1, const 5_u32)"><span class="annotation">@23⦊</span>countdown -= 5<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="18:9-18:18: @24[1]: _4 = _1"><span class="annotation">@24⦊</span>countdown<span class="annotation">⦉@24</span></span></span><span class="code" style="--layer: 0"></span></span>
+14:61-16:10: @22[1]: _10 = const ()
+16:10-16:10: @22.Goto: goto -&gt; bb23">        }<span class="annotation">⦉@20,22</span></span></span><span><span class="code odd" style="--layer: 1" title="16:10-16:10: @21.Goto: goto -&gt; bb23"><span class="annotation">@21⦊</span>‸<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="17:9-17:23: @24[0]: _1 = move (_19.0: u32)
+18:9-18:18: @24[1]: _4 = _1"><span class="annotation">@24⦊</span>countdown -= 5;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="17:9-17:23: @24[0]: _1 = move (_19.0: u32)
+18:9-18:18: @24[1]: _4 = _1">        countdown<span class="annotation">⦉@24</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="20:9-20:15: @10[0]: _0 = const ()"><span class="annotation">@10⦊</span>return<span class="annotation">⦉@10</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    };</span></span>
@@ -98,29 +108,35 @@
 23:9-23:22: @25[4]: FakeRead(ForLet, _21)"><span class="annotation">@25⦊</span>mut countdown = 0<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="24:8-24:12: @25[7]: _23 = const true
 24:8-24:12: @25[8]: FakeRead(ForMatchedPlace, _23)"><span class="annotation">@25⦊</span>true<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="25:9-25:23: @28[0]: _21 = const 10_i32
-24:13-26:6: @28[1]: _22 = const ()"><span class="annotation">@26,28⦊</span>{</span></span>
+24:13-26:6: @28[1]: _22 = const ()
+26:6-26:6: @28.Goto: goto -&gt; bb29"><span class="annotation">@26,28⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="25:9-25:23: @28[0]: _21 = const 10_i32
-24:13-26:6: @28[1]: _22 = const ()">        countdown = 10;</span></span>
+24:13-26:6: @28[1]: _22 = const ()
+26:6-26:6: @28.Goto: goto -&gt; bb29">        countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="25:9-25:23: @28[0]: _21 = const 10_i32
-24:13-26:6: @28[1]: _22 = const ()">    }<span class="annotation">⦉@26,28</span></span></span><span class="code" style="--layer: 0"></span></span>
+24:13-26:6: @28[1]: _22 = const ()
+26:6-26:6: @28.Goto: goto -&gt; bb29">    }<span class="annotation">⦉@26,28</span></span></span><span><span class="code even" style="--layer: 1" title="26:6-26:6: @27.Goto: goto -&gt; bb29"><span class="annotation">@27⦊</span>‸<span class="annotation">⦉@27</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="28:8-28:17: @29[5]: _26 = _21
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code odd" style="--layer: 1" title="28:8-28:17: @29[5]: _26 = _21
 28:8-28:21: @29[6]: _25 = Gt(move _26, const 7_i32)
 28:8-28:21: @29[8]: FakeRead(ForMatchedPlace, _25)"><span class="annotation">@29⦊</span>countdown &gt; 7<span class="annotation">⦉@29</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="29:9-29:23: @32[0]: _27 = CheckedSub(_21, const 4_i32)"><span class="annotation">@30,32⦊</span>countdown -= 4<span class="annotation">⦉@30,32</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code even" style="--layer: 1" title="30:15-30:24: @31[2]: _29 = _21
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="29:9-29:23: @33[0]: _21 = move (_27.0: i32)"><span class="annotation">@33⦊</span>countdown -= 4<span class="annotation">⦉@33</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code odd" style="--layer: 1" title="30:15-30:24: @31[2]: _29 = _21
 30:15-30:28: @31[3]: _28 = Gt(move _29, const 2_i32)
 30:15-30:28: @31[5]: FakeRead(ForMatchedPlace, _28)"><span class="annotation">@31⦊</span>countdown &gt; 2<span class="annotation">⦉@31</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code odd" style="--layer: 1" title="31:12-31:21: @36[5]: _34 = _21
-31:12-31:25: @36[6]: _33 = Lt(move _34, const 1_i32)"><span class="annotation">@34,36⦊</span>countdown &lt; 1<span class="annotation">⦉@34,36</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="31:29-31:38: @43[2]: _36 = _21
-31:29-31:42: @43[3]: _35 = Gt(move _36, const 5_i32)"><span class="annotation">@43⦊</span>countdown &gt; 5<span class="annotation">⦉@43</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="31:46-31:55: @39[2]: _38 = _21
-31:46-31:60: @39[3]: _37 = Ne(move _38, const 9_i32)"><span class="annotation">@39⦊</span>countdown != 9<span class="annotation">⦉@39</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
-31:61-33:10: @47[1]: _30 = const ()"><span class="annotation">@45,47⦊</span>{</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
-31:61-33:10: @47[1]: _30 = const ()">            countdown = 0;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
-31:61-33:10: @47[1]: _30 = const ()">        }<span class="annotation">⦉@45,47</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="34:9-34:23: @48[2]: _39 = CheckedSub(_21, const 5_i32)"><span class="annotation">@48⦊</span>countdown -= 5<span class="annotation">⦉@48</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="31:12-31:21: @36[5]: _34 = _21
+31:12-31:25: @36[6]: _33 = Lt(move _34, const 1_i32)"><span class="annotation">@34,36⦊</span>countdown &lt; 1<span class="annotation">⦉@34,36</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="31:29-31:38: @43[2]: _36 = _21
+31:29-31:42: @43[3]: _35 = Gt(move _36, const 5_i32)"><span class="annotation">@43⦊</span>countdown &gt; 5<span class="annotation">⦉@43</span></span></span><span><span class="code even" style="--layer: 1" title="31:42-31:42: @41.Goto: goto -&gt; bb44"><span class="annotation">@41⦊</span>‸<span class="annotation">⦉@41</span></span></span><span><span class="code odd" style="--layer: 1" title="31:42-31:42: @42.Goto: goto -&gt; bb44"><span class="annotation">@42⦊</span>‸<span class="annotation">⦉@42</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="31:46-31:55: @39[2]: _38 = _21
+31:46-31:60: @39[3]: _37 = Ne(move _38, const 9_i32)"><span class="annotation">@39⦊</span>countdown != 9<span class="annotation">⦉@39</span></span></span><span><span class="code odd" style="--layer: 1" title="31:60-31:60: @37.Goto: goto -&gt; bb40"><span class="annotation">@37⦊</span>‸<span class="annotation">⦉@37</span></span></span><span><span class="code even" style="--layer: 1" title="31:60-31:60: @38.Goto: goto -&gt; bb40"><span class="annotation">@38⦊</span>‸<span class="annotation">⦉@38</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
+31:61-33:10: @47[1]: _30 = const ()
+33:10-33:10: @47.Goto: goto -&gt; bb48"><span class="annotation">@45,47⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
+31:61-33:10: @47[1]: _30 = const ()
+33:10-33:10: @47.Goto: goto -&gt; bb48">            countdown = 0;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
+31:61-33:10: @47[1]: _30 = const ()
+33:10-33:10: @47.Goto: goto -&gt; bb48">        }<span class="annotation">⦉@45,47</span></span></span><span><span class="code even" style="--layer: 1" title="33:10-33:10: @46.Goto: goto -&gt; bb48"><span class="annotation">@46⦊</span>‸<span class="annotation">⦉@46</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="34:9-34:23: @49[0]: _21 = move (_39.0: i32)"><span class="annotation">@49⦊</span>countdown -= 5<span class="annotation">⦉@49</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="36:9-36:15: @35[0]: _0 = const ()"><span class="annotation">@35⦊</span>return<span class="annotation">⦉@35</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    }</span></span>
@@ -129,29 +145,35 @@
 39:9-39:22: @50[4]: FakeRead(ForLet, _41)"><span class="annotation">@50⦊</span>mut countdown = 0<span class="annotation">⦉@50</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code odd" style="--layer: 1" title="40:8-40:12: @50[7]: _43 = const true
 40:8-40:12: @50[8]: FakeRead(ForMatchedPlace, _43)"><span class="annotation">@50⦊</span>true<span class="annotation">⦉@50</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
-40:13-42:6: @53[1]: _42 = const ()"><span class="annotation">@51,53⦊</span>{</span></span>
+40:13-42:6: @53[1]: _42 = const ()
+42:6-42:6: @53.Goto: goto -&gt; bb54"><span class="annotation">@51,53⦊</span>{</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
-40:13-42:6: @53[1]: _42 = const ()">        countdown = 1;</span></span>
+40:13-42:6: @53[1]: _42 = const ()
+42:6-42:6: @53.Goto: goto -&gt; bb54">        countdown = 1;</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
-40:13-42:6: @53[1]: _42 = const ()">    }<span class="annotation">⦉@51,53</span></span></span><span class="code" style="--layer: 0"></span></span>
+40:13-42:6: @53[1]: _42 = const ()
+42:6-42:6: @53.Goto: goto -&gt; bb54">    }<span class="annotation">⦉@51,53</span></span></span><span><span class="code odd" style="--layer: 1" title="42:6-42:6: @52.Goto: goto -&gt; bb54"><span class="annotation">@52⦊</span>‸<span class="annotation">⦉@52</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code odd" style="--layer: 1" title="44:9-44:10: @77[0]: FakeRead(ForLet, _44)"><span class="annotation">@77⦊</span>z<span class="annotation">⦉@77</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="44:16-44:25: @54[5]: _46 = _41
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="44:9-44:10: @77[0]: FakeRead(ForLet, _44)"><span class="annotation">@77⦊</span>z<span class="annotation">⦉@77</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code odd" style="--layer: 1" title="44:16-44:25: @54[5]: _46 = _41
 44:16-44:29: @54[6]: _45 = Gt(move _46, const 7_i32)
 44:16-44:29: @54[8]: FakeRead(ForMatchedPlace, _45)"><span class="annotation">@54⦊</span>countdown &gt; 7<span class="annotation">⦉@54</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="45:9-45:23: @57[0]: _47 = CheckedSub(_41, const 4_i32)"><span class="annotation">@55,57⦊</span>countdown -= 4<span class="annotation">⦉@55,57</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code even" style="--layer: 1" title="46:15-46:24: @56[2]: _49 = _41
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="45:9-45:23: @58[0]: _41 = move (_47.0: i32)"><span class="annotation">@58⦊</span>countdown -= 4<span class="annotation">⦉@58</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code odd" style="--layer: 1" title="46:15-46:24: @56[2]: _49 = _41
 46:15-46:28: @56[3]: _48 = Gt(move _49, const 2_i32)
 46:15-46:28: @56[5]: FakeRead(ForMatchedPlace, _48)"><span class="annotation">@56⦊</span>countdown &gt; 2<span class="annotation">⦉@56</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code odd" style="--layer: 1" title="47:12-47:21: @61[5]: _54 = _41
-47:12-47:25: @61[6]: _53 = Lt(move _54, const 1_i32)"><span class="annotation">@59,61⦊</span>countdown &lt; 1<span class="annotation">⦉@59,61</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="47:29-47:38: @68[2]: _56 = _41
-47:29-47:42: @68[3]: _55 = Gt(move _56, const 5_i32)"><span class="annotation">@68⦊</span>countdown &gt; 5<span class="annotation">⦉@68</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="47:46-47:55: @64[2]: _58 = _41
-47:46-47:60: @64[3]: _57 = Ne(move _58, const 9_i32)"><span class="annotation">@64⦊</span>countdown != 9<span class="annotation">⦉@64</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
-47:61-49:10: @72[1]: _50 = const ()"><span class="annotation">@70,72⦊</span>{</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
-47:61-49:10: @72[1]: _50 = const ()">            countdown = 0;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
-47:61-49:10: @72[1]: _50 = const ()">        }<span class="annotation">⦉@70,72</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="50:9-50:23: @73[2]: _59 = CheckedSub(_41, const 5_i32)"><span class="annotation">@73⦊</span>countdown -= 5<span class="annotation">⦉@73</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="47:12-47:21: @61[5]: _54 = _41
+47:12-47:25: @61[6]: _53 = Lt(move _54, const 1_i32)"><span class="annotation">@59,61⦊</span>countdown &lt; 1<span class="annotation">⦉@59,61</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="47:29-47:38: @68[2]: _56 = _41
+47:29-47:42: @68[3]: _55 = Gt(move _56, const 5_i32)"><span class="annotation">@68⦊</span>countdown &gt; 5<span class="annotation">⦉@68</span></span></span><span><span class="code even" style="--layer: 1" title="47:42-47:42: @66.Goto: goto -&gt; bb69"><span class="annotation">@66⦊</span>‸<span class="annotation">⦉@66</span></span></span><span><span class="code odd" style="--layer: 1" title="47:42-47:42: @67.Goto: goto -&gt; bb69"><span class="annotation">@67⦊</span>‸<span class="annotation">⦉@67</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="47:46-47:55: @64[2]: _58 = _41
+47:46-47:60: @64[3]: _57 = Ne(move _58, const 9_i32)"><span class="annotation">@64⦊</span>countdown != 9<span class="annotation">⦉@64</span></span></span><span><span class="code odd" style="--layer: 1" title="47:60-47:60: @62.Goto: goto -&gt; bb65"><span class="annotation">@62⦊</span>‸<span class="annotation">⦉@62</span></span></span><span><span class="code even" style="--layer: 1" title="47:60-47:60: @63.Goto: goto -&gt; bb65"><span class="annotation">@63⦊</span>‸<span class="annotation">⦉@63</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
+47:61-49:10: @72[1]: _50 = const ()
+49:10-49:10: @72.Goto: goto -&gt; bb73"><span class="annotation">@70,72⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
+47:61-49:10: @72[1]: _50 = const ()
+49:10-49:10: @72.Goto: goto -&gt; bb73">            countdown = 0;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
+47:61-49:10: @72[1]: _50 = const ()
+49:10-49:10: @72.Goto: goto -&gt; bb73">        }<span class="annotation">⦉@70,72</span></span></span><span><span class="code even" style="--layer: 1" title="49:10-49:10: @71.Goto: goto -&gt; bb73"><span class="annotation">@71⦊</span>‸<span class="annotation">⦉@71</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="50:9-50:23: @74[0]: _41 = move (_59.0: i32)"><span class="annotation">@74⦊</span>countdown -= 5<span class="annotation">⦉@74</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        let </span><span><span class="code even" style="--layer: 1" title="52:35-52:44: @60[1]: _61 = _41
 52:13-52:32: @60[2]: FakeRead(ForLet, _61)
@@ -206,23 +228,26 @@
 <span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code odd" style="--layer: 1" title="57:9-57:10: @98[0]: FakeRead(ForLet, _74)"><span class="annotation">@98⦊</span>w<span class="annotation">⦉@98</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="57:16-57:25: @77[5]: _76 = _41
 57:16-57:29: @77[6]: _75 = Gt(move _76, const 7_i32)
 57:16-57:29: @77[8]: FakeRead(ForMatchedPlace, _75)"><span class="annotation">@77⦊</span>countdown &gt; 7<span class="annotation">⦉@77</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="58:9-58:23: @80[0]: _77 = CheckedSub(_41, const 4_i32)"><span class="annotation">@78,80⦊</span>countdown -= 4<span class="annotation">⦉@78,80</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="58:9-58:23: @81[0]: _41 = move (_77.0: i32)"><span class="annotation">@81⦊</span>countdown -= 4<span class="annotation">⦉@81</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code even" style="--layer: 1" title="59:15-59:24: @79[2]: _79 = _41
 59:15-59:28: @79[3]: _78 = Gt(move _79, const 2_i32)
 59:15-59:28: @79[5]: FakeRead(ForMatchedPlace, _78)"><span class="annotation">@79⦊</span>countdown &gt; 2<span class="annotation">⦉@79</span></span></span><span class="code" style="--layer: 0"> {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code odd" style="--layer: 1" title="60:12-60:21: @84[5]: _84 = _41
 60:12-60:25: @84[6]: _83 = Lt(move _84, const 1_i32)"><span class="annotation">@82,84⦊</span>countdown &lt; 1<span class="annotation">⦉@82,84</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="60:29-60:38: @91[2]: _86 = _41
-60:29-60:42: @91[3]: _85 = Gt(move _86, const 5_i32)"><span class="annotation">@91⦊</span>countdown &gt; 5<span class="annotation">⦉@91</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="60:46-60:55: @87[2]: _88 = _41
-60:46-60:60: @87[3]: _87 = Ne(move _88, const 9_i32)"><span class="annotation">@87⦊</span>countdown != 9<span class="annotation">⦉@87</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
-60:61-62:10: @95[1]: _80 = const ()"><span class="annotation">@93,95⦊</span>{</span></span>
+60:29-60:42: @91[3]: _85 = Gt(move _86, const 5_i32)"><span class="annotation">@91⦊</span>countdown &gt; 5<span class="annotation">⦉@91</span></span></span><span><span class="code odd" style="--layer: 1" title="60:42-60:42: @89.Goto: goto -&gt; bb92"><span class="annotation">@89⦊</span>‸<span class="annotation">⦉@89</span></span></span><span><span class="code even" style="--layer: 1" title="60:42-60:42: @90.Goto: goto -&gt; bb92"><span class="annotation">@90⦊</span>‸<span class="annotation">⦉@90</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="60:46-60:55: @87[2]: _88 = _41
+60:46-60:60: @87[3]: _87 = Ne(move _88, const 9_i32)"><span class="annotation">@87⦊</span>countdown != 9<span class="annotation">⦉@87</span></span></span><span><span class="code even" style="--layer: 1" title="60:60-60:60: @85.Goto: goto -&gt; bb88"><span class="annotation">@85⦊</span>‸<span class="annotation">⦉@85</span></span></span><span><span class="code odd" style="--layer: 1" title="60:60-60:60: @86.Goto: goto -&gt; bb88"><span class="annotation">@86⦊</span>‸<span class="annotation">⦉@86</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
+60:61-62:10: @95[1]: _80 = const ()
+62:10-62:10: @95.Goto: goto -&gt; bb96"><span class="annotation">@93,95⦊</span>{</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
-60:61-62:10: @95[1]: _80 = const ()">            countdown = 0;</span></span>
+60:61-62:10: @95[1]: _80 = const ()
+62:10-62:10: @95.Goto: goto -&gt; bb96">            countdown = 0;</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
-60:61-62:10: @95[1]: _80 = const ()">        }<span class="annotation">⦉@93,95</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="63:9-63:23: @96[2]: _89 = CheckedSub(_41, const 5_i32)"><span class="annotation">@96⦊</span>countdown -= 5<span class="annotation">⦉@96</span></span></span><span class="code" style="--layer: 0">;</span></span>
+60:61-62:10: @95[1]: _80 = const ()
+62:10-62:10: @95.Goto: goto -&gt; bb96">        }<span class="annotation">⦉@93,95</span></span></span><span><span class="code odd" style="--layer: 1" title="62:10-62:10: @94.Goto: goto -&gt; bb96"><span class="annotation">@94⦊</span>‸<span class="annotation">⦉@94</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="63:9-63:23: @97[0]: _41 = move (_89.0: i32)"><span class="annotation">@97⦊</span>countdown -= 5<span class="annotation">⦉@97</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="65:9-65:15: @83[0]: _0 = const ()"><span class="annotation">@83⦊</span>return<span class="annotation">⦉@83</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="65:9-65:15: @83[0]: _0 = const ()"><span class="annotation">@83⦊</span>return<span class="annotation">⦉@83</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    };</span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="67:2-67:2: @102.Return: return"><span class="annotation">@102⦊</span>‸<span class="annotation">⦉@102</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="67:2-67:2: @101.Goto: goto -&gt; bb102"><span class="annotation">@101⦊</span>‸<span class="annotation">⦉@101</span></span></span><span><span class="code odd" style="--layer: 1" title="67:2-67:2: @102.Return: return"><span class="annotation">@102⦊</span>‸<span class="annotation">⦉@102</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while/while.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while/while.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..5c49ec19707
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while/while.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>while.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 0"><span class="line"><span class="code" style="--layer: 0">fn main() {</span></span>
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="2:15-2:16: @0[1]: _1 = const 9_i32
+2:9-2:12: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>num = 9<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    while </span><span><span class="code odd" style="--layer: 1" title="3:11-3:14: @2[2]: _4 = _1
+3:11-3:20: @2[3]: _3 = Ge(move _4, const 10_i32)
+3:11-3:20: @2[5]: FakeRead(ForMatchedPlace, _3)"><span class="annotation">@1,2⦊</span>num &gt;= 10<span class="annotation">⦉@1,2</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="3:21-4:6: @5[0]: _2 = const ()"><span class="annotation">@3,5⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="3:21-4:6: @5[0]: _2 = const ()">    }<span class="annotation">⦉@3,5</span></span></span><span><span class="code even" style="--layer: 1" title="4:6-4:6: @5.Goto: goto -&gt; bb1"><span class="annotation">@3,5⦊</span>‸<span class="annotation">⦉@3,5</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="5:2-5:2: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html
index b96789a9219..be674dc7d38 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html
@@ -62,12 +62,10 @@
 <div class="code" style="counter-reset: line 3"><span class="line"><span class="code" style="--layer: 0">fn main() -&gt; Result&lt;(),u8&gt; {</span></span>
 <span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="5:25-5:27: @0[1]: _1 = const 10_i32
 5:9-5:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 10<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="7:9-7:18: @2[2]: _5 = _1
+<span class="line"><span class="code" style="--layer: 0">    while</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="7:9-7:18: @2[2]: _5 = _1
 7:9-9:10: @2[3]: _4 = Gt(move _5, const 0_i32)
-7:9-9:10: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>while</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="7:9-7:18: @2[2]: _5 = _1
-7:9-9:10: @2[3]: _4 = Gt(move _5, const 0_i32)
-7:9-9:10: @2[5]: FakeRead(ForMatchedPlace, _4)">        countdown</span></span>
+7:9-9:10: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>countdown</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="7:9-7:18: @2[2]: _5 = _1
 7:9-9:10: @2[3]: _4 = Gt(move _5, const 0_i32)
 7:9-9:10: @2[5]: FakeRead(ForMatchedPlace, _4)">            &gt;</span></span>
@@ -104,16 +102,16 @@
 <span class="line"><span class="code" style="--layer: 0">                else</span></span>
 <span class="line"><span class="code" style="--layer: 0">                {</span></span>
 <span class="line"><span class="code" style="--layer: 0">                    </span><span><span class="code odd" style="--layer: 1" title="26:21-26:27: @10[0]: _0 = std::result::Result::&lt;(), u8&gt;::Err(const 1_u8)"><span class="annotation">@10⦊</span>Err(1)<span class="annotation">⦉@10</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">                }</span></span>
+<span class="line"><span class="code" style="--layer: 0">                }</span><span><span class="code even" style="--layer: 1" title="27:18-27:18: @11.Goto: goto -&gt; bb13"><span class="annotation">@9,11⦊</span>‸<span class="annotation">⦉@9,11</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">                ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        }</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)"><span class="annotation">@7⦊</span>countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)">            -=</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)">        1<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)"><span class="annotation">@12⦊</span>countdown</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)">            -=</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)">        1<span class="annotation">⦉@12</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    }</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="35:8-35:10: @4[4]: _15 = ()
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="35:8-35:10: @4[4]: _15 = ()
 35:5-35:11: @4[5]: _0 = std::result::Result::&lt;(), u8&gt;::Ok(move _15)"><span class="annotation">@4⦊</span>Ok(())<span class="annotation">⦉@4</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="36:2-36:2: @14.Return: return"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="36:2-36:2: @13.Goto: goto -&gt; bb14"><span class="annotation">@13⦊</span>‸<span class="annotation">⦉@13</span></span></span><span><span class="code even" style="--layer: 1" title="36:2-36:2: @14.Return: return"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html
index 43f75c574d0..0f076a93c09 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html
@@ -65,16 +65,19 @@
 35:13-35:26: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="36:12-36:20: @0[5]: _4 = (*((*_1).0: &amp;bool))
 36:12-36:20: @0[6]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>is_false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="37:13-37:27: @3[0]: _2 = const 10_i32
-36:21-38:10: @3[1]: _3 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+36:21-38:10: @3[1]: _3 = const ()
+38:10-38:10: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="37:13-37:27: @3[0]: _2 = const 10_i32
-36:21-38:10: @3[1]: _3 = const ()">            countdown = 10;</span></span>
+36:21-38:10: @3[1]: _3 = const ()
+38:10-38:10: @3.Goto: goto -&gt; bb4">            countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="37:13-37:27: @3[0]: _2 = const 10_i32
-36:21-38:10: @3[1]: _3 = const ()">        }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="39:9-39:23: @4[4]: _6 = const &quot;alt string 2&quot;
+36:21-38:10: @3[1]: _3 = const ()
+38:10-38:10: @3.Goto: goto -&gt; bb4">        }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="38:10-38:10: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="39:9-39:23: @4[4]: _6 = const &quot;alt string 2&quot;
 39:9-39:23: @4[5]: _5 = &amp;(*_6)
 39:9-39:34: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 40:6-40:6: @5.Return: return"><span class="annotation">@4,5⦊</span>"alt string 2".to_owned()</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="39:9-39:23: @4[4]: _6 = const &quot;alt string 2&quot;
+<span class="line"><span class="code odd" style="--layer: 1" title="39:9-39:23: @4[4]: _6 = const &quot;alt string 2&quot;
 39:9-39:23: @4[5]: _5 = &amp;(*_6)
 39:9-39:34: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 40:6-40:6: @5.Return: return">    }<span class="annotation">⦉@4,5</span></span></span></span></div>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html
index 8f07ec5fcde..bc78a604e31 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#1}.-------.InstrumentCoverage.0.html
@@ -65,16 +65,19 @@
 77:13-77:26: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="78:12-78:20: @0[5]: _4 = (*((*_1).0: &amp;bool))
 78:12-78:20: @0[6]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>is_false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="79:13-79:27: @3[0]: _2 = const 10_i32
-78:21-80:10: @3[1]: _3 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+78:21-80:10: @3[1]: _3 = const ()
+80:10-80:10: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="79:13-79:27: @3[0]: _2 = const 10_i32
-78:21-80:10: @3[1]: _3 = const ()">            countdown = 10;</span></span>
+78:21-80:10: @3[1]: _3 = const ()
+80:10-80:10: @3.Goto: goto -&gt; bb4">            countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="79:13-79:27: @3[0]: _2 = const 10_i32
-78:21-80:10: @3[1]: _3 = const ()">        }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="81:9-81:23: @4[4]: _6 = const &quot;alt string 4&quot;
+78:21-80:10: @3[1]: _3 = const ()
+80:10-80:10: @3.Goto: goto -&gt; bb4">        }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="80:10-80:10: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="81:9-81:23: @4[4]: _6 = const &quot;alt string 4&quot;
 81:9-81:23: @4[5]: _5 = &amp;(*_6)
 81:9-81:34: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 82:6-82:6: @5.Return: return"><span class="annotation">@4,5⦊</span>"alt string 4".to_owned()</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="81:9-81:23: @4[4]: _6 = const &quot;alt string 4&quot;
+<span class="line"><span class="code odd" style="--layer: 1" title="81:9-81:23: @4[4]: _6 = const &quot;alt string 4&quot;
 81:9-81:23: @4[5]: _5 = &amp;(*_6)
 81:9-81:34: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 82:6-82:6: @5.Return: return">    }<span class="annotation">⦉@4,5</span></span></span></span></div>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html
index ca9031a1094..b0db2311730 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#2}.-------.InstrumentCoverage.0.html
@@ -65,16 +65,19 @@
 20:21-20:34: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">                if </span><span><span class="code even" style="--layer: 1" title="21:20-21:28: @0[5]: _4 = (*(_1.0: &amp;bool))
 21:20-21:28: @0[6]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>is_false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="22:21-22:35: @3[0]: _2 = const 10_i32
-21:29-23:18: @3[1]: _3 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+21:29-23:18: @3[1]: _3 = const ()
+23:18-23:18: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="22:21-22:35: @3[0]: _2 = const 10_i32
-21:29-23:18: @3[1]: _3 = const ()">                    countdown = 10;</span></span>
+21:29-23:18: @3[1]: _3 = const ()
+23:18-23:18: @3.Goto: goto -&gt; bb4">                    countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="22:21-22:35: @3[0]: _2 = const 10_i32
-21:29-23:18: @3[1]: _3 = const ()">                }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code even" style="--layer: 1" title="24:17-24:31: @4[4]: _6 = const &quot;alt string 1&quot;
+21:29-23:18: @3[1]: _3 = const ()
+23:18-23:18: @3.Goto: goto -&gt; bb4">                }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="23:18-23:18: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code odd" style="--layer: 1" title="24:17-24:31: @4[4]: _6 = const &quot;alt string 1&quot;
 24:17-24:31: @4[5]: _5 = &amp;(*_6)
 24:17-24:42: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 25:14-25:14: @5.Return: return"><span class="annotation">@4,5⦊</span>"alt string 1".to_owned()</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="24:17-24:31: @4[4]: _6 = const &quot;alt string 1&quot;
+<span class="line"><span class="code odd" style="--layer: 1" title="24:17-24:31: @4[4]: _6 = const &quot;alt string 1&quot;
 24:17-24:31: @4[5]: _5 = &amp;(*_6)
 24:17-24:42: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 25:14-25:14: @5.Return: return">            }<span class="annotation">⦉@4,5</span></span></span></span></div>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html
index 820f8d9c6cf..ca07a8d3ce5 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.closure/closure.main-{closure#3}.-------.InstrumentCoverage.0.html
@@ -65,16 +65,19 @@
 62:21-62:34: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">                if </span><span><span class="code even" style="--layer: 1" title="63:20-63:28: @0[5]: _4 = (*(_1.0: &amp;bool))
 63:20-63:28: @0[6]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>is_false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="64:21-64:35: @3[0]: _2 = const 10_i32
-63:29-65:18: @3[1]: _3 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+63:29-65:18: @3[1]: _3 = const ()
+65:18-65:18: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="64:21-64:35: @3[0]: _2 = const 10_i32
-63:29-65:18: @3[1]: _3 = const ()">                    countdown = 10;</span></span>
+63:29-65:18: @3[1]: _3 = const ()
+65:18-65:18: @3.Goto: goto -&gt; bb4">                    countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="64:21-64:35: @3[0]: _2 = const 10_i32
-63:29-65:18: @3[1]: _3 = const ()">                }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code even" style="--layer: 1" title="66:17-66:31: @4[4]: _6 = const &quot;alt string 3&quot;
+63:29-65:18: @3[1]: _3 = const ()
+65:18-65:18: @3.Goto: goto -&gt; bb4">                }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="65:18-65:18: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code odd" style="--layer: 1" title="66:17-66:31: @4[4]: _6 = const &quot;alt string 3&quot;
 66:17-66:31: @4[5]: _5 = &amp;(*_6)
 66:17-66:42: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 67:14-67:14: @5.Return: return"><span class="annotation">@4,5⦊</span>"alt string 3".to_owned()</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="66:17-66:31: @4[4]: _6 = const &quot;alt string 3&quot;
+<span class="line"><span class="code odd" style="--layer: 1" title="66:17-66:31: @4[4]: _6 = const &quot;alt string 3&quot;
 66:17-66:31: @4[5]: _5 = &amp;(*_6)
 66:17-66:42: @4.Call: _0 = &lt;str as ToOwned&gt;::to_owned(move _5) -&gt; [return: bb5, unwind: bb6]
 67:14-67:14: @5.Return: return">            }<span class="annotation">⦉@4,5</span></span></span></span></div>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html
index 494e6f20ea7..325b6c64345 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.drop_trait/drop_trait.main.-------.InstrumentCoverage.0.html
@@ -114,6 +114,6 @@
 <span class="line"><span class="code even" style="--layer: 1" title="24:13-24:40: @2[4]: _18 = Firework { strength: const 1000_i32 }
 26:8-26:10: @6[2]: _19 = ()
 26:5-26:11: @6[3]: _0 = std::result::Result::&lt;(), u8&gt;::Ok(move _19)">    Ok(())<span class="annotation">⦉@2,6,7,8</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="27:2-27:2: @11.Return: return"><span class="annotation">@11⦊</span>‸<span class="annotation">⦉@11</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="27:2-27:2: @10.Goto: goto -&gt; bb11"><span class="annotation">@1,3,4,5,9,10⦊</span>‸<span class="annotation">⦉@1,3,4,5,9,10</span></span></span><span><span class="code even" style="--layer: 1" title="27:2-27:2: @8.Goto: goto -&gt; bb11"><span class="annotation">@2,6,7,8⦊</span>‸<span class="annotation">⦉@2,6,7,8</span></span></span><span><span class="code odd" style="--layer: 1" title="27:2-27:2: @11.Return: return"><span class="annotation">@11⦊</span>‸<span class="annotation">⦉@11</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html
index 6dc893d28ff..55d7e8bfbae 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.generics/generics.main.-------.InstrumentCoverage.0.html
@@ -162,6 +162,6 @@
 <span class="line"><span class="code even" style="--layer: 1" title="35:13-35:40: @5[4]: _24 = Firework::&lt;i32&gt; { strength: const 1000_i32 }
 37:8-37:10: @9[2]: _25 = ()
 37:5-37:11: @9[3]: _0 = std::result::Result::&lt;(), u8&gt;::Ok(move _25)">    Ok(())<span class="annotation">⦉@5,9,10,11</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="38:2-38:2: @14.Return: return"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="38:2-38:2: @13.Goto: goto -&gt; bb14"><span class="annotation">@4,6,7,8,12,13⦊</span>‸<span class="annotation">⦉@4,6,7,8,12,13</span></span></span><span><span class="code even" style="--layer: 1" title="38:2-38:2: @11.Goto: goto -&gt; bb14"><span class="annotation">@5,9,10,11⦊</span>‸<span class="annotation">⦉@5,9,10,11</span></span></span><span><span class="code odd" style="--layer: 1" title="38:2-38:2: @14.Return: return"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html
index 0379d900e94..0d4b940214e 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if/if.main.-------.InstrumentCoverage.0.html
@@ -146,17 +146,23 @@
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="21:9-21:16: @3[5]: _6 = _1
 21:9-21:16: @3[6]: FakeRead(ForMatchedPlace, _6)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">        countdown</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">        countdown</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">        =</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">        =</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">            10</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">            10</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">        ;</span></span>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">        ;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="23:9-25:15: @6[0]: _5 = const 10_i32
-22:5-27:6: @6[1]: _0 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="28:2-28:2: @7.Return: return"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span></span></div>
+22:5-27:6: @6[1]: _0 = const ()
+27:6-27:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="27:6-27:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="28:2-28:2: @7.Return: return"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html
index b51c5c84c0d..094dacde986 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html
@@ -128,36 +128,36 @@
 20:9-22:16: @5[1]: _6 = const ()">        =</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="20:9-22:16: @5[0]: _5 = const 100_i32
 20:9-22:16: @5[1]: _6 = const ()">            100<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code odd" style="--layer: 1" title="23:6-23:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>‸<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    if</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="26:9-26:16: @7[3]: _8 = _1
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="26:9-26:16: @7[3]: _8 = _1
 26:9-26:16: @7[4]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@7⦊</span>is_true<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()"><span class="annotation">@8,10⦊</span>{</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">        countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">        =</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">            10</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">        ;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
+<span class="line"><span class="code odd" style="--layer: 1" title="28:9-30:15: @10[0]: _5 = const 10_i32
 27:5-32:6: @10[1]: _0 = const ()">    }<span class="annotation">⦉@8,10</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    else</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()"><span class="annotation">@9⦊</span>{</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()">        countdown</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()">        =</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()">            100</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
 34:5-39:6: @9[1]: _0 = const ()">        ;</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
-34:5-39:6: @9[1]: _0 = const ()">    }<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="35:9-37:16: @9[0]: _5 = const 100_i32
+34:5-39:6: @9[1]: _0 = const ()">    }<span class="annotation">⦉@9</span></span></span><span><span class="code odd" style="--layer: 1" title="39:6-39:6: @10.Goto: goto -&gt; bb11"><span class="annotation">@8,10⦊</span>‸<span class="annotation">⦉@8,10</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="40:2-40:2: @11.Return: return"><span class="annotation">@11⦊</span>‸<span class="annotation">⦉@11</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html
index 49639cc6884..7f1262a6abf 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-in_func.-------.InstrumentCoverage.0.html
@@ -63,8 +63,7 @@
 <span class="line"><span class="code" style="--layer: 0">        let </span><span><span class="code even" style="--layer: 1" title="19:17-19:18: @0[1]: _2 = const 1_u32
 19:13-19:14: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>b = 1<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        let </span><span><span class="code odd" style="--layer: 1" title="20:13-20:14: @1[3]: FakeRead(ForLet, _3)"><span class="annotation">@1,2,3,4⦊</span>c<span class="annotation">⦉@1,2,3,4</span></span></span><span class="code" style="--layer: 0"> = </span><span><span class="code even" style="--layer: 1" title="20:17-20:18: @0[5]: _4 = _1
-20:21-20:22: @0[7]: _5 = _2
-20:17-20:22: @0[8]: _6 = CheckedAdd(_4, _5)"><span class="annotation">@0⦊</span>a + b<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
+20:21-20:22: @0[7]: _5 = _2"><span class="annotation">@0⦊</span>a + b<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="21:18-21:26: @1[9]: _23 = const in_func::promoted[0]
 21:18-21:26: @1[10]: _11 = &amp;(*_23)
 21:18-21:26: @1[11]: _10 = &amp;(*_11)
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html
index a2cf86de278..c9e0fe31211 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main-{impl#0}-trait_func.-------.InstrumentCoverage.0.html
@@ -60,8 +60,7 @@
 </head>
 <body>
 <div class="code" style="counter-reset: line 39"><span class="line">        <span class="code" style="--layer: 0">fn trait_func(&amp;mut self, incr: u32) {</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2
-41:13-41:41: @0[2]: _4 = CheckedAdd(((*_1).0: u32), _3)"><span class="annotation">@0⦊</span>self.in_struct_field += incr<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            self.in_struct_field += </span><span><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2"><span class="annotation">@0⦊</span>incr<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="42:21-42:41: @1[4]: _6 = ((*_1).0: u32)
 42:13-42:42: @1.Call: _5 = in_func(move _6) -&gt; [return: bb2, unwind: bb3]
 43:10-43:10: @2.Return: return"><span class="annotation">@1,2⦊</span>in_func(self.in_struct_field);</span></span>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html
index 56557b8ef95..ec3517ec9ed 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.inner_items/inner_items.main.-------.InstrumentCoverage.0.html
@@ -86,11 +86,14 @@
 9:9-9:22: @3[3]: FakeRead(ForLet, _5)">    let mut countdown = 0<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="10:8-10:15: @3[6]: _7 = _1
 10:8-10:15: @3[7]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:23: @6[0]: _5 = const 10_u32
-10:16-12:6: @6[1]: _6 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:23: @6[0]: _5 = const 10_u32
-10:16-12:6: @6[1]: _6 = const ()">        countdown = 10;</span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7">        countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:23: @6[0]: _5 = const 10_u32
-10:16-12:6: @6[1]: _6 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="12:6-12:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    mod in_mod {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        const IN_MOD_CONST: u32 = 1000;</span></span>
@@ -126,16 +129,19 @@
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    type InType = String;</span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="48:8-48:15: @7[4]: _9 = _1
-48:8-48:15: @7[5]: FakeRead(ForMatchedPlace, _9)"><span class="annotation">@7⦊</span>is_true<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code odd" style="--layer: 1" title="48:8-48:15: @7[4]: _9 = _1
+48:8-48:15: @7[5]: FakeRead(ForMatchedPlace, _9)"><span class="annotation">@7⦊</span>is_true<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
 49:9-49:27: @10.Call: _10 = in_func(move _11) -&gt; [return: bb11, unwind: bb15]
-48:16-50:6: @11[2]: _8 = const ()"><span class="annotation">@8,10,11⦊</span>{</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
+48:16-50:6: @11[2]: _8 = const ()
+50:6-50:6: @11.Goto: goto -&gt; bb12"><span class="annotation">@8,10,11⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
 49:9-49:27: @10.Call: _10 = in_func(move _11) -&gt; [return: bb11, unwind: bb15]
-48:16-50:6: @11[2]: _8 = const ()">        in_func(countdown);</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
+48:16-50:6: @11[2]: _8 = const ()
+50:6-50:6: @11.Goto: goto -&gt; bb12">        in_func(countdown);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="49:17-49:26: @10[2]: _11 = _5
 49:9-49:27: @10.Call: _10 = in_func(move _11) -&gt; [return: bb11, unwind: bb15]
-48:16-50:6: @11[2]: _8 = const ()">    }<span class="annotation">⦉@8,10,11</span></span></span><span class="code" style="--layer: 0"></span></span>
+48:16-50:6: @11[2]: _8 = const ()
+50:6-50:6: @11.Goto: goto -&gt; bb12">    }<span class="annotation">⦉@8,10,11</span></span></span><span><span class="code odd" style="--layer: 1" title="50:6-50:6: @9.Goto: goto -&gt; bb12"><span class="annotation">@9⦊</span>‸<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="52:19-54:6: @12[3]: _12 = InStruct { in_struct_field: const 101_u32 }
 52:9-52:16: @12[4]: FakeRead(ForLet, _12)
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html
index defe743df60..636341055dc 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html
@@ -63,27 +63,27 @@
 <span class="line"><span class="code" style="--layer: 0">    // Initialize test constants in a way that cannot be determined at compile time, to ensure</span></span>
 <span class="line"><span class="code" style="--layer: 0">    // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from</span></span>
 <span class="line"><span class="code" style="--layer: 0">    // dependent conditions.</span></span>
-<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb25]
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb41]
 7:19-7:35: @1[0]: _3 = &amp;_4
-7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb24]
+7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb40]
 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize)
 7:9-7:16: @2[3]: FakeRead(ForLet, _1)
 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32)
 9:10-9:15: @3[4]: _5 = (_8.0: i32)
 9:17-9:22: @3[6]: _6 = (_8.1: i32)
 9:24-9:29: @3[8]: _7 = (_8.2: i32)"><span class="annotation">@0,1,2,3⦊</span>is_true = std::env::args().len() == 1;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb25]
+<span class="line"><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb41]
 7:19-7:35: @1[0]: _3 = &amp;_4
-7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb24]
+7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb40]
 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize)
 7:9-7:16: @2[3]: FakeRead(ForLet, _1)
 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32)
 9:10-9:15: @3[4]: _5 = (_8.0: i32)
 9:17-9:22: @3[6]: _6 = (_8.1: i32)
 9:24-9:29: @3[8]: _7 = (_8.2: i32)"></span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb25]
+<span class="line"><span class="code even" style="--layer: 1" title="7:19-7:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb41]
 7:19-7:35: @1[0]: _3 = &amp;_4
-7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb24]
+7:19-7:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb40]
 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize)
 7:9-7:16: @2[3]: FakeRead(ForLet, _1)
 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32)
@@ -94,67 +94,126 @@
 10:8-10:15: @3[13]: FakeRead(ForMatchedPlace, _10)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()">        a = 1;</span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7">        a = 1;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()">        b = 10;</span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7">        b = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()">        c = 100;</span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7">        c = 100;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:14: @6[0]: _5 = const 1_i32
 12:9-12:15: @6[1]: _6 = const 10_i32
 13:9-13:16: @6[2]: _7 = const 100_i32
-10:16-14:6: @6[3]: _9 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
+10:16-14:6: @6[3]: _9 = const ()
+14:6-14:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="14:6-14:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    let</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="16:9-16:17: @11[2]: FakeRead(ForLet, _11)"><span class="annotation">@11⦊</span>somebool<span class="annotation">⦉@11</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="16:9-16:17: @11[2]: FakeRead(ForLet, _11)"><span class="annotation">@11⦊</span>somebool<span class="annotation">⦉@11</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        =</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="18:13-18:14: @7[5]: _13 = _5
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="18:13-18:14: @7[5]: _13 = _5
 18:17-18:18: @7[7]: _14 = _6
 18:13-18:18: @7[8]: _12 = Lt(move _13, move _14)"><span class="annotation">@7⦊</span>a &lt; b<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        ||</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="20:13-20:14: @10[2]: _16 = _6
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="20:13-20:14: @10[2]: _16 = _6
 20:17-20:18: @10[4]: _17 = _7
-20:13-20:18: @10[5]: _15 = Lt(move _16, move _17)"><span class="annotation">@10⦊</span>b &lt; c<span class="annotation">⦉@10</span></span></span><span class="code" style="--layer: 0"></span></span>
+20:13-20:18: @10[5]: _15 = Lt(move _16, move _17)"><span class="annotation">@10⦊</span>b &lt; c<span class="annotation">⦉@10</span></span></span><span><span class="code even" style="--layer: 1" title="20:18-20:18: @8.Goto: goto -&gt; bb11"><span class="annotation">@8⦊</span>‸<span class="annotation">⦉@8</span></span></span><span><span class="code odd" style="--layer: 1" title="20:18-20:18: @9.Goto: goto -&gt; bb11"><span class="annotation">@9⦊</span>‸<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    let</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="23:9-23:17: @15[2]: FakeRead(ForLet, _18)"><span class="annotation">@15⦊</span>somebool<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="23:9-23:17: @15[2]: FakeRead(ForLet, _18)"><span class="annotation">@15⦊</span>somebool<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        =</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="25:13-25:14: @11[6]: _20 = _6
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="25:13-25:14: @11[6]: _20 = _6
 25:17-25:18: @11[8]: _21 = _5
 25:13-25:18: @11[9]: _19 = Lt(move _20, move _21)"><span class="annotation">@11⦊</span>b &lt; a<span class="annotation">⦉@11</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        ||</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="27:13-27:14: @14[2]: _23 = _6
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="27:13-27:14: @14[2]: _23 = _6
 27:17-27:18: @14[4]: _24 = _7
-27:13-27:18: @14[5]: _22 = Lt(move _23, move _24)"><span class="annotation">@14⦊</span>b &lt; c<span class="annotation">⦉@14</span></span></span><span class="code" style="--layer: 0"></span></span>
+27:13-27:18: @14[5]: _22 = Lt(move _23, move _24)"><span class="annotation">@14⦊</span>b &lt; c<span class="annotation">⦉@14</span></span></span><span><span class="code odd" style="--layer: 1" title="27:18-27:18: @12.Goto: goto -&gt; bb15"><span class="annotation">@12⦊</span>‸<span class="annotation">⦉@12</span></span></span><span><span class="code even" style="--layer: 1" title="27:18-27:18: @13.Goto: goto -&gt; bb15"><span class="annotation">@13⦊</span>‸<span class="annotation">⦉@13</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    let</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="30:9-30:17: @19[2]: FakeRead(ForLet, _25)"><span class="annotation">@19⦊</span>somebool<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        =</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="32:13-32:14: @15[6]: _27 = _5
-32:17-32:18: @15[8]: _28 = _6
-32:13-32:18: @15[9]: _26 = Lt(move _27, move _28)"><span class="annotation">@15⦊</span>a &lt; b<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        &amp;&amp;</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="34:13-34:14: @18[2]: _30 = _6
-34:17-34:18: @18[4]: _31 = _7
-34:13-34:18: @18[5]: _29 = Lt(move _30, move _31)"><span class="annotation">@18⦊</span>b &lt; c<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    let</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="37:9-37:17: @23[2]: FakeRead(ForLet, _32)"><span class="annotation">@23⦊</span>somebool<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        =</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="39:13-39:14: @19[6]: _34 = _6
-39:17-39:18: @19[8]: _35 = _5
-39:13-39:18: @19[9]: _33 = Lt(move _34, move _35)"><span class="annotation">@19⦊</span>b &lt; a<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        &amp;&amp;</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="41:13-41:14: @22[2]: _37 = _6
-41:17-41:18: @22[4]: _38 = _7
-41:13-41:18: @22[5]: _36 = Lt(move _37, move _38)"><span class="annotation">@22⦊</span>b &lt; c<span class="annotation">⦉@22</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="43:2-43:2: @23.Return: return"><span class="annotation">@23⦊</span>‸<span class="annotation">⦉@23</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code odd" style="--layer: 1" title="29:9-29:17: @19[2]: FakeRead(ForLet, _25)"><span class="annotation">@19⦊</span>somebool<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"> = </span><span><span class="code even" style="--layer: 1" title="29:20-29:21: @15[6]: _27 = _5
+29:24-29:25: @15[8]: _28 = _6
+29:20-29:25: @15[9]: _26 = Lt(move _27, move _28)"><span class="annotation">@15⦊</span>a &lt; b<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"> &amp;&amp; </span><span><span class="code odd" style="--layer: 1" title="29:29-29:30: @18[2]: _30 = _6
+29:33-29:34: @18[4]: _31 = _7
+29:29-29:34: @18[5]: _29 = Lt(move _30, move _31)"><span class="annotation">@18⦊</span>b &lt; c<span class="annotation">⦉@18</span></span></span><span><span class="code even" style="--layer: 1" title="29:34-29:34: @16.Goto: goto -&gt; bb19"><span class="annotation">@16⦊</span>‸<span class="annotation">⦉@16</span></span></span><span><span class="code odd" style="--layer: 1" title="29:34-29:34: @17.Goto: goto -&gt; bb19"><span class="annotation">@17⦊</span>‸<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="30:9-30:17: @23[2]: FakeRead(ForLet, _32)"><span class="annotation">@23⦊</span>somebool<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"> = </span><span><span class="code odd" style="--layer: 1" title="30:20-30:21: @19[6]: _34 = _6
+30:24-30:25: @19[8]: _35 = _5
+30:20-30:25: @19[9]: _33 = Lt(move _34, move _35)"><span class="annotation">@19⦊</span>b &lt; a<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"> &amp;&amp; </span><span><span class="code even" style="--layer: 1" title="30:29-30:30: @22[2]: _37 = _6
+30:33-30:34: @22[4]: _38 = _7
+30:29-30:34: @22[5]: _36 = Lt(move _37, move _38)"><span class="annotation">@22⦊</span>b &lt; c<span class="annotation">⦉@22</span></span></span><span><span class="code odd" style="--layer: 1" title="30:34-30:34: @20.Goto: goto -&gt; bb23"><span class="annotation">@20⦊</span>‸<span class="annotation">⦉@20</span></span></span><span><span class="code even" style="--layer: 1" title="30:34-30:34: @21.Goto: goto -&gt; bb23"><span class="annotation">@21⦊</span>‸<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    if</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="34:9-34:16: @23[6]: _41 = _1
+33:9-34:16: @23[7]: _40 = Not(move _41)
+33:9-34:16: @23[9]: FakeRead(ForMatchedPlace, _40)"><span class="annotation">@23⦊</span>!</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="34:9-34:16: @23[6]: _41 = _1
+33:9-34:16: @23[7]: _40 = Not(move _41)
+33:9-34:16: @23[9]: FakeRead(ForMatchedPlace, _40)">        is_true<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="36:9-36:14: @26[0]: _5 = const 2_i32
+35:5-38:6: @26[1]: _39 = const ()
+38:6-38:6: @26.Goto: goto -&gt; bb27"><span class="annotation">@24,26⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="36:9-36:14: @26[0]: _5 = const 2_i32
+35:5-38:6: @26[1]: _39 = const ()
+38:6-38:6: @26.Goto: goto -&gt; bb27">        a = 2</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="36:9-36:14: @26[0]: _5 = const 2_i32
+35:5-38:6: @26[1]: _39 = const ()
+38:6-38:6: @26.Goto: goto -&gt; bb27">        ;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="36:9-36:14: @26[0]: _5 = const 2_i32
+35:5-38:6: @26[1]: _39 = const ()
+38:6-38:6: @26.Goto: goto -&gt; bb27">    }<span class="annotation">⦉@24,26</span></span></span><span><span class="code odd" style="--layer: 1" title="38:6-38:6: @25.Goto: goto -&gt; bb27"><span class="annotation">@25⦊</span>‸<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    if</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="41:9-41:16: @27[4]: _43 = _1
+41:9-41:16: @27[5]: FakeRead(ForMatchedPlace, _43)"><span class="annotation">@27⦊</span>is_true<span class="annotation">⦉@27</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="43:9-43:15: @30[0]: _6 = const 30_i32
+42:5-45:6: @30[1]: _42 = const ()"><span class="annotation">@28,30⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="43:9-43:15: @30[0]: _6 = const 30_i32
+42:5-45:6: @30[1]: _42 = const ()">        b = 30</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="43:9-43:15: @30[0]: _6 = const 30_i32
+42:5-45:6: @30[1]: _42 = const ()">        ;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="43:9-43:15: @30[0]: _6 = const 30_i32
+42:5-45:6: @30[1]: _42 = const ()">    }<span class="annotation">⦉@28,30</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    else</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="48:9-48:16: @29[0]: _7 = const 400_i32
+47:5-50:6: @29[1]: _42 = const ()"><span class="annotation">@29⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="48:9-48:16: @29[0]: _7 = const 400_i32
+47:5-50:6: @29[1]: _42 = const ()">        c = 400</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="48:9-48:16: @29[0]: _7 = const 400_i32
+47:5-50:6: @29[1]: _42 = const ()">        ;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="48:9-48:16: @29[0]: _7 = const 400_i32
+47:5-50:6: @29[1]: _42 = const ()">    }<span class="annotation">⦉@29</span></span></span><span><span class="code odd" style="--layer: 1" title="50:6-50:6: @30.Goto: goto -&gt; bb31"><span class="annotation">@28,30⦊</span>‸<span class="annotation">⦉@28,30</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="52:9-52:16: @31[5]: _46 = _1
+52:8-52:16: @31[6]: _45 = Not(move _46)
+52:8-52:16: @31[8]: FakeRead(ForMatchedPlace, _45)"><span class="annotation">@31⦊</span>!is_true<span class="annotation">⦉@31</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="53:9-53:14: @34[0]: _5 = const 2_i32
+52:17-54:6: @34[1]: _44 = const ()
+54:6-54:6: @34.Goto: goto -&gt; bb35"><span class="annotation">@32,34⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="53:9-53:14: @34[0]: _5 = const 2_i32
+52:17-54:6: @34[1]: _44 = const ()
+54:6-54:6: @34.Goto: goto -&gt; bb35">        a = 2;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="53:9-53:14: @34[0]: _5 = const 2_i32
+52:17-54:6: @34[1]: _44 = const ()
+54:6-54:6: @34.Goto: goto -&gt; bb35">    }<span class="annotation">⦉@32,34</span></span></span><span><span class="code even" style="--layer: 1" title="54:6-54:6: @33.Goto: goto -&gt; bb35"><span class="annotation">@33⦊</span>‸<span class="annotation">⦉@33</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code odd" style="--layer: 1" title="56:8-56:15: @35[3]: _47 = _1
+56:8-56:15: @35[4]: FakeRead(ForMatchedPlace, _47)"><span class="annotation">@35⦊</span>is_true<span class="annotation">⦉@35</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="57:9-57:15: @38[0]: _6 = const 30_i32
+56:16-58:6: @38[1]: _0 = const ()"><span class="annotation">@36,38⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="57:9-57:15: @38[0]: _6 = const 30_i32
+56:16-58:6: @38[1]: _0 = const ()">        b = 30;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="57:9-57:15: @38[0]: _6 = const 30_i32
+56:16-58:6: @38[1]: _0 = const ()">    }<span class="annotation">⦉@36,38</span></span></span><span class="code" style="--layer: 0"> else </span><span><span class="code odd" style="--layer: 1" title="59:9-59:16: @37[0]: _7 = const 400_i32
+58:12-60:6: @37[1]: _0 = const ()"><span class="annotation">@37⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="59:9-59:16: @37[0]: _7 = const 400_i32
+58:12-60:6: @37[1]: _0 = const ()">        c = 400;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="59:9-59:16: @37[0]: _7 = const 400_i32
+58:12-60:6: @37[1]: _0 = const ()">    }<span class="annotation">⦉@37</span></span></span><span><span class="code even" style="--layer: 1" title="60:6-60:6: @38.Goto: goto -&gt; bb39"><span class="annotation">@36,38⦊</span>‸<span class="annotation">⦉@36,38</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="61:2-61:2: @39.Return: return"><span class="annotation">@39⦊</span>‸<span class="annotation">⦉@39</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.loops_and_branches/loops_and_branches.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.loops_and_branches/loops_and_branches.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..a876c85822f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.loops_and_branches/loops_and_branches.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>loops_and_branches.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 21"><span class="line"><span class="code" style="--layer: 0">fn main() </span><span><span class="code even" style="--layer: 1" title="23:22-23:31: @0[1]: _1 = DebugTest
+23:9-23:19: @0[2]: FakeRead(ForLet, _1)
+24:14-24:20: @0[9]: _19 = const main::promoted[0]
+24:14-24:20: @0[10]: _7 = &amp;(*_19)
+24:14-24:20: @0[11]: _6 = &amp;(*_7)
+24:14-24:20: @0[12]: _5 = move _6 as &amp;[&amp;str] (Pointer(Unsize))
+24:22-24:32: @0[20]: _14 = &amp;_1
+24:5-24:34: @0[21]: _13 = (move _14,)
+24:5-24:34: @0[23]: FakeRead(ForMatchedPlace, _13)
+24:5-24:34: @0[25]: _15 = (_13.0: &amp;DebugTest)
+24:5-24:34: @0[28]: _17 = &amp;(*_15)
+24:5-24:34: @0[30]: _18 = &lt;DebugTest as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r DebugTest, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+24:5-24:34: @0.Call: _16 = ArgumentV1::new::&lt;DebugTest&gt;(move _17, move _18) -&gt; [return: bb1, unwind: bb4]
+24:5-24:34: @1[2]: _12 = [move _16]
+24:5-24:34: @1[5]: _11 = &amp;_12
+24:5-24:34: @1[6]: _10 = &amp;(*_11)
+24:5-24:34: @1[7]: _9 = move _10 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+24:5-24:34: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -&gt; [return: bb2, unwind: bb4]
+24:5-24:34: @2.Call: _3 = _print(move _4) -&gt; [return: bb3, unwind: bb4]
+24:5-24:34: @3[6]: _2 = const ()
+22:11-25:2: @3[8]: _0 = const ()
+25:2-25:2: @3.Return: return"><span class="annotation">@0,1,2,3⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="23:22-23:31: @0[1]: _1 = DebugTest
+23:9-23:19: @0[2]: FakeRead(ForLet, _1)
+24:14-24:20: @0[9]: _19 = const main::promoted[0]
+24:14-24:20: @0[10]: _7 = &amp;(*_19)
+24:14-24:20: @0[11]: _6 = &amp;(*_7)
+24:14-24:20: @0[12]: _5 = move _6 as &amp;[&amp;str] (Pointer(Unsize))
+24:22-24:32: @0[20]: _14 = &amp;_1
+24:5-24:34: @0[21]: _13 = (move _14,)
+24:5-24:34: @0[23]: FakeRead(ForMatchedPlace, _13)
+24:5-24:34: @0[25]: _15 = (_13.0: &amp;DebugTest)
+24:5-24:34: @0[28]: _17 = &amp;(*_15)
+24:5-24:34: @0[30]: _18 = &lt;DebugTest as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r DebugTest, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+24:5-24:34: @0.Call: _16 = ArgumentV1::new::&lt;DebugTest&gt;(move _17, move _18) -&gt; [return: bb1, unwind: bb4]
+24:5-24:34: @1[2]: _12 = [move _16]
+24:5-24:34: @1[5]: _11 = &amp;_12
+24:5-24:34: @1[6]: _10 = &amp;(*_11)
+24:5-24:34: @1[7]: _9 = move _10 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+24:5-24:34: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -&gt; [return: bb2, unwind: bb4]
+24:5-24:34: @2.Call: _3 = _print(move _4) -&gt; [return: bb3, unwind: bb4]
+24:5-24:34: @3[6]: _2 = const ()
+22:11-25:2: @3[8]: _0 = const ()
+25:2-25:2: @3.Return: return">    let debug_test = DebugTest;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="23:22-23:31: @0[1]: _1 = DebugTest
+23:9-23:19: @0[2]: FakeRead(ForLet, _1)
+24:14-24:20: @0[9]: _19 = const main::promoted[0]
+24:14-24:20: @0[10]: _7 = &amp;(*_19)
+24:14-24:20: @0[11]: _6 = &amp;(*_7)
+24:14-24:20: @0[12]: _5 = move _6 as &amp;[&amp;str] (Pointer(Unsize))
+24:22-24:32: @0[20]: _14 = &amp;_1
+24:5-24:34: @0[21]: _13 = (move _14,)
+24:5-24:34: @0[23]: FakeRead(ForMatchedPlace, _13)
+24:5-24:34: @0[25]: _15 = (_13.0: &amp;DebugTest)
+24:5-24:34: @0[28]: _17 = &amp;(*_15)
+24:5-24:34: @0[30]: _18 = &lt;DebugTest as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r DebugTest, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+24:5-24:34: @0.Call: _16 = ArgumentV1::new::&lt;DebugTest&gt;(move _17, move _18) -&gt; [return: bb1, unwind: bb4]
+24:5-24:34: @1[2]: _12 = [move _16]
+24:5-24:34: @1[5]: _11 = &amp;_12
+24:5-24:34: @1[6]: _10 = &amp;(*_11)
+24:5-24:34: @1[7]: _9 = move _10 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+24:5-24:34: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -&gt; [return: bb2, unwind: bb4]
+24:5-24:34: @2.Call: _3 = _print(move _4) -&gt; [return: bb3, unwind: bb4]
+24:5-24:34: @3[6]: _2 = const ()
+22:11-25:2: @3[8]: _0 = const ()
+25:2-25:2: @3.Return: return">    println!("{:?}", debug_test);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="23:22-23:31: @0[1]: _1 = DebugTest
+23:9-23:19: @0[2]: FakeRead(ForLet, _1)
+24:14-24:20: @0[9]: _19 = const main::promoted[0]
+24:14-24:20: @0[10]: _7 = &amp;(*_19)
+24:14-24:20: @0[11]: _6 = &amp;(*_7)
+24:14-24:20: @0[12]: _5 = move _6 as &amp;[&amp;str] (Pointer(Unsize))
+24:22-24:32: @0[20]: _14 = &amp;_1
+24:5-24:34: @0[21]: _13 = (move _14,)
+24:5-24:34: @0[23]: FakeRead(ForMatchedPlace, _13)
+24:5-24:34: @0[25]: _15 = (_13.0: &amp;DebugTest)
+24:5-24:34: @0[28]: _17 = &amp;(*_15)
+24:5-24:34: @0[30]: _18 = &lt;DebugTest as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r DebugTest, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+24:5-24:34: @0.Call: _16 = ArgumentV1::new::&lt;DebugTest&gt;(move _17, move _18) -&gt; [return: bb1, unwind: bb4]
+24:5-24:34: @1[2]: _12 = [move _16]
+24:5-24:34: @1[5]: _11 = &amp;_12
+24:5-24:34: @1[6]: _10 = &amp;(*_11)
+24:5-24:34: @1[7]: _9 = move _10 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+24:5-24:34: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -&gt; [return: bb2, unwind: bb4]
+24:5-24:34: @2.Call: _3 = _print(move _4) -&gt; [return: bb3, unwind: bb4]
+24:5-24:34: @3[6]: _2 = const ()
+22:11-25:2: @3[8]: _0 = const ()
+25:2-25:2: @3.Return: return">}<span class="annotation">⦉@0,1,2,3</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.loops_and_branches/loops_and_branches.{impl#0}-fmt.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.loops_and_branches/loops_and_branches.{impl#0}-fmt.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..1b9767506f2
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.loops_and_branches/loops_and_branches.{impl#0}-fmt.-------.InstrumentCoverage.0.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>loops_and_branches.{impl#0}-fmt - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 8"><span class="line">    <span class="code" style="--layer: 0">fn fmt(&amp;self, f: &amp;mut std::fmt::Formatter) -&gt; std::fmt::Result {</span></span>
+<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="10:12-10:16: @0[2]: _4 = const true
+10:12-10:16: @0[3]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@0⦊</span>true<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">            if </span><span><span class="code odd" style="--layer: 1" title="11:16-11:21: @3[2]: _6 = const false
+11:16-11:21: @3[3]: FakeRead(ForMatchedPlace, _6)"><span class="annotation">@1,3⦊</span>false<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                while </span><span><span class="code even" style="--layer: 1" title="12:23-12:27: @7[1]: _8 = const true
+12:23-12:27: @7[2]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@6,7⦊</span>true<span class="annotation">⦉@6,7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="12:28-13:18: @10[0]: _7 = const ()
+13:18-13:18: @10.Goto: goto -&gt; bb6"><span class="annotation">@8,10⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="12:28-13:18: @10[0]: _7 = const ()
+13:18-13:18: @10.Goto: goto -&gt; bb6">                }<span class="annotation">⦉@8,10</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">            }</span><span><span class="code even" style="--layer: 1" title="14:14-14:14: @9.Goto: goto -&gt; bb11"><span class="annotation">@9⦊</span>‸<span class="annotation">⦉@9</span></span></span><span><span class="code odd" style="--layer: 1" title="14:14-14:14: @5.Goto: goto -&gt; bb11"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="15:20-15:21: @11[6]: _13 = &amp;mut (*_2)
+15:23-15:30: @11[11]: _32 = const &lt;DebugTest as Debug&gt;::fmt::promoted[1]
+15:23-15:30: @11[12]: _17 = &amp;(*_32)
+15:23-15:30: @11[13]: _16 = &amp;(*_17)
+15:23-15:30: @11[14]: _15 = move _16 as &amp;[&amp;str] (Pointer(Unsize))
+15:13-15:31: @11[20]: _23 = ()
+15:13-15:31: @11[21]: FakeRead(ForMatchedPlace, _23)
+15:13-15:31: @11[22]: _31 = const &lt;DebugTest as Debug&gt;::fmt::promoted[0]
+15:13-15:31: @11[23]: _21 = &amp;(*_31)
+15:13-15:31: @11[24]: _20 = &amp;(*_21)
+15:13-15:31: @11[25]: _19 = move _20 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+15:13-15:31: @11.Call: _14 = Arguments::new_v1(move _15, move _19) -&gt; [return: bb12, unwind: bb23]
+15:13-15:31: @12.Call: _12 = Formatter::write_fmt(move _13, move _14) -&gt; [return: bb13, unwind: bb23]"><span class="annotation">@11,12,13,14⦊</span>write!(f, "error")<span class="annotation">⦉@11,12,13,14</span></span></span><span><span class="code odd" style="--layer: 1" title="15:31-15:32: @18[1]: _25 = ((_11 as Err).0: std::fmt::Error)
+15:31-15:32: @18[4]: _28 = _25
+15:31-15:32: @18.Call: _27 = &lt;std::fmt::Error as From&lt;std::fmt::Error&gt;&gt;::from(move _28) -&gt; [return: bb19, unwind: bb23]"><span class="annotation">@16,18,19,20⦊</span>?<span class="annotation">⦉@16,18,19,20</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        } else </span><span><span class="code even" style="--layer: 1" title="16:16-17:10: @2[0]: _3 = const ()"><span class="annotation">@2⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="16:16-17:10: @2[0]: _3 = const ()">        }<span class="annotation">⦉@2</span></span></span><span><span class="code odd" style="--layer: 1" title="17:10-17:10: @15.Goto: goto -&gt; bb21"><span class="annotation">@15⦊</span>‸<span class="annotation">⦉@15</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="18:12-18:14: @21[3]: _30 = ()
+18:9-18:15: @21[4]: _0 = std::result::Result::&lt;(), std::fmt::Error&gt;::Ok(move _30)"><span class="annotation">@21⦊</span>Ok(())<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code odd" style="--layer: 1" title="19:6-19:6: @20.Goto: goto -&gt; bb22"><span class="annotation">@16,18,19,20⦊</span>‸<span class="annotation">⦉@16,18,19,20</span></span></span><span><span class="code even" style="--layer: 1" title="19:6-19:6: @22.Return: return"><span class="annotation">@22⦊</span>‸<span class="annotation">⦉@22</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..042845b70cc
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>nested_loops.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 0"><span class="line"><span class="code" style="--layer: 0">fn main() {</span></span>
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="2:19-2:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb35]
+2:19-2:35: @1[0]: _3 = &amp;_4
+2:19-2:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb34]
+2:19-2:46: @2[1]: _1 = Eq(move _2, const 1_usize)
+2:9-2:16: @2[3]: FakeRead(ForLet, _1)
+3:25-3:27: @3[2]: _5 = const 10_i32
+3:9-3:22: @3[3]: FakeRead(ForLet, _5)"><span class="annotation">@0,1,2,3⦊</span>is_true = std::env::args().len() == 1;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="2:19-2:35: @0.Call: _4 = args() -&gt; [return: bb1, unwind: bb35]
+2:19-2:35: @1[0]: _3 = &amp;_4
+2:19-2:41: @1.Call: _2 = &lt;Args as ExactSizeIterator&gt;::len(move _3) -&gt; [return: bb2, unwind: bb34]
+2:19-2:46: @2[1]: _1 = Eq(move _2, const 1_usize)
+2:9-2:16: @2[3]: FakeRead(ForLet, _1)
+3:25-3:27: @3[2]: _5 = const 10_i32
+3:9-3:22: @3[3]: FakeRead(ForLet, _5)">    let mut countdown = 10<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    'outer: while </span><span><span class="code odd" style="--layer: 1" title="5:19-5:28: @5[2]: _8 = _5
+5:19-5:32: @5[3]: _7 = Gt(move _8, const 0_i32)
+5:19-5:32: @5[5]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@4,5⦊</span>countdown &gt; 0<span class="annotation">⦉@4,5</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">        let </span><span><span class="code even" style="--layer: 1" title="6:21-6:24: @8[1]: _9 = const 100_i32
+6:13-6:18: @8[2]: FakeRead(ForLet, _9)
+7:21-7:24: @8[4]: _10 = const 100_i32
+7:13-7:18: @8[5]: FakeRead(ForLet, _10)"><span class="annotation">@6,8,9⦊</span>mut a = 100;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="6:21-6:24: @8[1]: _9 = const 100_i32
+6:13-6:18: @8[2]: FakeRead(ForLet, _9)
+7:21-7:24: @8[4]: _10 = const 100_i32
+7:13-7:18: @8[5]: FakeRead(ForLet, _10)">        let mut b = 100<span class="annotation">⦉@6,8,9</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        for </span><span><span class="code odd" style="--layer: 1" title="8:13-8:14: @16[1]: _21 = ((_17 as Some).0: i32)
+8:13-8:14: @16[3]: _22 = _21
+8:13-8:14: @16[4]: _15 = move _22
+8:13-8:14: @16[5]: _16 = const ()"><span class="annotation">@14,16⦊</span>_<span class="annotation">⦉@14,16</span></span></span><span class="code" style="--layer: 0"> in </span><span><span class="code even" style="--layer: 1" title="8:18-8:23: @11[5]: _19 = &amp;mut _14
+8:18-8:23: @11[6]: _18 = &amp;mut (*_19)
+8:18-8:23: @11.Call: _17 = &lt;std::ops::Range&lt;i32&gt; as Iterator&gt;::next(move _18) -&gt; [return: bb12, unwind: bb35]
+8:18-8:23: @12[1]: FakeRead(ForMatchedPlace, _17)"><span class="annotation">@10,11,12⦊</span>0..50<span class="annotation">⦉@10,11,12</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">            if </span><span><span class="code odd" style="--layer: 1" title="9:16-9:17: @16[15]: _27 = _9
+9:16-9:22: @16[16]: _26 = Lt(move _27, const 30_i32)
+9:16-9:22: @16[18]: FakeRead(ForMatchedPlace, _26)"><span class="annotation">@14,16⦊</span>a &lt; 30<span class="annotation">⦉@14,16</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code even" style="--layer: 1" title="10:17-10:22: @19[0]: _11 = const ()"><span class="annotation">@17,19⦊</span>break<span class="annotation">⦉@17,19</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            }</span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="12:13-12:19: @20[0]: _9 = move (_29.0: i32)"><span class="annotation">@20⦊</span>a -= 5<span class="annotation">⦉@20</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="13:13-13:19: @21[0]: _10 = move (_30.0: i32)"><span class="annotation">@21⦊</span>b -= 5<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            if </span><span><span class="code even" style="--layer: 1" title="14:16-14:17: @21[3]: _32 = _10
+14:16-14:22: @21[4]: _31 = Lt(move _32, const 90_i32)
+14:16-14:22: @21[6]: FakeRead(ForMatchedPlace, _31)"><span class="annotation">@21⦊</span>b &lt; 90<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code odd" style="--layer: 1" title="15:17-15:24: @25[0]: _9 = move (_33.0: i32)
+16:20-16:27: @25[2]: _34 = _1
+16:20-16:27: @25[3]: FakeRead(ForMatchedPlace, _34)"><span class="annotation">@25⦊</span>a -= 10;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="15:17-15:24: @25[0]: _9 = move (_33.0: i32)
+16:20-16:27: @25[2]: _34 = _1
+16:20-16:27: @25[3]: FakeRead(ForMatchedPlace, _34)">                if is_true<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                    </span><span><span class="code even" style="--layer: 1" title="17:21-17:33: @28[0]: _0 = const ()"><span class="annotation">@26,28⦊</span>break 'outer<span class="annotation">⦉@26,28</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">                } else {</span></span>
+<span class="line"><span class="code" style="--layer: 0">                    </span><span><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
+21:14-21:14: @29.Goto: goto -&gt; bb30"><span class="annotation">@29⦊</span>a -= 2;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
+21:14-21:14: @29.Goto: goto -&gt; bb30">                }</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
+21:14-21:14: @29.Goto: goto -&gt; bb30">            }<span class="annotation">⦉@29</span></span></span><span><span class="code even" style="--layer: 1" title="21:14-21:14: @23.Goto: goto -&gt; bb30"><span class="annotation">@23⦊</span>‸<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        }</span><span><span class="code odd" style="--layer: 1" title="22:10-22:10: @9.Goto: goto -&gt; bb10"><span class="annotation">@6,8,9⦊</span>‸<span class="annotation">⦉@6,8,9</span></span></span><span><span class="code even" style="--layer: 1" title="22:10-22:10: @30.Goto: goto -&gt; bb10"><span class="annotation">@30⦊</span>‸<span class="annotation">⦉@30</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="23:9-23:23: @32[0]: _5 = move (_37.0: i32)"><span class="annotation">@32⦊</span>countdown -= 1<span class="annotation">⦉@32</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code even" style="--layer: 1" title="24:6-24:6: @3.Goto: goto -&gt; bb4"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span><span class="code odd" style="--layer: 1" title="24:6-24:6: @7.Goto: goto -&gt; bb33"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="25:2-25:2: @33.Return: return"><span class="annotation">@33⦊</span>‸<span class="annotation">⦉@33</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..3ebe51bc7ec
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,285 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 20"><span class="line"><span class="code" style="--layer: 0">fn main() </span><span><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return"><span class="annotation">@0,1,2,3,4,5,6,7,8⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return">    let version_3_2_1 = Version::new(3, 2, 1);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return">    let version_3_3_0 = Version::new(3, 3, 0);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return"></span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return">    println!("{:?} &lt; {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 &lt; version_3_3_0);</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="22:25-22:46: @0.Call: _1 = Version::new(const 3_usize, const 2_usize, const 1_usize) -&gt; [return: bb1, unwind: bb9]
+22:9-22:22: @1[0]: FakeRead(ForLet, _1)
+23:25-23:46: @1.Call: _2 = Version::new(const 3_usize, const 3_usize, const 0_usize) -&gt; [return: bb2, unwind: bb9]
+23:9-23:22: @2[0]: FakeRead(ForLet, _2)
+25:14-25:32: @2[7]: _33 = const main::promoted[0]
+25:14-25:32: @2[8]: _8 = &amp;(*_33)
+25:14-25:32: @2[9]: _7 = &amp;(*_8)
+25:14-25:32: @2[10]: _6 = move _7 as &amp;[&amp;str] (Pointer(Unsize))
+25:34-25:47: @2[18]: _15 = &amp;_1
+25:49-25:62: @2[20]: _16 = &amp;_2
+25:64-25:77: @2[24]: _19 = &amp;_1
+25:80-25:93: @2[26]: _20 = &amp;_2
+25:64-25:93: @2.Call: _18 = &lt;Version as PartialOrd&gt;::lt(move _19, move _20) -&gt; [return: bb3, unwind: bb9]
+25:64-25:93: @3[2]: _17 = &amp;_18
+25:5-25:95: @3[3]: _14 = (move _15, move _16, move _17)
+25:5-25:95: @3[7]: FakeRead(ForMatchedPlace, _14)
+25:5-25:95: @3[9]: _21 = (_14.0: &amp;Version)
+25:5-25:95: @3[11]: _22 = (_14.1: &amp;Version)
+25:5-25:95: @3[13]: _23 = (_14.2: &amp;bool)
+25:5-25:95: @3[16]: _25 = &amp;(*_21)
+25:5-25:95: @3[18]: _26 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @3.Call: _24 = ArgumentV1::new::&lt;Version&gt;(move _25, move _26) -&gt; [return: bb4, unwind: bb9]
+25:5-25:95: @4[4]: _28 = &amp;(*_22)
+25:5-25:95: @4[6]: _29 = &lt;Version as Debug&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r Version, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @4.Call: _27 = ArgumentV1::new::&lt;Version&gt;(move _28, move _29) -&gt; [return: bb5, unwind: bb9]
+25:5-25:95: @5[4]: _31 = &amp;(*_23)
+25:5-25:95: @5[6]: _32 = &lt;bool as std::fmt::Display&gt;::fmt as for&lt;&#39;r, &#39;s, &#39;t0&gt; fn(&amp;&#39;r bool, &amp;&#39;s mut std::fmt::Formatter&lt;&#39;t0&gt;) -&gt; std::result::Result&lt;(), std::fmt::Error&gt; (Pointer(ReifyFnPointer))
+25:5-25:95: @5.Call: _30 = ArgumentV1::new::&lt;bool&gt;(move _31, move _32) -&gt; [return: bb6, unwind: bb9]
+25:5-25:95: @6[2]: _13 = [move _24, move _27, move _30]
+25:5-25:95: @6[9]: _12 = &amp;_13
+25:5-25:95: @6[10]: _11 = &amp;(*_12)
+25:5-25:95: @6[11]: _10 = move _11 as &amp;[std::fmt::ArgumentV1] (Pointer(Unsize))
+25:5-25:95: @6.Call: _5 = Arguments::new_v1(move _6, move _10) -&gt; [return: bb7, unwind: bb9]
+25:5-25:95: @7.Call: _4 = _print(move _5) -&gt; [return: bb8, unwind: bb9]
+25:5-25:95: @8[7]: _3 = const ()
+21:11-26:2: @8[9]: _0 = const ()
+26:2-26:2: @8.Return: return">}<span class="annotation">⦉@0,1,2,3,4,5,6,7,8</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#0}-new.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#0}-new.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..ee6a5489f26
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#0}-new.-------.InstrumentCoverage.0.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#0}-new - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 11"><span class="line">    <span class="code" style="--layer: 0">pub fn new(major: usize, minor: usize, patch: usize) -&gt; Self {</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return"><span class="annotation">@0⦊</span>Self {</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">            major,</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">            minor,</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">            patch,</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">        }</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="14:13-14:18: @0[1]: _4 = _1
+15:13-15:18: @0[3]: _5 = _2
+16:13-16:18: @0[5]: _6 = _3
+13:9-17:10: @0[6]: _0 = Version { major: move _4, minor: move _5, patch: move _6 }
+18:6-18:6: @0.Return: return">    }<span class="annotation">⦉@0</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#1}-cmp.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#1}-cmp.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..a39772288a3
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#1}-cmp.-------.InstrumentCoverage.0.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#1}-cmp - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                                  <span><span class="code even" style="--layer: 1" title="4:51-4:54: @14.Goto: goto -&gt; bb15"><span class="annotation">@14⦊</span></span></span><span class="code even" style="--layer: 2" title="4:51-4:54: @12[0]: _0 = Equal
+4:51-4:54: @12.Goto: goto -&gt; bb13"><span class="annotation">@11,12⦊</span></span><span class="code even" style="--layer: 3" title="4:51-4:54: @10[1]: _27 = _21
+4:51-4:54: @10[2]: _0 = _27
+4:51-4:54: @10.Goto: goto -&gt; bb13"><span class="annotation">@10⦊</span></span><span class="code even" style="--layer: 4" title="4:51-4:54: @13.Goto: goto -&gt; bb14"><span class="annotation">@13⦊</span>Ord<span class="annotation">⦉@13</span></span><span class="code even" style="--layer: 3" title="4:51-4:54: @10[1]: _27 = _21
+4:51-4:54: @10[2]: _0 = _27
+4:51-4:54: @10.Goto: goto -&gt; bb13"><span class="annotation">⦉@10</span></span><span class="code even" style="--layer: 2" title="4:51-4:54: @12[0]: _0 = Equal
+4:51-4:54: @12.Goto: goto -&gt; bb13"><span class="annotation">⦉@11,12</span></span><span><span class="code even" style="--layer: 1" title="4:51-4:54: @14.Goto: goto -&gt; bb15"><span class="annotation">⦉@14</span></span></span><span><span class="code odd" style="--layer: 1" title="4:54-4:54: @15.Return: return"><span class="annotation">@15⦊</span>‸<span class="annotation">⦉@15</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..671cbea0ff3
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-ge-{closure#0}-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 6"><span class="line">    <span class="code" style="--layer: 0">minor: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="8:5-8:17: @0[3]: _4 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+8:5-8:17: @0[4]: _3 = &amp;(*_4)
+8:5-8:17: @0[7]: _6 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+8:5-8:17: @0[8]: _5 = &amp;(*_6)
+8:5-8:17: @0.Call: _2 = &lt;usize as PartialOrd&gt;::partial_cmp(move _3, move _5) -&gt; [return: bb1, unwind: bb3]
+8:5-8:17: @1[3]: _7 = Less
+8:5-8:17: @1.Call: _0 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _2, move _7) -&gt; [return: bb2, unwind: bb3]
+8:5-8:17: @2.Return: return"><span class="annotation">@0,1,2⦊</span>patch: usize<span class="annotation">⦉@0,1,2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..6da79c4b130
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-ge-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 5"><span class="line">    <span class="code" style="--layer: 0">major: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="7:5-7:17: @0[4]: _5 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+7:5-7:17: @0[5]: _4 = &amp;(*_5)
+7:5-7:17: @0[8]: _7 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+7:5-7:17: @0[9]: _6 = &amp;(*_7)
+7:5-7:17: @0.Call: _3 = &lt;usize as PartialOrd&gt;::partial_cmp(move _4, move _6) -&gt; [return: bb1, unwind: bb4]
+7:5-7:17: @1[3]: _8 = Equal
+7:5-7:17: @1.Call: _2 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _3, move _8) -&gt; [return: bb2, unwind: bb4]
+7:5-7:17: @2[4]: _10 = &amp;(*(_1.2: &amp;&amp;usize))
+7:5-7:17: @2[6]: _11 = &amp;(*(_1.3: &amp;&amp;usize))"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">minor: usize</span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..5f5c31ce775
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-ge.-------.InstrumentCoverage.0.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-ge - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @0[0]: FakeRead(ForMatchedPlace, (*_2))
+4:39-4:49: @0[2]: _3 = &amp;((*_2).0: usize)
+4:39-4:49: @0[4]: _4 = &amp;((*_2).1: usize)
+4:39-4:49: @0[6]: _5 = &amp;((*_2).2: usize)
+4:39-4:49: @0[7]: FakeRead(ForMatchedPlace, (*_1))
+4:39-4:49: @0[9]: _6 = &amp;((*_1).0: usize)
+4:39-4:49: @0[11]: _7 = &amp;((*_1).1: usize)
+4:39-4:49: @0[13]: _8 = &amp;((*_1).2: usize)
+4:39-4:49: @0[20]: _14 = &amp;(*_6)
+4:39-4:49: @0[21]: _13 = &amp;(*_14)
+4:39-4:49: @0[24]: _16 = &amp;(*_3)
+4:39-4:49: @0[25]: _15 = &amp;(*_16)
+4:39-4:49: @0.Call: _12 = &lt;usize as PartialOrd&gt;::partial_cmp(move _13, move _15) -&gt; [return: bb1, unwind: bb5]
+4:39-4:49: @1[3]: _17 = Equal
+4:39-4:49: @1.Call: _11 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _12, move _17) -&gt; [return: bb2, unwind: bb5]
+4:39-4:49: @2[4]: _19 = &amp;_7
+4:39-4:49: @2[6]: _20 = &amp;_4
+4:39-4:49: @2[8]: _21 = &amp;_8
+4:39-4:49: @2[10]: _22 = &amp;_5"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">PartialOrd</span><span><span class="code even" style="--layer: 1" title="4:49-4:49: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..fbdd0f7db42
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-gt-{closure#0}-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 6"><span class="line">    <span class="code" style="--layer: 0">minor: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="8:5-8:17: @0[3]: _4 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+8:5-8:17: @0[4]: _3 = &amp;(*_4)
+8:5-8:17: @0[7]: _6 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+8:5-8:17: @0[8]: _5 = &amp;(*_6)
+8:5-8:17: @0.Call: _2 = &lt;usize as PartialOrd&gt;::partial_cmp(move _3, move _5) -&gt; [return: bb1, unwind: bb3]
+8:5-8:17: @1[3]: _7 = Less
+8:5-8:17: @1.Call: _0 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _2, move _7) -&gt; [return: bb2, unwind: bb3]
+8:5-8:17: @2.Return: return"><span class="annotation">@0,1,2⦊</span>patch: usize<span class="annotation">⦉@0,1,2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..736f2034333
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-gt-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 5"><span class="line">    <span class="code" style="--layer: 0">major: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="7:5-7:17: @0[4]: _5 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+7:5-7:17: @0[5]: _4 = &amp;(*_5)
+7:5-7:17: @0[8]: _7 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+7:5-7:17: @0[9]: _6 = &amp;(*_7)
+7:5-7:17: @0.Call: _3 = &lt;usize as PartialOrd&gt;::partial_cmp(move _4, move _6) -&gt; [return: bb1, unwind: bb4]
+7:5-7:17: @1[3]: _8 = Equal
+7:5-7:17: @1.Call: _2 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _3, move _8) -&gt; [return: bb2, unwind: bb4]
+7:5-7:17: @2[4]: _10 = &amp;(*(_1.2: &amp;&amp;usize))
+7:5-7:17: @2[6]: _11 = &amp;(*(_1.3: &amp;&amp;usize))"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">minor: usize</span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..0fec7c9932f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-gt.-------.InstrumentCoverage.0.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-gt - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @0[0]: FakeRead(ForMatchedPlace, (*_2))
+4:39-4:49: @0[2]: _3 = &amp;((*_2).0: usize)
+4:39-4:49: @0[4]: _4 = &amp;((*_2).1: usize)
+4:39-4:49: @0[6]: _5 = &amp;((*_2).2: usize)
+4:39-4:49: @0[7]: FakeRead(ForMatchedPlace, (*_1))
+4:39-4:49: @0[9]: _6 = &amp;((*_1).0: usize)
+4:39-4:49: @0[11]: _7 = &amp;((*_1).1: usize)
+4:39-4:49: @0[13]: _8 = &amp;((*_1).2: usize)
+4:39-4:49: @0[20]: _14 = &amp;(*_6)
+4:39-4:49: @0[21]: _13 = &amp;(*_14)
+4:39-4:49: @0[24]: _16 = &amp;(*_3)
+4:39-4:49: @0[25]: _15 = &amp;(*_16)
+4:39-4:49: @0.Call: _12 = &lt;usize as PartialOrd&gt;::partial_cmp(move _13, move _15) -&gt; [return: bb1, unwind: bb5]
+4:39-4:49: @1[3]: _17 = Equal
+4:39-4:49: @1.Call: _11 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _12, move _17) -&gt; [return: bb2, unwind: bb5]
+4:39-4:49: @2[4]: _19 = &amp;_7
+4:39-4:49: @2[6]: _20 = &amp;_4
+4:39-4:49: @2[8]: _21 = &amp;_8
+4:39-4:49: @2[10]: _22 = &amp;_5"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">PartialOrd</span><span><span class="code even" style="--layer: 1" title="4:49-4:49: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..ff4eba10789
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-le-{closure#0}-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 6"><span class="line">    <span class="code" style="--layer: 0">minor: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="8:5-8:17: @0[3]: _4 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+8:5-8:17: @0[4]: _3 = &amp;(*_4)
+8:5-8:17: @0[7]: _6 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+8:5-8:17: @0[8]: _5 = &amp;(*_6)
+8:5-8:17: @0.Call: _2 = &lt;usize as PartialOrd&gt;::partial_cmp(move _3, move _5) -&gt; [return: bb1, unwind: bb3]
+8:5-8:17: @1[3]: _7 = Greater
+8:5-8:17: @1.Call: _0 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _2, move _7) -&gt; [return: bb2, unwind: bb3]
+8:5-8:17: @2.Return: return"><span class="annotation">@0,1,2⦊</span>patch: usize<span class="annotation">⦉@0,1,2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..ccc86a7f92f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-le-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 5"><span class="line">    <span class="code" style="--layer: 0">major: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="7:5-7:17: @0[4]: _5 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+7:5-7:17: @0[5]: _4 = &amp;(*_5)
+7:5-7:17: @0[8]: _7 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+7:5-7:17: @0[9]: _6 = &amp;(*_7)
+7:5-7:17: @0.Call: _3 = &lt;usize as PartialOrd&gt;::partial_cmp(move _4, move _6) -&gt; [return: bb1, unwind: bb4]
+7:5-7:17: @1[3]: _8 = Equal
+7:5-7:17: @1.Call: _2 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _3, move _8) -&gt; [return: bb2, unwind: bb4]
+7:5-7:17: @2[4]: _10 = &amp;(*(_1.2: &amp;&amp;usize))
+7:5-7:17: @2[6]: _11 = &amp;(*(_1.3: &amp;&amp;usize))"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">minor: usize</span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..682b9112c4c
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-le.-------.InstrumentCoverage.0.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-le - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @0[0]: FakeRead(ForMatchedPlace, (*_2))
+4:39-4:49: @0[2]: _3 = &amp;((*_2).0: usize)
+4:39-4:49: @0[4]: _4 = &amp;((*_2).1: usize)
+4:39-4:49: @0[6]: _5 = &amp;((*_2).2: usize)
+4:39-4:49: @0[7]: FakeRead(ForMatchedPlace, (*_1))
+4:39-4:49: @0[9]: _6 = &amp;((*_1).0: usize)
+4:39-4:49: @0[11]: _7 = &amp;((*_1).1: usize)
+4:39-4:49: @0[13]: _8 = &amp;((*_1).2: usize)
+4:39-4:49: @0[20]: _14 = &amp;(*_6)
+4:39-4:49: @0[21]: _13 = &amp;(*_14)
+4:39-4:49: @0[24]: _16 = &amp;(*_3)
+4:39-4:49: @0[25]: _15 = &amp;(*_16)
+4:39-4:49: @0.Call: _12 = &lt;usize as PartialOrd&gt;::partial_cmp(move _13, move _15) -&gt; [return: bb1, unwind: bb5]
+4:39-4:49: @1[3]: _17 = Equal
+4:39-4:49: @1.Call: _11 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _12, move _17) -&gt; [return: bb2, unwind: bb5]
+4:39-4:49: @2[4]: _19 = &amp;_7
+4:39-4:49: @2[6]: _20 = &amp;_4
+4:39-4:49: @2[8]: _21 = &amp;_8
+4:39-4:49: @2[10]: _22 = &amp;_5"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">PartialOrd</span><span><span class="code even" style="--layer: 1" title="4:49-4:49: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..e018c96c24f
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-lt-{closure#0}-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 6"><span class="line">    <span class="code" style="--layer: 0">minor: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="8:5-8:17: @0[3]: _4 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+8:5-8:17: @0[4]: _3 = &amp;(*_4)
+8:5-8:17: @0[7]: _6 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+8:5-8:17: @0[8]: _5 = &amp;(*_6)
+8:5-8:17: @0.Call: _2 = &lt;usize as PartialOrd&gt;::partial_cmp(move _3, move _5) -&gt; [return: bb1, unwind: bb3]
+8:5-8:17: @1[3]: _7 = Greater
+8:5-8:17: @1.Call: _0 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _2, move _7) -&gt; [return: bb2, unwind: bb3]
+8:5-8:17: @2.Return: return"><span class="annotation">@0,1,2⦊</span>patch: usize<span class="annotation">⦉@0,1,2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..a10032059b5
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt-{closure#0}.-------.InstrumentCoverage.0.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-lt-{closure#0} - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 5"><span class="line">    <span class="code" style="--layer: 0">major: usize,</span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="7:5-7:17: @0[4]: _5 = &amp;(*(*(_1.0: &amp;&amp;usize)))
+7:5-7:17: @0[5]: _4 = &amp;(*_5)
+7:5-7:17: @0[8]: _7 = &amp;(*(*(_1.1: &amp;&amp;usize)))
+7:5-7:17: @0[9]: _6 = &amp;(*_7)
+7:5-7:17: @0.Call: _3 = &lt;usize as PartialOrd&gt;::partial_cmp(move _4, move _6) -&gt; [return: bb1, unwind: bb4]
+7:5-7:17: @1[3]: _8 = Equal
+7:5-7:17: @1.Call: _2 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _3, move _8) -&gt; [return: bb2, unwind: bb4]
+7:5-7:17: @2[4]: _10 = &amp;(*(_1.2: &amp;&amp;usize))
+7:5-7:17: @2[6]: _11 = &amp;(*(_1.3: &amp;&amp;usize))"><span class="annotation">@0,1,2,3⦊</span>‸<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">minor: usize</span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..89dad0f9069
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-lt.-------.InstrumentCoverage.0.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-lt - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @0[0]: FakeRead(ForMatchedPlace, (*_2))
+4:39-4:49: @0[2]: _3 = &amp;((*_2).0: usize)
+4:39-4:49: @0[4]: _4 = &amp;((*_2).1: usize)
+4:39-4:49: @0[6]: _5 = &amp;((*_2).2: usize)
+4:39-4:49: @0[7]: FakeRead(ForMatchedPlace, (*_1))
+4:39-4:49: @0[9]: _6 = &amp;((*_1).0: usize)
+4:39-4:49: @0[11]: _7 = &amp;((*_1).1: usize)
+4:39-4:49: @0[13]: _8 = &amp;((*_1).2: usize)
+4:39-4:49: @0[20]: _14 = &amp;(*_6)
+4:39-4:49: @0[21]: _13 = &amp;(*_14)
+4:39-4:49: @0[24]: _16 = &amp;(*_3)
+4:39-4:49: @0[25]: _15 = &amp;(*_16)
+4:39-4:49: @0.Call: _12 = &lt;usize as PartialOrd&gt;::partial_cmp(move _13, move _15) -&gt; [return: bb1, unwind: bb5]
+4:39-4:49: @1[3]: _17 = Equal
+4:39-4:49: @1.Call: _11 = Option::&lt;std::cmp::Ordering&gt;::unwrap_or(move _12, move _17) -&gt; [return: bb2, unwind: bb5]
+4:39-4:49: @2[4]: _19 = &amp;_7
+4:39-4:49: @2[6]: _20 = &amp;_4
+4:39-4:49: @2[8]: _21 = &amp;_8
+4:39-4:49: @2[10]: _22 = &amp;_5"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">PartialOrd</span><span><span class="code even" style="--layer: 1" title="4:49-4:49: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>‸<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-partial_cmp.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-partial_cmp.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..2c03e967eeb
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#2}-partial_cmp.-------.InstrumentCoverage.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#2}-partial_cmp - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                      <span><span class="code even" style="--layer: 1" title="4:39-4:49: @17.Goto: goto -&gt; bb18"><span class="annotation">@17⦊</span></span></span><span class="code even" style="--layer: 2" title="4:39-4:49: @15[1]: _30 = Equal
+4:39-4:49: @15[2]: _0 = Option::&lt;std::cmp::Ordering&gt;::Some(move _30)
+4:39-4:49: @15.Goto: goto -&gt; bb16"><span class="annotation">@14,15⦊</span></span><span class="code even" style="--layer: 3" title="4:39-4:49: @12[1]: _31 = _23
+4:39-4:49: @12[2]: _0 = _31
+4:39-4:49: @12.Goto: goto -&gt; bb16"><span class="annotation">@12⦊</span></span><span class="code even" style="--layer: 4" title="4:39-4:49: @16.Goto: goto -&gt; bb17"><span class="annotation">@16⦊</span>PartialOrd<span class="annotation">⦉@16</span></span><span class="code even" style="--layer: 3" title="4:39-4:49: @12[1]: _31 = _23
+4:39-4:49: @12[2]: _0 = _31
+4:39-4:49: @12.Goto: goto -&gt; bb16"><span class="annotation">⦉@12</span></span><span class="code even" style="--layer: 2" title="4:39-4:49: @15[1]: _30 = Equal
+4:39-4:49: @15[2]: _0 = Option::&lt;std::cmp::Ordering&gt;::Some(move _30)
+4:39-4:49: @15.Goto: goto -&gt; bb16"><span class="annotation">⦉@14,15</span></span><span><span class="code even" style="--layer: 1" title="4:39-4:49: @17.Goto: goto -&gt; bb18"><span class="annotation">⦉@17</span></span></span><span><span class="code odd" style="--layer: 1" title="4:49-4:49: @18.Return: return"><span class="annotation">@18⦊</span>‸<span class="annotation">⦉@18</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..49d73b3457b
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq.-------.InstrumentCoverage.0.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#4}-assert_receiver_is_total_eq - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                                  <span><span class="code even" style="--layer: 1" title="4:35-4:37: @0[0]: _0 = const ()
+4:37-4:37: @0.Return: return"><span class="annotation">@0⦊</span>Eq<span class="annotation">⦉@0</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-eq.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-eq.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..bc34080f109
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-eq.-------.InstrumentCoverage.0.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#6}-eq - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                       <span><span class="code even" style="--layer: 1" title="4:24-4:33: @2[0]: _0 = const false
+4:24-4:33: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span></span></span><span class="code even" style="--layer: 2" title="4:24-4:33: @1[0]: _0 = const true
+4:24-4:33: @1.Goto: goto -&gt; bb4"><span class="annotation">@1⦊</span>PartialEq<span class="annotation">⦉@1</span></span><span><span class="code even" style="--layer: 1" title="4:24-4:33: @2[0]: _0 = const false
+4:24-4:33: @2.Goto: goto -&gt; bb4"><span class="annotation">⦉@2</span></span></span><span><span class="code odd" style="--layer: 1" title="4:33-4:33: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-ne.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-ne.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..376c8dd80d0
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#6}-ne.-------.InstrumentCoverage.0.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#6}-ne - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                       <span><span class="code even" style="--layer: 1" title="4:24-4:33: @2[0]: _0 = const false
+4:24-4:33: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span></span></span><span class="code even" style="--layer: 2" title="4:24-4:33: @5[0]: _9 = const true
+4:24-4:33: @5.Goto: goto -&gt; bb8"><span class="annotation">@5⦊</span></span><span class="code even" style="--layer: 3" title="4:24-4:33: @6[0]: _9 = const false
+4:24-4:33: @6.Goto: goto -&gt; bb8"><span class="annotation">@6⦊</span></span><span class="code even" style="--layer: 4" title="4:24-4:33: @1[0]: _0 = const true
+4:24-4:33: @1.Goto: goto -&gt; bb4"><span class="annotation">@1⦊</span>PartialEq<span class="annotation">⦉@1</span></span><span class="code even" style="--layer: 3" title="4:24-4:33: @6[0]: _9 = const false
+4:24-4:33: @6.Goto: goto -&gt; bb8"><span class="annotation">⦉@6</span></span><span class="code even" style="--layer: 2" title="4:24-4:33: @5[0]: _9 = const true
+4:24-4:33: @5.Goto: goto -&gt; bb8"><span class="annotation">⦉@5</span></span><span><span class="code even" style="--layer: 1" title="4:24-4:33: @2[0]: _0 = const false
+4:24-4:33: @2.Goto: goto -&gt; bb4"><span class="annotation">⦉@2</span></span></span><span><span class="code odd" style="--layer: 1" title="4:33-4:33: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#7}-fmt.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#7}-fmt.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..c3fed16a3b4
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#7}-fmt.-------.InstrumentCoverage.0.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#7}-fmt - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">                <span><span class="code even" style="--layer: 1" title="4:17-4:22: @0[0]: FakeRead(ForMatchedPlace, (*_1))
+4:17-4:22: @0[2]: _3 = &amp;((*_1).0: usize)
+4:17-4:22: @0[4]: _4 = &amp;((*_1).1: usize)
+4:17-4:22: @0[6]: _5 = &amp;((*_1).2: usize)
+4:17-4:22: @0[9]: _7 = &amp;mut (*_2)
+4:17-4:22: @0[12]: _9 = const &quot;Version&quot;
+4:17-4:22: @0[13]: _8 = &amp;(*_9)
+4:17-4:22: @0.Call: _6 = Formatter::debug_struct(move _7, move _8) -&gt; [return: bb1, unwind: bb6]
+4:17-4:22: @1[2]: FakeRead(ForLet, _6)
+4:17-4:22: @1[6]: _11 = &amp;mut _6
+4:17-4:22: @1[9]: _13 = const &quot;major&quot;
+4:17-4:22: @1[10]: _12 = &amp;(*_13)
+4:17-4:22: @1[15]: _17 = &amp;(*_3)
+4:17-4:22: @1[16]: _16 = &amp;_17
+4:17-4:22: @1[17]: _15 = &amp;(*_16)
+4:17-4:22: @1[18]: _14 = move _15 as &amp;dyn std::fmt::Debug (Pointer(Unsize))
+4:17-4:22: @1.Call: _10 = DebugStruct::field(move _11, move _12, move _14) -&gt; [return: bb2, unwind: bb6]
+4:17-4:22: @2[9]: _19 = &amp;mut _6
+4:17-4:22: @2[12]: _21 = const &quot;minor&quot;
+4:17-4:22: @2[13]: _20 = &amp;(*_21)
+4:17-4:22: @2[18]: _25 = &amp;(*_4)
+4:17-4:22: @2[19]: _24 = &amp;_25
+4:17-4:22: @2[20]: _23 = &amp;(*_24)
+4:17-4:22: @2[21]: _22 = move _23 as &amp;dyn std::fmt::Debug (Pointer(Unsize))
+4:17-4:22: @2.Call: _18 = DebugStruct::field(move _19, move _20, move _22) -&gt; [return: bb3, unwind: bb6]
+4:17-4:22: @3[9]: _27 = &amp;mut _6
+4:17-4:22: @3[12]: _29 = const &quot;patch&quot;
+4:17-4:22: @3[13]: _28 = &amp;(*_29)
+4:17-4:22: @3[18]: _33 = &amp;(*_5)
+4:17-4:22: @3[19]: _32 = &amp;_33
+4:17-4:22: @3[20]: _31 = &amp;(*_32)
+4:17-4:22: @3[21]: _30 = move _31 as &amp;dyn std::fmt::Debug (Pointer(Unsize))
+4:17-4:22: @3.Call: _26 = DebugStruct::field(move _27, move _28, move _30) -&gt; [return: bb4, unwind: bb6]
+4:17-4:22: @4[8]: _34 = &amp;mut _6
+4:17-4:22: @4.Call: _0 = DebugStruct::finish(move _34) -&gt; [return: bb5, unwind: bb6]
+4:22-4:22: @5.Return: return"><span class="annotation">@0,1,2,3,4,5⦊</span>Debug<span class="annotation">⦉@0,1,2,3,4,5</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#8}-clone.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#8}-clone.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..6a4f11e0754
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.partial_eq_counter_without_region/partial_eq_counter_without_region.{impl#8}-clone.-------.InstrumentCoverage.0.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>partial_eq_counter_without_region.{impl#8}-clone - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 3"><span class="line">         <span><span class="code even" style="--layer: 1" title="4:10-4:15: @0[0]: FakeRead(ForMatchedPlace, (*_1))
+4:10-4:15: @0[2]: _2 = &amp;((*_1).0: usize)
+4:10-4:15: @0[4]: _3 = &amp;((*_1).1: usize)
+4:10-4:15: @0[6]: _4 = &amp;((*_1).2: usize)
+4:10-4:15: @0[10]: _7 = &amp;(*_2)
+4:10-4:15: @0[11]: _6 = &amp;(*_7)
+4:10-4:15: @0.Call: _5 = &lt;usize as Clone&gt;::clone(move _6) -&gt; [return: bb1, unwind: bb4]
+4:10-4:15: @1[4]: _10 = &amp;(*_3)
+4:10-4:15: @1[5]: _9 = &amp;(*_10)
+4:10-4:15: @1.Call: _8 = &lt;usize as Clone&gt;::clone(move _9) -&gt; [return: bb2, unwind: bb4]
+4:10-4:15: @2[4]: _13 = &amp;(*_4)
+4:10-4:15: @2[5]: _12 = &amp;(*_13)
+4:10-4:15: @2.Call: _11 = &lt;usize as Clone&gt;::clone(move _12) -&gt; [return: bb3, unwind: bb4]
+4:10-4:15: @3[1]: _0 = Version { major: move _5, minor: move _8, patch: move _11 }
+4:15-4:15: @3.Return: return"><span class="annotation">@0,1,2,3⦊</span>Clone<span class="annotation">⦉@0,1,2,3</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html
index 4b21d3fc263..618f84513e9 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_loop/simple_loop.main.-------.InstrumentCoverage.0.html
@@ -89,39 +89,45 @@
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="12:9-12:16: @3[6]: _7 = _1
 12:9-12:16: @3[7]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">        countdown</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">        countdown</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">        =</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">        =</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">            10</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">            10</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">        ;</span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">        ;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="14:9-16:15: @6[0]: _5 = const 10_i32
-13:5-18:6: @6[1]: _6 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
+13:5-18:6: @6[1]: _6 = const ()
+18:6-18:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="18:6-18:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    loop</span></span>
 <span class="line"><span class="code" style="--layer: 0">    {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
 23:13-25:14: @9[4]: _10 = Eq(move _11, const 0_i32)
 23:13-25:14: @9[6]: FakeRead(ForMatchedPlace, _10)"><span class="annotation">@8,9⦊</span>countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
+<span class="line"><span class="code odd" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
 23:13-25:14: @9[4]: _10 = Eq(move _11, const 0_i32)
 23:13-25:14: @9[6]: FakeRead(ForMatchedPlace, _10)">                ==</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
+<span class="line"><span class="code odd" style="--layer: 1" title="23:13-23:22: @9[3]: _11 = _5
 23:13-25:14: @9[4]: _10 = Eq(move _11, const 0_i32)
 23:13-25:14: @9[6]: FakeRead(ForMatchedPlace, _10)">            0<span class="annotation">⦉@8,9</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        {</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="27:13-27:18: @12[0]: _0 = const ()"><span class="annotation">@10,12⦊</span>break<span class="annotation">⦉@10,12</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="27:13-27:18: @12[0]: _0 = const ()"><span class="annotation">@10,12⦊</span>break<span class="annotation">⦉@10,12</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">            ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        }</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)"><span class="annotation">@11⦊</span>countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)">        -=</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)">        1<span class="annotation">⦉@11</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)"><span class="annotation">@13⦊</span>countdown</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)">        -=</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)">        1<span class="annotation">⦉@13</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code even" style="--layer: 1" title="34:6-34:6: @7.Goto: goto -&gt; bb8"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="35:2-35:2: @12.Return: return"><span class="annotation">@10,12⦊</span>‸<span class="annotation">⦉@10,12</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html
index 5ba770ef607..66885d0612b 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html
@@ -86,51 +86,39 @@
 9:9-9:22: @3[3]: FakeRead(ForLet, _5)">    let mut countdown = 1<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="10:8-10:15: @3[6]: _7 = _1
 10:8-10:15: @3[7]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@0,1,2,3⦊</span>is_true<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:22: @6[0]: _5 = const 0_i32
-10:16-12:6: @6[1]: _6 = const ()"><span class="annotation">@4,6⦊</span>{</span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7"><span class="annotation">@4,6⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:22: @6[0]: _5 = const 0_i32
-10:16-12:6: @6[1]: _6 = const ()">        countdown = 0;</span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7">        countdown = 0;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:22: @6[0]: _5 = const 0_i32
-10:16-12:6: @6[1]: _6 = const ()">    }<span class="annotation">⦉@4,6</span></span></span><span class="code" style="--layer: 0"></span></span>
+10:16-12:6: @6[1]: _6 = const ()
+12:6-12:6: @6.Goto: goto -&gt; bb7">    }<span class="annotation">⦉@4,6</span></span></span><span><span class="code even" style="--layer: 1" title="12:6-12:6: @5.Goto: goto -&gt; bb7"><span class="annotation">@5⦊</span>‸<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="15:9-15:10: @11[2]: _17 = discriminant(_14)"><span class="annotation">@9,10,11⦊</span>for</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="15:9-15:10: @11[2]: _17 = discriminant(_14)">        _<span class="annotation">⦉@9,10,11</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    for</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="15:9-15:10: @15[1]: _18 = ((_14 as Some).0: i32)
+15:9-15:10: @15[3]: _19 = _18
+15:9-15:10: @15[4]: _12 = move _19
+15:9-15:10: @15[5]: _13 = const ()"><span class="annotation">@13,15,17⦊</span>_<span class="annotation">⦉@13,15,17</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    in</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="17:9-17:13: @7[4]: _9 = std::ops::Range::&lt;i32&gt; { start: const 0_i32, end: const 2_i32 }
-17:9-17:13: @7.Call: _8 = &lt;std::ops::Range&lt;i32&gt; as IntoIterator&gt;::into_iter(move _9) -&gt; [return: bb8, unwind: bb22]
-17:9-17:13: @8[1]: FakeRead(ForMatchedPlace, _8)
-17:9-17:13: @8[3]: _10 = move _8"><span class="annotation">@7,8⦊</span>0..2<span class="annotation">⦉@7,8</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="17:9-17:13: @10[5]: _16 = &amp;mut _10
+17:9-17:13: @10[6]: _15 = &amp;mut (*_16)
+17:9-17:13: @10.Call: _14 = &lt;std::ops::Range&lt;i32&gt; as Iterator&gt;::next(move _15) -&gt; [return: bb11, unwind: bb22]
+17:9-17:13: @11[1]: FakeRead(ForMatchedPlace, _14)"><span class="annotation">@9,10,11⦊</span>0..2<span class="annotation">⦉@9,10,11</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        let z</span></span>
 <span class="line"><span class="code" style="--layer: 0">        ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        match</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)"><span class="annotation">@13,15,17⦊</span>countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">        {</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">            x</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">            if</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">                x</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)"><span class="annotation">@13,15,17⦊</span>countdown<span class="annotation">⦉@13,15,17</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        {</span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="24:13-24:14: @18[3]: _23 = _5"><span class="annotation">@18⦊</span>x<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">            if</span></span>
+<span class="line"><span class="code" style="--layer: 0">                </span><span><span class="code odd" style="--layer: 1" title="26:17-26:18: @17[4]: _26 = (*_24)
+26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)"><span class="annotation">@13,15,17⦊</span>x</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="26:17-26:18: @17[4]: _26 = (*_24)
 26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">                    &lt;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="22:13-22:22: @15[13]: FakeRead(ForMatchedPlace, _5)
-24:13-24:14: @17[1]: _24 = &amp;_5
-26:17-26:18: @17[4]: _26 = (*_24)
-26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">                1<span class="annotation">⦉@13,15,17</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="26:17-26:18: @17[4]: _26 = (*_24)
+26:17-28:18: @17[5]: _25 = Lt(move _26, const 1_i32)">                1<span class="annotation">⦉@13,15,17</span></span></span><span><span class="code even" style="--layer: 1" title="28:18-28:18: @19.Goto: goto -&gt; bb16"><span class="annotation">@19⦊</span>‸<span class="annotation">⦉@19</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">            =&gt;</span></span>
 <span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="31:21-31:30: @18[5]: _27 = _5
 31:17-31:30: @18[6]: _22 = move _27
@@ -184,7 +172,7 @@
 <span class="line"><span class="code" style="--layer: 0">            =&gt;</span></span>
 <span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="40:13-40:15: @16[0]: _21 = const ()"><span class="annotation">@16⦊</span>{}<span class="annotation">⦉@16</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        }</span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code odd" style="--layer: 1" title="42:6-42:6: @8.Goto: goto -&gt; bb9"><span class="annotation">@7,8⦊</span>‸<span class="annotation">⦉@7,8</span></span></span><span><span class="code even" style="--layer: 1" title="42:6-42:6: @20.Goto: goto -&gt; bb9"><span class="annotation">@20⦊</span>‸<span class="annotation">⦉@20</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="43:2-43:2: @12.Return: return"><span class="annotation">@12⦊</span>‸<span class="annotation">⦉@12</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.tight_infinite_loop/tight_infinite_loop.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.tight_infinite_loop/tight_infinite_loop.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..db08315baa6
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.tight_infinite_loop/tight_infinite_loop.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>tight_infinite_loop.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 0"><span class="line"><span class="code" style="--layer: 0">fn main() {</span></span>
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="2:8-2:13: @0[1]: _1 = const false
+2:8-2:13: @0[2]: FakeRead(ForMatchedPlace, _1)"><span class="annotation">@0⦊</span>false<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> {</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="3:9-3:16: @4.FalseUnwind: falseUnwind -&gt; [real: bb5, cleanup: bb6]
+3:14-3:16: @5[0]: _3 = const ()"><span class="annotation">@4,5⦊</span>loop {}<span class="annotation">⦉@4,5</span></span></span><span><span class="code even" style="--layer: 1" title="3:16-3:16: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>‸<span class="annotation">⦉@1,3</span></span></span><span><span class="code odd" style="--layer: 1" title="3:16-3:16: @5.Goto: goto -&gt; bb4"><span class="annotation">@4,5⦊</span>‸<span class="annotation">⦉@4,5</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="5:2-5:2: @2.Return: return"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html
index 9f993342340..8a0b1ae8dab 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.call.-------.InstrumentCoverage.0.html
@@ -67,7 +67,7 @@
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="8:12-8:14: @2[1]: _4 = ()
 8:9-8:15: @2[2]: _0 = std::result::Result::&lt;(), ()&gt;::Ok(move _4)"><span class="annotation">@2⦊</span>Ok(())<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="10:2-10:2: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code odd" style="--layer: 1" title="9:6-9:6: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>‸<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="10:2-10:2: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html
index 660c3031f35..428c6fadc27 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html
@@ -65,37 +65,51 @@
 <span class="line"><span class="code even" style="--layer: 1" title="14:21-14:23: @0[1]: _1 = const 10_i32
 13:9-14:18: @0[2]: FakeRead(ForLet, _1)">        countdown = 10<span class="annotation">⦉@0,1</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="17:9-17:10: @4[2]: _12 = discriminant(_9)"><span class="annotation">@2,3,4⦊</span>for</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="17:9-17:10: @4[2]: _12 = discriminant(_9)">        _<span class="annotation">⦉@2,3,4</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    for</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="17:9-17:10: @8[1]: _13 = ((_9 as Some).0: i32)
+17:9-17:10: @8[3]: _14 = _13
+17:9-17:10: @8[4]: _7 = move _14
+17:9-17:10: @8[5]: _8 = const ()"><span class="annotation">@6,8⦊</span>_<span class="annotation">⦉@6,8</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    in</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="19:9-19:14: @0[6]: _4 = std::ops::Range::&lt;i32&gt; { start: const 0_i32, end: const 10_i32 }
-19:9-19:14: @0.Call: _3 = &lt;std::ops::Range&lt;i32&gt; as IntoIterator&gt;::into_iter(move _4) -&gt; [return: bb1, unwind: bb32]
-19:9-19:14: @1[1]: FakeRead(ForMatchedPlace, _3)
-19:9-19:14: @1[3]: _5 = move _3"><span class="annotation">@0,1⦊</span>0..10<span class="annotation">⦉@0,1</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="19:9-19:14: @3[5]: _11 = &amp;mut _5
+19:9-19:14: @3[6]: _10 = &amp;mut (*_11)
+19:9-19:14: @3.Call: _9 = &lt;std::ops::Range&lt;i32&gt; as Iterator&gt;::next(move _10) -&gt; [return: bb4, unwind: bb32]
+19:9-19:14: @4[1]: FakeRead(ForMatchedPlace, _9)"><span class="annotation">@2,3,4⦊</span>0..10<span class="annotation">⦉@2,3,4</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)"><span class="annotation">@6,8⦊</span>countdown</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)">            -= 1<span class="annotation">⦉@6,8</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        ;</span></span>
-<span class="line"><span class="code" style="--layer: 0">        if</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="25:13-25:22: @9[3]: _19 = _1
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
 25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
-25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"><span class="annotation">@9⦊</span>countdown &lt; 5<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"><span class="annotation">@9⦊</span>countdown</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
+25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)">            -= 1</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
+25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)">        ;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
+25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)">        if</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
+25:13-25:22: @9[3]: _19 = _1
+25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
+25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)">            countdown &lt; 5<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        {</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code odd" style="--layer: 1" title="27:13-27:41: @12.Call: _22 = call(const true) -&gt; [return: bb13, unwind: bb32]
-27:13-27:42: @13.Call: _21 = &lt;std::result::Result&lt;(), ()&gt; as Try&gt;::into_result(move _22) -&gt; [return: bb14, unwind: bb32]
-27:13-27:42: @14[1]: FakeRead(ForMatchedPlace, _21)
-27:41-27:42: @14[2]: _23 = discriminant(_21)"><span class="annotation">@10,12,13,14⦊</span>call(/*return_error=*/ true)?<span class="annotation">⦉@10,12,13,14</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="27:13-27:41: @12.Call: _22 = call(const true) -&gt; [return: bb13, unwind: bb32]"><span class="annotation">@10,12,13,14⦊</span>call(/*return_error=*/ true)<span class="annotation">⦉@10,12,13,14</span></span></span><span><span class="code odd" style="--layer: 1" title="27:41-27:42: @18[1]: _24 = ((_21 as Err).0: ())
+27:41-27:42: @18[4]: _27 = _24
+27:41-27:42: @18.Call: _26 = &lt;() as From&lt;()&gt;&gt;::from(move _27) -&gt; [return: bb19, unwind: bb32]"><span class="annotation">@16,18,19,20⦊</span>?<span class="annotation">⦉@16,18,19,20</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        }</span></span>
 <span class="line"><span class="code" style="--layer: 0">        else</span></span>
 <span class="line"><span class="code" style="--layer: 0">        {</span></span>
-<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="31:13-31:42: @11.Call: _31 = call(const false) -&gt; [return: bb21, unwind: bb32]
-31:13-31:43: @21.Call: _30 = &lt;std::result::Result&lt;(), ()&gt; as Try&gt;::into_result(move _31) -&gt; [return: bb22, unwind: bb32]
-31:13-31:43: @22[1]: FakeRead(ForMatchedPlace, _30)
-31:42-31:43: @22[2]: _32 = discriminant(_30)"><span class="annotation">@11,21,22⦊</span>call(/*return_error=*/ false)?<span class="annotation">⦉@11,21,22</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">        }</span></span>
-<span class="line"><span class="code" style="--layer: 0">    }</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="34:8-34:10: @5[9]: _38 = ()
+<span class="line"><span class="code" style="--layer: 0">            </span><span><span class="code even" style="--layer: 1" title="31:13-31:42: @11.Call: _31 = call(const false) -&gt; [return: bb21, unwind: bb32]"><span class="annotation">@11,21,22⦊</span>call(/*return_error=*/ false)<span class="annotation">⦉@11,21,22</span></span></span><span><span class="code odd" style="--layer: 1" title="31:42-31:43: @26[1]: _33 = ((_30 as Err).0: ())
+31:42-31:43: @26[4]: _36 = _33
+31:42-31:43: @26.Call: _35 = &lt;() as From&lt;()&gt;&gt;::from(move _36) -&gt; [return: bb27, unwind: bb32]"><span class="annotation">@24,26,27,28⦊</span>?<span class="annotation">⦉@24,26,27,28</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        }</span><span><span class="code even" style="--layer: 1" title="32:10-32:10: @15.Goto: goto -&gt; bb29"><span class="annotation">@15⦊</span>‸<span class="annotation">⦉@15</span></span></span><span><span class="code odd" style="--layer: 1" title="32:10-32:10: @23.Goto: goto -&gt; bb29"><span class="annotation">@23⦊</span>‸<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    }</span><span><span class="code even" style="--layer: 1" title="33:6-33:6: @1.Goto: goto -&gt; bb2"><span class="annotation">@0,1⦊</span>‸<span class="annotation">⦉@0,1</span></span></span><span><span class="code odd" style="--layer: 1" title="33:6-33:6: @29.Goto: goto -&gt; bb2"><span class="annotation">@29⦊</span>‸<span class="annotation">⦉@29</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="34:8-34:10: @5[9]: _38 = ()
 34:5-34:11: @5[10]: _0 = std::result::Result::&lt;(), ()&gt;::Ok(move _38)"><span class="annotation">@5⦊</span>Ok(())<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="35:2-35:2: @31.Return: return"><span class="annotation">@31⦊</span>‸<span class="annotation">⦉@31</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="35:2-35:2: @30.Goto: goto -&gt; bb31"><span class="annotation">@30⦊</span>‸<span class="annotation">⦉@30</span></span></span><span><span class="code even" style="--layer: 1" title="35:2-35:2: @31.Return: return"><span class="annotation">@31⦊</span>‸<span class="annotation">⦉@31</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html
index 28f1d013c83..b9f6f4d7832 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.various_conditions/various_conditions.main.-------.InstrumentCoverage.0.html
@@ -64,32 +64,42 @@
 4:9-4:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 0<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="5:8-5:12: @0[5]: _3 = const true
 5:8-5:12: @0[6]: FakeRead(ForMatchedPlace, _3)"><span class="annotation">@0⦊</span>true<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="6:9-6:23: @3[0]: _1 = const 10_u32
-5:13-7:6: @3[1]: _2 = const ()"><span class="annotation">@1,3⦊</span>{</span></span>
+5:13-7:6: @3[1]: _2 = const ()
+7:6-7:6: @3.Goto: goto -&gt; bb4"><span class="annotation">@1,3⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="6:9-6:23: @3[0]: _1 = const 10_u32
-5:13-7:6: @3[1]: _2 = const ()">        countdown = 10;</span></span>
+5:13-7:6: @3[1]: _2 = const ()
+7:6-7:6: @3.Goto: goto -&gt; bb4">        countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="6:9-6:23: @3[0]: _1 = const 10_u32
-5:13-7:6: @3[1]: _2 = const ()">    }<span class="annotation">⦉@1,3</span></span></span><span class="code" style="--layer: 0"></span></span>
+5:13-7:6: @3[1]: _2 = const ()
+7:6-7:6: @3.Goto: goto -&gt; bb4">    }<span class="annotation">⦉@1,3</span></span></span><span><span class="code even" style="--layer: 1" title="7:6-7:6: @2.Goto: goto -&gt; bb4"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    const B: u32 = 100;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="10:9-10:10: @25[0]: FakeRead(ForLet, _4)"><span class="annotation">@25⦊</span>x<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code odd" style="--layer: 1" title="10:16-10:25: @4[5]: _6 = _1
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code odd" style="--layer: 1" title="10:9-10:10: @25[0]: FakeRead(ForLet, _4)"><span class="annotation">@25⦊</span>x<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="10:16-10:25: @4[5]: _6 = _1
 10:16-10:29: @4[6]: _5 = Gt(move _6, const 7_u32)
 10:16-10:29: @4[8]: FakeRead(ForMatchedPlace, _5)"><span class="annotation">@4⦊</span>countdown &gt; 7<span class="annotation">⦉@4</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="11:9-11:23: @7[0]: _7 = CheckedSub(_1, const 4_u32)"><span class="annotation">@5,7⦊</span>countdown -= 4<span class="annotation">⦉@5,7</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="12:9-12:10: @8[1]: _4 = const B"><span class="annotation">@8⦊</span>B<span class="annotation">⦉@8</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="11:9-11:23: @8[0]: _1 = move (_7.0: u32)
+12:9-12:10: @8[1]: _4 = const B"><span class="annotation">@8⦊</span>countdown -= 4;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:23: @8[0]: _1 = move (_7.0: u32)
+12:9-12:10: @8[1]: _4 = const B">        B<span class="annotation">⦉@8</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code even" style="--layer: 1" title="13:15-13:24: @6[2]: _9 = _1
 13:15-13:28: @6[3]: _8 = Gt(move _9, const 2_u32)
 13:15-13:28: @6[5]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@6⦊</span>countdown &gt; 2<span class="annotation">⦉@6</span></span></span><span class="code" style="--layer: 0"> {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code odd" style="--layer: 1" title="14:12-14:21: @11[5]: _14 = _1
 14:12-14:25: @11[6]: _13 = Lt(move _14, const 1_u32)"><span class="annotation">@9,11⦊</span>countdown &lt; 1<span class="annotation">⦉@9,11</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="14:29-14:38: @18[2]: _16 = _1
-14:29-14:42: @18[3]: _15 = Gt(move _16, const 5_u32)"><span class="annotation">@18⦊</span>countdown &gt; 5<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="14:46-14:55: @14[2]: _18 = _1
-14:46-14:60: @14[3]: _17 = Ne(move _18, const 9_u32)"><span class="annotation">@14⦊</span>countdown != 9<span class="annotation">⦉@14</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
-14:61-16:10: @22[1]: _10 = const ()"><span class="annotation">@20,22⦊</span>{</span></span>
+14:29-14:42: @18[3]: _15 = Gt(move _16, const 5_u32)"><span class="annotation">@18⦊</span>countdown &gt; 5<span class="annotation">⦉@18</span></span></span><span><span class="code odd" style="--layer: 1" title="14:42-14:42: @16.Goto: goto -&gt; bb19"><span class="annotation">@16⦊</span>‸<span class="annotation">⦉@16</span></span></span><span><span class="code even" style="--layer: 1" title="14:42-14:42: @17.Goto: goto -&gt; bb19"><span class="annotation">@17⦊</span>‸<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="14:46-14:55: @14[2]: _18 = _1
+14:46-14:60: @14[3]: _17 = Ne(move _18, const 9_u32)"><span class="annotation">@14⦊</span>countdown != 9<span class="annotation">⦉@14</span></span></span><span><span class="code even" style="--layer: 1" title="14:60-14:60: @12.Goto: goto -&gt; bb15"><span class="annotation">@12⦊</span>‸<span class="annotation">⦉@12</span></span></span><span><span class="code odd" style="--layer: 1" title="14:60-14:60: @13.Goto: goto -&gt; bb15"><span class="annotation">@13⦊</span>‸<span class="annotation">⦉@13</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
+14:61-16:10: @22[1]: _10 = const ()
+16:10-16:10: @22.Goto: goto -&gt; bb23"><span class="annotation">@20,22⦊</span>{</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
-14:61-16:10: @22[1]: _10 = const ()">            countdown = 0;</span></span>
+14:61-16:10: @22[1]: _10 = const ()
+16:10-16:10: @22.Goto: goto -&gt; bb23">            countdown = 0;</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
-14:61-16:10: @22[1]: _10 = const ()">        }<span class="annotation">⦉@20,22</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="17:9-17:23: @23[2]: _19 = CheckedSub(_1, const 5_u32)"><span class="annotation">@23⦊</span>countdown -= 5<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="18:9-18:18: @24[1]: _4 = _1"><span class="annotation">@24⦊</span>countdown<span class="annotation">⦉@24</span></span></span><span class="code" style="--layer: 0"></span></span>
+14:61-16:10: @22[1]: _10 = const ()
+16:10-16:10: @22.Goto: goto -&gt; bb23">        }<span class="annotation">⦉@20,22</span></span></span><span><span class="code odd" style="--layer: 1" title="16:10-16:10: @21.Goto: goto -&gt; bb23"><span class="annotation">@21⦊</span>‸<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="17:9-17:23: @24[0]: _1 = move (_19.0: u32)
+18:9-18:18: @24[1]: _4 = _1"><span class="annotation">@24⦊</span>countdown -= 5;</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="17:9-17:23: @24[0]: _1 = move (_19.0: u32)
+18:9-18:18: @24[1]: _4 = _1">        countdown<span class="annotation">⦉@24</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="20:9-20:15: @10[0]: _0 = const ()"><span class="annotation">@10⦊</span>return<span class="annotation">⦉@10</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    };</span></span>
@@ -98,29 +108,35 @@
 23:9-23:22: @25[4]: FakeRead(ForLet, _21)"><span class="annotation">@25⦊</span>mut countdown = 0<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="24:8-24:12: @25[7]: _23 = const true
 24:8-24:12: @25[8]: FakeRead(ForMatchedPlace, _23)"><span class="annotation">@25⦊</span>true<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="25:9-25:23: @28[0]: _21 = const 10_i32
-24:13-26:6: @28[1]: _22 = const ()"><span class="annotation">@26,28⦊</span>{</span></span>
+24:13-26:6: @28[1]: _22 = const ()
+26:6-26:6: @28.Goto: goto -&gt; bb29"><span class="annotation">@26,28⦊</span>{</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="25:9-25:23: @28[0]: _21 = const 10_i32
-24:13-26:6: @28[1]: _22 = const ()">        countdown = 10;</span></span>
+24:13-26:6: @28[1]: _22 = const ()
+26:6-26:6: @28.Goto: goto -&gt; bb29">        countdown = 10;</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="25:9-25:23: @28[0]: _21 = const 10_i32
-24:13-26:6: @28[1]: _22 = const ()">    }<span class="annotation">⦉@26,28</span></span></span><span class="code" style="--layer: 0"></span></span>
+24:13-26:6: @28[1]: _22 = const ()
+26:6-26:6: @28.Goto: goto -&gt; bb29">    }<span class="annotation">⦉@26,28</span></span></span><span><span class="code even" style="--layer: 1" title="26:6-26:6: @27.Goto: goto -&gt; bb29"><span class="annotation">@27⦊</span>‸<span class="annotation">⦉@27</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code even" style="--layer: 1" title="28:8-28:17: @29[5]: _26 = _21
+<span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code odd" style="--layer: 1" title="28:8-28:17: @29[5]: _26 = _21
 28:8-28:21: @29[6]: _25 = Gt(move _26, const 7_i32)
 28:8-28:21: @29[8]: FakeRead(ForMatchedPlace, _25)"><span class="annotation">@29⦊</span>countdown &gt; 7<span class="annotation">⦉@29</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="29:9-29:23: @32[0]: _27 = CheckedSub(_21, const 4_i32)"><span class="annotation">@30,32⦊</span>countdown -= 4<span class="annotation">⦉@30,32</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code even" style="--layer: 1" title="30:15-30:24: @31[2]: _29 = _21
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="29:9-29:23: @33[0]: _21 = move (_27.0: i32)"><span class="annotation">@33⦊</span>countdown -= 4<span class="annotation">⦉@33</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code odd" style="--layer: 1" title="30:15-30:24: @31[2]: _29 = _21
 30:15-30:28: @31[3]: _28 = Gt(move _29, const 2_i32)
 30:15-30:28: @31[5]: FakeRead(ForMatchedPlace, _28)"><span class="annotation">@31⦊</span>countdown &gt; 2<span class="annotation">⦉@31</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code odd" style="--layer: 1" title="31:12-31:21: @36[5]: _34 = _21
-31:12-31:25: @36[6]: _33 = Lt(move _34, const 1_i32)"><span class="annotation">@34,36⦊</span>countdown &lt; 1<span class="annotation">⦉@34,36</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="31:29-31:38: @43[2]: _36 = _21
-31:29-31:42: @43[3]: _35 = Gt(move _36, const 5_i32)"><span class="annotation">@43⦊</span>countdown &gt; 5<span class="annotation">⦉@43</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="31:46-31:55: @39[2]: _38 = _21
-31:46-31:60: @39[3]: _37 = Ne(move _38, const 9_i32)"><span class="annotation">@39⦊</span>countdown != 9<span class="annotation">⦉@39</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
-31:61-33:10: @47[1]: _30 = const ()"><span class="annotation">@45,47⦊</span>{</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
-31:61-33:10: @47[1]: _30 = const ()">            countdown = 0;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
-31:61-33:10: @47[1]: _30 = const ()">        }<span class="annotation">⦉@45,47</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="34:9-34:23: @48[2]: _39 = CheckedSub(_21, const 5_i32)"><span class="annotation">@48⦊</span>countdown -= 5<span class="annotation">⦉@48</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="31:12-31:21: @36[5]: _34 = _21
+31:12-31:25: @36[6]: _33 = Lt(move _34, const 1_i32)"><span class="annotation">@34,36⦊</span>countdown &lt; 1<span class="annotation">⦉@34,36</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="31:29-31:38: @43[2]: _36 = _21
+31:29-31:42: @43[3]: _35 = Gt(move _36, const 5_i32)"><span class="annotation">@43⦊</span>countdown &gt; 5<span class="annotation">⦉@43</span></span></span><span><span class="code even" style="--layer: 1" title="31:42-31:42: @41.Goto: goto -&gt; bb44"><span class="annotation">@41⦊</span>‸<span class="annotation">⦉@41</span></span></span><span><span class="code odd" style="--layer: 1" title="31:42-31:42: @42.Goto: goto -&gt; bb44"><span class="annotation">@42⦊</span>‸<span class="annotation">⦉@42</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="31:46-31:55: @39[2]: _38 = _21
+31:46-31:60: @39[3]: _37 = Ne(move _38, const 9_i32)"><span class="annotation">@39⦊</span>countdown != 9<span class="annotation">⦉@39</span></span></span><span><span class="code odd" style="--layer: 1" title="31:60-31:60: @37.Goto: goto -&gt; bb40"><span class="annotation">@37⦊</span>‸<span class="annotation">⦉@37</span></span></span><span><span class="code even" style="--layer: 1" title="31:60-31:60: @38.Goto: goto -&gt; bb40"><span class="annotation">@38⦊</span>‸<span class="annotation">⦉@38</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
+31:61-33:10: @47[1]: _30 = const ()
+33:10-33:10: @47.Goto: goto -&gt; bb48"><span class="annotation">@45,47⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
+31:61-33:10: @47[1]: _30 = const ()
+33:10-33:10: @47.Goto: goto -&gt; bb48">            countdown = 0;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
+31:61-33:10: @47[1]: _30 = const ()
+33:10-33:10: @47.Goto: goto -&gt; bb48">        }<span class="annotation">⦉@45,47</span></span></span><span><span class="code even" style="--layer: 1" title="33:10-33:10: @46.Goto: goto -&gt; bb48"><span class="annotation">@46⦊</span>‸<span class="annotation">⦉@46</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="34:9-34:23: @49[0]: _21 = move (_39.0: i32)"><span class="annotation">@49⦊</span>countdown -= 5<span class="annotation">⦉@49</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="36:9-36:15: @35[0]: _0 = const ()"><span class="annotation">@35⦊</span>return<span class="annotation">⦉@35</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    }</span></span>
@@ -129,29 +145,35 @@
 39:9-39:22: @50[4]: FakeRead(ForLet, _41)"><span class="annotation">@50⦊</span>mut countdown = 0<span class="annotation">⦉@50</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    if </span><span><span class="code odd" style="--layer: 1" title="40:8-40:12: @50[7]: _43 = const true
 40:8-40:12: @50[8]: FakeRead(ForMatchedPlace, _43)"><span class="annotation">@50⦊</span>true<span class="annotation">⦉@50</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
-40:13-42:6: @53[1]: _42 = const ()"><span class="annotation">@51,53⦊</span>{</span></span>
+40:13-42:6: @53[1]: _42 = const ()
+42:6-42:6: @53.Goto: goto -&gt; bb54"><span class="annotation">@51,53⦊</span>{</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
-40:13-42:6: @53[1]: _42 = const ()">        countdown = 1;</span></span>
+40:13-42:6: @53[1]: _42 = const ()
+42:6-42:6: @53.Goto: goto -&gt; bb54">        countdown = 1;</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
-40:13-42:6: @53[1]: _42 = const ()">    }<span class="annotation">⦉@51,53</span></span></span><span class="code" style="--layer: 0"></span></span>
+40:13-42:6: @53[1]: _42 = const ()
+42:6-42:6: @53.Goto: goto -&gt; bb54">    }<span class="annotation">⦉@51,53</span></span></span><span><span class="code odd" style="--layer: 1" title="42:6-42:6: @52.Goto: goto -&gt; bb54"><span class="annotation">@52⦊</span>‸<span class="annotation">⦉@52</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code odd" style="--layer: 1" title="44:9-44:10: @77[0]: FakeRead(ForLet, _44)"><span class="annotation">@77⦊</span>z<span class="annotation">⦉@77</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="44:16-44:25: @54[5]: _46 = _41
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="44:9-44:10: @77[0]: FakeRead(ForLet, _44)"><span class="annotation">@77⦊</span>z<span class="annotation">⦉@77</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code odd" style="--layer: 1" title="44:16-44:25: @54[5]: _46 = _41
 44:16-44:29: @54[6]: _45 = Gt(move _46, const 7_i32)
 44:16-44:29: @54[8]: FakeRead(ForMatchedPlace, _45)"><span class="annotation">@54⦊</span>countdown &gt; 7<span class="annotation">⦉@54</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="45:9-45:23: @57[0]: _47 = CheckedSub(_41, const 4_i32)"><span class="annotation">@55,57⦊</span>countdown -= 4<span class="annotation">⦉@55,57</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code even" style="--layer: 1" title="46:15-46:24: @56[2]: _49 = _41
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="45:9-45:23: @58[0]: _41 = move (_47.0: i32)"><span class="annotation">@58⦊</span>countdown -= 4<span class="annotation">⦉@58</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code odd" style="--layer: 1" title="46:15-46:24: @56[2]: _49 = _41
 46:15-46:28: @56[3]: _48 = Gt(move _49, const 2_i32)
 46:15-46:28: @56[5]: FakeRead(ForMatchedPlace, _48)"><span class="annotation">@56⦊</span>countdown &gt; 2<span class="annotation">⦉@56</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code odd" style="--layer: 1" title="47:12-47:21: @61[5]: _54 = _41
-47:12-47:25: @61[6]: _53 = Lt(move _54, const 1_i32)"><span class="annotation">@59,61⦊</span>countdown &lt; 1<span class="annotation">⦉@59,61</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="47:29-47:38: @68[2]: _56 = _41
-47:29-47:42: @68[3]: _55 = Gt(move _56, const 5_i32)"><span class="annotation">@68⦊</span>countdown &gt; 5<span class="annotation">⦉@68</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="47:46-47:55: @64[2]: _58 = _41
-47:46-47:60: @64[3]: _57 = Ne(move _58, const 9_i32)"><span class="annotation">@64⦊</span>countdown != 9<span class="annotation">⦉@64</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
-47:61-49:10: @72[1]: _50 = const ()"><span class="annotation">@70,72⦊</span>{</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
-47:61-49:10: @72[1]: _50 = const ()">            countdown = 0;</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
-47:61-49:10: @72[1]: _50 = const ()">        }<span class="annotation">⦉@70,72</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="50:9-50:23: @73[2]: _59 = CheckedSub(_41, const 5_i32)"><span class="annotation">@73⦊</span>countdown -= 5<span class="annotation">⦉@73</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code even" style="--layer: 1" title="47:12-47:21: @61[5]: _54 = _41
+47:12-47:25: @61[6]: _53 = Lt(move _54, const 1_i32)"><span class="annotation">@59,61⦊</span>countdown &lt; 1<span class="annotation">⦉@59,61</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="47:29-47:38: @68[2]: _56 = _41
+47:29-47:42: @68[3]: _55 = Gt(move _56, const 5_i32)"><span class="annotation">@68⦊</span>countdown &gt; 5<span class="annotation">⦉@68</span></span></span><span><span class="code even" style="--layer: 1" title="47:42-47:42: @66.Goto: goto -&gt; bb69"><span class="annotation">@66⦊</span>‸<span class="annotation">⦉@66</span></span></span><span><span class="code odd" style="--layer: 1" title="47:42-47:42: @67.Goto: goto -&gt; bb69"><span class="annotation">@67⦊</span>‸<span class="annotation">⦉@67</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="47:46-47:55: @64[2]: _58 = _41
+47:46-47:60: @64[3]: _57 = Ne(move _58, const 9_i32)"><span class="annotation">@64⦊</span>countdown != 9<span class="annotation">⦉@64</span></span></span><span><span class="code odd" style="--layer: 1" title="47:60-47:60: @62.Goto: goto -&gt; bb65"><span class="annotation">@62⦊</span>‸<span class="annotation">⦉@62</span></span></span><span><span class="code even" style="--layer: 1" title="47:60-47:60: @63.Goto: goto -&gt; bb65"><span class="annotation">@63⦊</span>‸<span class="annotation">⦉@63</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
+47:61-49:10: @72[1]: _50 = const ()
+49:10-49:10: @72.Goto: goto -&gt; bb73"><span class="annotation">@70,72⦊</span>{</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
+47:61-49:10: @72[1]: _50 = const ()
+49:10-49:10: @72.Goto: goto -&gt; bb73">            countdown = 0;</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
+47:61-49:10: @72[1]: _50 = const ()
+49:10-49:10: @72.Goto: goto -&gt; bb73">        }<span class="annotation">⦉@70,72</span></span></span><span><span class="code even" style="--layer: 1" title="49:10-49:10: @71.Goto: goto -&gt; bb73"><span class="annotation">@71⦊</span>‸<span class="annotation">⦉@71</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="50:9-50:23: @74[0]: _41 = move (_59.0: i32)"><span class="annotation">@74⦊</span>countdown -= 5<span class="annotation">⦉@74</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        let </span><span><span class="code even" style="--layer: 1" title="52:35-52:44: @60[1]: _61 = _41
 52:13-52:32: @60[2]: FakeRead(ForLet, _61)
@@ -206,23 +228,26 @@
 <span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code odd" style="--layer: 1" title="57:9-57:10: @98[0]: FakeRead(ForLet, _74)"><span class="annotation">@98⦊</span>w<span class="annotation">⦉@98</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="57:16-57:25: @77[5]: _76 = _41
 57:16-57:29: @77[6]: _75 = Gt(move _76, const 7_i32)
 57:16-57:29: @77[8]: FakeRead(ForMatchedPlace, _75)"><span class="annotation">@77⦊</span>countdown &gt; 7<span class="annotation">⦉@77</span></span></span><span class="code" style="--layer: 0"> {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="58:9-58:23: @80[0]: _77 = CheckedSub(_41, const 4_i32)"><span class="annotation">@78,80⦊</span>countdown -= 4<span class="annotation">⦉@78,80</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="58:9-58:23: @81[0]: _41 = move (_77.0: i32)"><span class="annotation">@81⦊</span>countdown -= 4<span class="annotation">⦉@81</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else if </span><span><span class="code even" style="--layer: 1" title="59:15-59:24: @79[2]: _79 = _41
 59:15-59:28: @79[3]: _78 = Gt(move _79, const 2_i32)
 59:15-59:28: @79[5]: FakeRead(ForMatchedPlace, _78)"><span class="annotation">@79⦊</span>countdown &gt; 2<span class="annotation">⦉@79</span></span></span><span class="code" style="--layer: 0"> {</span></span>
 <span class="line"><span class="code" style="--layer: 0">        if </span><span><span class="code odd" style="--layer: 1" title="60:12-60:21: @84[5]: _84 = _41
 60:12-60:25: @84[6]: _83 = Lt(move _84, const 1_i32)"><span class="annotation">@82,84⦊</span>countdown &lt; 1<span class="annotation">⦉@82,84</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="60:29-60:38: @91[2]: _86 = _41
-60:29-60:42: @91[3]: _85 = Gt(move _86, const 5_i32)"><span class="annotation">@91⦊</span>countdown &gt; 5<span class="annotation">⦉@91</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="60:46-60:55: @87[2]: _88 = _41
-60:46-60:60: @87[3]: _87 = Ne(move _88, const 9_i32)"><span class="annotation">@87⦊</span>countdown != 9<span class="annotation">⦉@87</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
-60:61-62:10: @95[1]: _80 = const ()"><span class="annotation">@93,95⦊</span>{</span></span>
+60:29-60:42: @91[3]: _85 = Gt(move _86, const 5_i32)"><span class="annotation">@91⦊</span>countdown &gt; 5<span class="annotation">⦉@91</span></span></span><span><span class="code odd" style="--layer: 1" title="60:42-60:42: @89.Goto: goto -&gt; bb92"><span class="annotation">@89⦊</span>‸<span class="annotation">⦉@89</span></span></span><span><span class="code even" style="--layer: 1" title="60:42-60:42: @90.Goto: goto -&gt; bb92"><span class="annotation">@90⦊</span>‸<span class="annotation">⦉@90</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="60:46-60:55: @87[2]: _88 = _41
+60:46-60:60: @87[3]: _87 = Ne(move _88, const 9_i32)"><span class="annotation">@87⦊</span>countdown != 9<span class="annotation">⦉@87</span></span></span><span><span class="code even" style="--layer: 1" title="60:60-60:60: @85.Goto: goto -&gt; bb88"><span class="annotation">@85⦊</span>‸<span class="annotation">⦉@85</span></span></span><span><span class="code odd" style="--layer: 1" title="60:60-60:60: @86.Goto: goto -&gt; bb88"><span class="annotation">@86⦊</span>‸<span class="annotation">⦉@86</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
+60:61-62:10: @95[1]: _80 = const ()
+62:10-62:10: @95.Goto: goto -&gt; bb96"><span class="annotation">@93,95⦊</span>{</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
-60:61-62:10: @95[1]: _80 = const ()">            countdown = 0;</span></span>
+60:61-62:10: @95[1]: _80 = const ()
+62:10-62:10: @95.Goto: goto -&gt; bb96">            countdown = 0;</span></span>
 <span class="line"><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
-60:61-62:10: @95[1]: _80 = const ()">        }<span class="annotation">⦉@93,95</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="63:9-63:23: @96[2]: _89 = CheckedSub(_41, const 5_i32)"><span class="annotation">@96⦊</span>countdown -= 5<span class="annotation">⦉@96</span></span></span><span class="code" style="--layer: 0">;</span></span>
+60:61-62:10: @95[1]: _80 = const ()
+62:10-62:10: @95.Goto: goto -&gt; bb96">        }<span class="annotation">⦉@93,95</span></span></span><span><span class="code odd" style="--layer: 1" title="62:10-62:10: @94.Goto: goto -&gt; bb96"><span class="annotation">@94⦊</span>‸<span class="annotation">⦉@94</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="63:9-63:23: @97[0]: _41 = move (_89.0: i32)"><span class="annotation">@97⦊</span>countdown -= 5<span class="annotation">⦉@97</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    } else {</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="65:9-65:15: @83[0]: _0 = const ()"><span class="annotation">@83⦊</span>return<span class="annotation">⦉@83</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="65:9-65:15: @83[0]: _0 = const ()"><span class="annotation">@83⦊</span>return<span class="annotation">⦉@83</span></span></span><span class="code" style="--layer: 0">;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    };</span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="67:2-67:2: @102.Return: return"><span class="annotation">@102⦊</span>‸<span class="annotation">⦉@102</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="67:2-67:2: @101.Goto: goto -&gt; bb102"><span class="annotation">@101⦊</span>‸<span class="annotation">⦉@101</span></span></span><span><span class="code odd" style="--layer: 1" title="67:2-67:2: @102.Return: return"><span class="annotation">@102⦊</span>‸<span class="annotation">⦉@102</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while/while.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while/while.main.-------.InstrumentCoverage.0.html
new file mode 100644
index 00000000000..5c49ec19707
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while/while.main.-------.InstrumentCoverage.0.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>while.main - Coverage Spans</title>
+<style>
+    .line {
+        counter-increment: line;
+    }
+    .line:before {
+        content: counter(line) ": ";
+        font-family: Menlo, Monaco, monospace;
+        font-style: italic;
+        width: 3.8em;
+        display: inline-block;
+        text-align: right;
+        filter: opacity(50%);
+        -webkit-user-select: none;
+    }
+    .code {
+        color: #dddddd;
+        background-color: #222222;
+        font-family: Menlo, Monaco, monospace;
+        line-height: 1.4em;
+        border-bottom: 2px solid #222222;
+        white-space: pre;
+        display: inline-block;
+    }
+    .odd {
+        background-color: #55bbff;
+        color: #223311;
+    }
+    .even {
+        background-color: #ee7756;
+        color: #551133;
+    }
+    .code {
+        --index: calc(var(--layer) - 1);
+        padding-top: calc(var(--index) * 0.15em);
+        filter:
+            hue-rotate(calc(var(--index) * 25deg))
+            saturate(calc(100% - (var(--index) * 2%)))
+            brightness(calc(100% - (var(--index) * 1.5%)));
+    }
+    .annotation {
+        color: #4444ff;
+        font-family: monospace;
+        font-style: italic;
+        display: none;
+        -webkit-user-select: none;
+    }
+    body:active .annotation {
+        /* requires holding mouse down anywhere on the page */
+        display: inline-block;
+    }
+    span:hover .annotation {
+        /* requires hover over a span ONLY on its first line */
+        display: inline-block;
+    }
+</style>
+</head>
+<body>
+<div class="code" style="counter-reset: line 0"><span class="line"><span class="code" style="--layer: 0">fn main() {</span></span>
+<span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="2:15-2:16: @0[1]: _1 = const 9_i32
+2:9-2:12: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>num = 9<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
+<span class="line"><span class="code" style="--layer: 0">    while </span><span><span class="code odd" style="--layer: 1" title="3:11-3:14: @2[2]: _4 = _1
+3:11-3:20: @2[3]: _3 = Ge(move _4, const 10_i32)
+3:11-3:20: @2[5]: FakeRead(ForMatchedPlace, _3)"><span class="annotation">@1,2⦊</span>num &gt;= 10<span class="annotation">⦉@1,2</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="3:21-4:6: @5[0]: _2 = const ()"><span class="annotation">@3,5⦊</span>{</span></span>
+<span class="line"><span class="code even" style="--layer: 1" title="3:21-4:6: @5[0]: _2 = const ()">    }<span class="annotation">⦉@3,5</span></span></span><span><span class="code even" style="--layer: 1" title="4:6-4:6: @5.Goto: goto -&gt; bb1"><span class="annotation">@3,5⦊</span>‸<span class="annotation">⦉@3,5</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="5:2-5:2: @4.Return: return"><span class="annotation">@4⦊</span>‸<span class="annotation">⦉@4</span></span></span></span></div>
+</body>
+</html>
diff --git a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html
index b96789a9219..be674dc7d38 100644
--- a/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html
+++ b/src/test/run-make-fulldeps/coverage-spanview-deadcode/expected_mir_dump.while_early_return/while_early_return.main.-------.InstrumentCoverage.0.html
@@ -62,12 +62,10 @@
 <div class="code" style="counter-reset: line 3"><span class="line"><span class="code" style="--layer: 0">fn main() -&gt; Result&lt;(),u8&gt; {</span></span>
 <span class="line"><span class="code" style="--layer: 0">    let </span><span><span class="code even" style="--layer: 1" title="5:25-5:27: @0[1]: _1 = const 10_i32
 5:9-5:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 10<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="7:9-7:18: @2[2]: _5 = _1
+<span class="line"><span class="code" style="--layer: 0">    while</span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="7:9-7:18: @2[2]: _5 = _1
 7:9-9:10: @2[3]: _4 = Gt(move _5, const 0_i32)
-7:9-9:10: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>while</span></span>
-<span class="line"><span class="code odd" style="--layer: 1" title="7:9-7:18: @2[2]: _5 = _1
-7:9-9:10: @2[3]: _4 = Gt(move _5, const 0_i32)
-7:9-9:10: @2[5]: FakeRead(ForMatchedPlace, _4)">        countdown</span></span>
+7:9-9:10: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>countdown</span></span>
 <span class="line"><span class="code odd" style="--layer: 1" title="7:9-7:18: @2[2]: _5 = _1
 7:9-9:10: @2[3]: _4 = Gt(move _5, const 0_i32)
 7:9-9:10: @2[5]: FakeRead(ForMatchedPlace, _4)">            &gt;</span></span>
@@ -104,16 +102,16 @@
 <span class="line"><span class="code" style="--layer: 0">                else</span></span>
 <span class="line"><span class="code" style="--layer: 0">                {</span></span>
 <span class="line"><span class="code" style="--layer: 0">                    </span><span><span class="code odd" style="--layer: 1" title="26:21-26:27: @10[0]: _0 = std::result::Result::&lt;(), u8&gt;::Err(const 1_u8)"><span class="annotation">@10⦊</span>Err(1)<span class="annotation">⦉@10</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">                }</span></span>
+<span class="line"><span class="code" style="--layer: 0">                }</span><span><span class="code even" style="--layer: 1" title="27:18-27:18: @11.Goto: goto -&gt; bb13"><span class="annotation">@9,11⦊</span>‸<span class="annotation">⦉@9,11</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">                ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">        }</span></span>
-<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)"><span class="annotation">@7⦊</span>countdown</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)">            -=</span></span>
-<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)">        1<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
+<span class="line"><span class="code" style="--layer: 0">        </span><span><span class="code odd" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)"><span class="annotation">@12⦊</span>countdown</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)">            -=</span></span>
+<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)">        1<span class="annotation">⦉@12</span></span></span><span class="code" style="--layer: 0"></span></span>
 <span class="line"><span class="code" style="--layer: 0">        ;</span></span>
 <span class="line"><span class="code" style="--layer: 0">    }</span></span>
-<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code odd" style="--layer: 1" title="35:8-35:10: @4[4]: _15 = ()
+<span class="line"><span class="code" style="--layer: 0">    </span><span><span class="code even" style="--layer: 1" title="35:8-35:10: @4[4]: _15 = ()
 35:5-35:11: @4[5]: _0 = std::result::Result::&lt;(), u8&gt;::Ok(move _15)"><span class="annotation">@4⦊</span>Ok(())<span class="annotation">⦉@4</span></span></span><span class="code" style="--layer: 0"></span></span>
-<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="36:2-36:2: @14.Return: return"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span></span></div>
+<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="36:2-36:2: @13.Goto: goto -&gt; bb14"><span class="annotation">@13⦊</span>‸<span class="annotation">⦉@13</span></span></span><span><span class="code even" style="--layer: 1" title="36:2-36:2: @14.Return: return"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span></span></div>
 </body>
 </html>
diff --git a/src/test/run-make-fulldeps/coverage/lazy_boolean.rs b/src/test/run-make-fulldeps/coverage/lazy_boolean.rs
index 1d83eb30dea..bb6219e851c 100644
--- a/src/test/run-make-fulldeps/coverage/lazy_boolean.rs
+++ b/src/test/run-make-fulldeps/coverage/lazy_boolean.rs
@@ -26,18 +26,36 @@ fn main() {
         ||
             b < c
     ;
-    let
-        somebool
-        =
-            a < b
-        &&
-            b < c
-    ;
-    let
-        somebool
-        =
-            b < a
-        &&
-            b < c
-    ;
+    let somebool = a < b && b < c;
+    let somebool = b < a && b < c;
+
+    if
+        !
+        is_true
+    {
+        a = 2
+        ;
+    }
+
+    if
+        is_true
+    {
+        b = 30
+        ;
+    }
+    else
+    {
+        c = 400
+        ;
+    }
+
+    if !is_true {
+        a = 2;
+    }
+
+    if is_true {
+        b = 30;
+    } else {
+        c = 400;
+    }
 }
diff --git a/src/test/run-make-fulldeps/coverage/loops_and_branches.rs b/src/test/run-make-fulldeps/coverage/loops_and_branches.rs
new file mode 100644
index 00000000000..a9df7e0fab7
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage/loops_and_branches.rs
@@ -0,0 +1,36 @@
+#![allow(unused_assignments)]
+
+// This test confirms an earlier problem was resolved, supporting the MIR graph generated by the
+// structure of this `fmt` function.
+
+struct DebugTest;
+
+impl std::fmt::Debug for DebugTest {
+    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
+        if true {
+            if false {
+                while true {
+                }
+            }
+            write!(f, "error")?;
+        } else {
+        }
+        Ok(())
+    }
+}
+
+fn main() {
+    let debug_test = DebugTest;
+    println!("{:?}", debug_test);
+}
+
+/*
+
+This is the error message generated, before the issue was fixed:
+
+error: internal compiler error: compiler/rustc_mir/src/transform/coverage/mod.rs:374:42:
+Error processing: DefId(0:6 ~ bug_incomplete_cov_graph_traversal_simplified[317d]::{impl#0}::fmt):
+Error { message: "`TraverseCoverageGraphWithLoops` missed some `BasicCoverageBlock`s:
+[bcb6, bcb7, bcb9]" }
+
+*/
diff --git a/src/test/run-make-fulldeps/coverage/nested_loops.rs b/src/test/run-make-fulldeps/coverage/nested_loops.rs
new file mode 100644
index 00000000000..4c7c7842796
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage/nested_loops.rs
@@ -0,0 +1,25 @@
+fn main() {
+    let is_true = std::env::args().len() == 1;
+    let mut countdown = 10;
+
+    'outer: while countdown > 0 {
+        let mut a = 100;
+        let mut b = 100;
+        for _ in 0..50 {
+            if a < 30 {
+                break;
+            }
+            a -= 5;
+            b -= 5;
+            if b < 90 {
+                a -= 10;
+                if is_true {
+                    break 'outer;
+                } else {
+                    a -= 2;
+                }
+            }
+        }
+        countdown -= 1;
+    }
+}
diff --git a/src/test/run-make-fulldeps/coverage/partial_eq_counter_without_region.rs b/src/test/run-make-fulldeps/coverage/partial_eq_counter_without_region.rs
new file mode 100644
index 00000000000..334fb3364cc
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage/partial_eq_counter_without_region.rs
@@ -0,0 +1,99 @@
+// This test confirms an earlier problem was resolved, supporting the MIR graph generated by the
+// structure of this test.
+
+#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+pub struct Version {
+    major: usize,
+    minor: usize,
+    patch: usize,
+}
+
+impl Version {
+    pub fn new(major: usize, minor: usize, patch: usize) -> Self {
+        Self {
+            major,
+            minor,
+            patch,
+        }
+    }
+}
+
+fn main() {
+    let version_3_2_1 = Version::new(3, 2, 1);
+    let version_3_3_0 = Version::new(3, 3, 0);
+
+    println!("{:?} < {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 < version_3_3_0);
+}
+
+/*
+
+This test verifies a bug was fixed that otherwise generated this error:
+
+thread 'rustc' panicked at 'No counters provided the source_hash for function:
+    Instance {
+        def: Item(WithOptConstParam {
+            did: DefId(0:101 ~ autocfg[c44a]::version::{impl#2}::partial_cmp),
+            const_param_did: None
+        }),
+        substs: []
+    }'
+The `PartialOrd` derived by `Version` happened to generate a MIR that generated coverage
+without a code region associated with any `Counter`. Code regions were associated with at least
+one expression, which is allowed, but the `function_source_hash` was only passed to the codegen
+(coverage mapgen) phase from a `Counter`s code region. A new method was added to pass the
+`function_source_hash` without a code region, if necessary.
+
+*/
+
+// FIXME(richkadel): It may be worth investigating why the coverage report for this test produces
+// the following results:
+
+/*
+
+1. Why are their two counts below different characters (first and last) of `PartialOrd`, on line 17?
+
+2. Line 17 is counted twice, but the `::lt` instance shows a line count of 1? Is there a missing
+   line count with a different instance? Or was it really only called once?
+
+3. Line 20 shows another line count (of 1) for a line within a `struct` declaration (on only one of
+   its 3 fields). I doubt the specific field (`minor`) is relevant, but rather I suspect there's a
+   problem computing the file position here, for some reason.
+
+<snip>
+   16|       |
+   17|      2|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+                                                    ^1       ^1
+------------------
+|Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::gt
+------------------
+|Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::le
+------------------
+|Unexecuted instantiation: <partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::ge
+------------------
+|<partial_eq_counter_without_region::Version as core::cmp::PartialOrd>::lt:
+|  17|      1|#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+------------------
+   18|       |pub struct Version {
+   19|       |    major: usize,
+   20|      1|    minor: usize,
+   21|       |    patch: usize,
+   22|       |}
+   23|       |
+   24|       |impl Version {
+   25|       |    pub fn new(major: usize, minor: usize, patch: usize) -> Self {
+   26|      2|        Version {
+   27|      2|            major,
+   28|      2|            minor,
+   29|      2|            patch,
+   30|      2|        }
+   31|      2|    }
+   32|       |}
+   33|       |
+   34|      1|fn main() {
+   35|      1|    let version_3_2_1 = Version::new(3, 2, 1);
+   36|      1|    let version_3_3_0 = Version::new(3, 3, 0);
+   37|      1|
+   38|      1|    println!("{:?} < {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 < version
+_3_3_0);
+   39|      1|}
+*/
diff --git a/src/test/run-make-fulldeps/coverage/tight_infinite_loop.rs b/src/test/run-make-fulldeps/coverage/tight_infinite_loop.rs
new file mode 100644
index 00000000000..cef99027aaa
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage/tight_infinite_loop.rs
@@ -0,0 +1,5 @@
+fn main() {
+    if false {
+        loop {}
+    }
+}
diff --git a/src/test/run-make-fulldeps/coverage/while.rs b/src/test/run-make-fulldeps/coverage/while.rs
new file mode 100644
index 00000000000..781b90b3566
--- /dev/null
+++ b/src/test/run-make-fulldeps/coverage/while.rs
@@ -0,0 +1,5 @@
+fn main() {
+    let num = 9;
+    while num >= 10 {
+    }
+}