Auto merge of #116152 - cjgillot:unchunck, r=nnethercote
Only use dense bitsets in dataflow analyses When a dataflow state has the size close to the number of locals, we should prefer a dense bitset, like we already store locals in a dense vector. Other occurrences of `ChunkedBitSet` need to be justified by the size of the dataflow state.
This commit is contained in:
commit
0e4243538b
7 changed files with 24 additions and 17 deletions
|
@ -1,7 +1,7 @@
|
|||
//! See the docs for [`RenameReturnPlace`].
|
||||
|
||||
use rustc_hir::Mutability;
|
||||
use rustc_index::bit_set::HybridBitSet;
|
||||
use rustc_index::bit_set::BitSet;
|
||||
use rustc_middle::mir::visit::{MutVisitor, NonUseContext, PlaceContext, Visitor};
|
||||
use rustc_middle::mir::{self, BasicBlock, Local, Location};
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
|
@ -123,7 +123,7 @@ fn find_local_assigned_to_return_place(
|
|||
body: &mut mir::Body<'_>,
|
||||
) -> Option<Local> {
|
||||
let mut block = start;
|
||||
let mut seen = HybridBitSet::new_empty(body.basic_blocks.len());
|
||||
let mut seen = BitSet::new_empty(body.basic_blocks.len());
|
||||
|
||||
// Iterate as long as `block` has exactly one predecessor that we have not yet visited.
|
||||
while seen.insert(block) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue