liveness: Log information about used variables
This commit is contained in:
parent
77f95a89a1
commit
3f13d97d27
1 changed files with 8 additions and 5 deletions
|
@ -357,7 +357,7 @@ fn visit_fn<'tcx>(
|
||||||
sp: Span,
|
sp: Span,
|
||||||
id: hir::HirId,
|
id: hir::HirId,
|
||||||
) {
|
) {
|
||||||
debug!("visit_fn");
|
debug!("visit_fn {:?}", id);
|
||||||
|
|
||||||
// swap in a new set of IR maps for this function body:
|
// swap in a new set of IR maps for this function body:
|
||||||
let def_id = ir.tcx.hir().local_def_id(id);
|
let def_id = ir.tcx.hir().local_def_id(id);
|
||||||
|
@ -777,12 +777,12 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
|
||||||
|
|
||||||
fn write_vars<F>(&self, wr: &mut dyn Write, ln: LiveNode, mut test: F) -> io::Result<()>
|
fn write_vars<F>(&self, wr: &mut dyn Write, ln: LiveNode, mut test: F) -> io::Result<()>
|
||||||
where
|
where
|
||||||
F: FnMut(usize) -> LiveNode,
|
F: FnMut(usize) -> bool,
|
||||||
{
|
{
|
||||||
let node_base_idx = self.idx(ln, Variable(0));
|
let node_base_idx = self.idx(ln, Variable(0));
|
||||||
for var_idx in 0..self.ir.num_vars {
|
for var_idx in 0..self.ir.num_vars {
|
||||||
let idx = node_base_idx + var_idx;
|
let idx = node_base_idx + var_idx;
|
||||||
if test(idx).is_valid() {
|
if test(idx) {
|
||||||
write!(wr, " {:?}", Variable(var_idx as u32))?;
|
write!(wr, " {:?}", Variable(var_idx as u32))?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -795,9 +795,12 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
|
||||||
{
|
{
|
||||||
let wr = &mut wr as &mut dyn Write;
|
let wr = &mut wr as &mut dyn Write;
|
||||||
write!(wr, "[ln({:?}) of kind {:?} reads", ln.get(), self.ir.lnk(ln));
|
write!(wr, "[ln({:?}) of kind {:?} reads", ln.get(), self.ir.lnk(ln));
|
||||||
self.write_vars(wr, ln, |idx| self.rwu_table.get_reader(idx));
|
self.write_vars(wr, ln, |idx| self.rwu_table.get_reader(idx).is_valid());
|
||||||
write!(wr, " writes");
|
write!(wr, " writes");
|
||||||
self.write_vars(wr, ln, |idx| self.rwu_table.get_writer(idx));
|
self.write_vars(wr, ln, |idx| self.rwu_table.get_writer(idx).is_valid());
|
||||||
|
write!(wr, " uses");
|
||||||
|
self.write_vars(wr, ln, |idx| self.rwu_table.get_used(idx));
|
||||||
|
|
||||||
write!(wr, " precedes {:?}]", self.successors[ln.get()]);
|
write!(wr, " precedes {:?}]", self.successors[ln.get()]);
|
||||||
}
|
}
|
||||||
String::from_utf8(wr).unwrap()
|
String::from_utf8(wr).unwrap()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue