Skip to content

Commit

Permalink
add borrows to NLL MIR dumps
Browse files Browse the repository at this point in the history
explicitly disable `-Zmir-include-spans` in mir-opt tests

This will override the NLL default of true, and keep the blessed dumps
easier to work with.
  • Loading branch information
lqd committed Aug 30, 2024
1 parent f3f5b4d commit dff3d35
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/rustc_borrowck/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ fn do_mir_borrowck<'tcx>(

// Dump MIR results into a file, if that is enabled. This let us
// write unit-tests, as well as helping with debugging.
nll::dump_nll_mir(&infcx, body, &regioncx, &opt_closure_req);
nll::dump_nll_mir(&infcx, body, &regioncx, &opt_closure_req, &borrow_set);

// We also have a `#[rustc_regions]` annotation that causes us to dump
// information.
Expand Down
13 changes: 13 additions & 0 deletions compiler/rustc_borrowck/src/nll.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@ pub(super) fn dump_nll_mir<'tcx>(
body: &Body<'tcx>,
regioncx: &RegionInferenceContext<'tcx>,
closure_region_requirements: &Option<ClosureRegionRequirements<'tcx>>,
borrow_set: &BorrowSet<'tcx>,
) {
let tcx = infcx.tcx;
if !dump_enabled(tcx, "nll", body.source.def_id()) {
Expand Down Expand Up @@ -259,6 +260,18 @@ pub(super) fn dump_nll_mir<'tcx>(
})?;
writeln!(out, "|")?;
}

if borrow_set.len() > 0 {
writeln!(out, "| Borrows")?;
for (borrow_idx, borrow_data) in borrow_set.iter_enumerated() {
writeln!(
out,
"| {:?}: issued at {:?} in {:?}",
borrow_idx, borrow_data.reserve_location, borrow_data.region
)?;
}
writeln!(out, "|")?;
}
}

PassWhere::BeforeLocation(_) => {}
Expand Down
1 change: 1 addition & 0 deletions src/tools/compiletest/src/runtest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2175,6 +2175,7 @@ impl<'test> TestCx<'test> {
"-Zvalidate-mir",
"-Zlint-mir",
"-Zdump-mir-exclude-pass-number",
"-Zmir-include-spans=false", // remove span comments from NLL MIR dumps
"--crate-type=rlib",
]);
if let Some(pass) = &self.props.mir_unit_test {
Expand Down
3 changes: 3 additions & 0 deletions tests/mir-opt/nll/region_subtyping_basic.main.nll.0.32bit.mir
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
| '?2: '?3 due to Assignment at Single(bb1[0]) ($DIR/region_subtyping_basic.rs:19:13: 19:18 (#0)
| '?3: '?4 due to Assignment at Single(bb1[3]) ($DIR/region_subtyping_basic.rs:20:13: 20:14 (#0)
|
| Borrows
| bw0: issued at bb1[0] in '?2
|
fn main() -> () {
let mut _0: ();
let mut _1: [usize; ValTree(Leaf(0x00000003): usize)];
Expand Down
3 changes: 3 additions & 0 deletions tests/mir-opt/nll/region_subtyping_basic.main.nll.0.64bit.mir
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
| '?2: '?3 due to Assignment at Single(bb1[0]) ($DIR/region_subtyping_basic.rs:19:13: 19:18 (#0)
| '?3: '?4 due to Assignment at Single(bb1[3]) ($DIR/region_subtyping_basic.rs:20:13: 20:14 (#0)
|
| Borrows
| bw0: issued at bb1[0] in '?2
|
fn main() -> () {
let mut _0: ();
let mut _1: [usize; ValTree(Leaf(0x0000000000000003): usize)];
Expand Down
3 changes: 3 additions & 0 deletions tests/mir-opt/storage_ranges.main.nll.0.mir
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
| '?3 live at {bb0[11]}
| '?2: '?3 due to Assignment at Single(bb0[10]) ($DIR/storage_ranges.rs:7:17: 7:25 (#0)
|
| Borrows
| bw0: issued at bb0[10] in '?2
|
fn main() -> () {
let mut _0: ();
let _1: i32;
Expand Down

0 comments on commit dff3d35

Please sign in to comment.