No Queue At All: rustc's Dataflow Engine Uses a Bitset and a Rank
The rustc dataflow framework replaces the classic worklist with a min-rank dirty bitset over reverse postorder, guaranteeing that loop-free code is analysed in exactly one pass.
The rustc dataflow framework replaces the classic worklist with a min-rank dirty bitset over reverse postorder, guaranteeing that loop-free code is analysed in exactly one pass.
rustc finds the blame for a lifetime error with a breadth-first search for the shortest constraint path, then ranks constraints by how interesting they are for diagnostics and …
Instead of encoding end(X) as a fake CFG point, rustc keeps region liveness in three separate dimensions: CFG points, free regions and placeholders, so interval sets stay …
rustc’s borrow checker solves region constraints in a single pass over an SCC condensation, because regions in a cycle are equal by construction and the condensation is a DAG.
The rustc incremental file format packs a node header into 38 bytes, keeps edges varint-encoded in memory, and streams the graph out with per-thread buffers and block-allocated …