Fuzzbugfix: actually do need eager liveness computation; must uphold invariant that all earlier-in-postorder blocks have full livein sets.

This commit is contained in:
Chris Fallin
2021-05-06 23:29:59 -07:00
parent 2ff02b50a3
commit 2ba518517d
4 changed files with 26 additions and 17 deletions

View File

@@ -177,7 +177,7 @@ impl<'a> std::iter::Iterator for AdaptiveMapIter<'a> {
/// A conceptually infinite-length bitvector that allows bitwise operations and
/// iteration over set bits efficiently.
#[derive(Clone, Debug)]
#[derive(Clone)]
pub struct BitVec {
elems: AdaptiveMap,
}
@@ -275,6 +275,13 @@ impl Iterator for SetBitsIter {
}
}
impl std::fmt::Debug for BitVec {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
let vals = self.iter().collect::<Vec<_>>();
write!(f, "{:?}", vals)
}
}
#[cfg(test)]
mod test {
use super::BitVec;