Skip to content

Commit 9fe6f7a

Browse files
committed
Pre-allocate places vectors.
1 parent d71e77f commit 9fe6f7a

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

compiler/rustc_mir_dataflow/src/value_analysis.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,12 +362,13 @@ impl<'tcx> Map<'tcx> {
362362
/// chosen is an implementation detail and may not be relied upon (other than that their type
363363
/// are scalars).
364364
pub fn new(tcx: TyCtxt<'tcx>, body: &Body<'tcx>, value_limit: Option<usize>) -> Self {
365+
let capacity = 4 * body.local_decls.len() + value_limit.unwrap_or(body.local_decls.len());
365366
let mut map = Self {
366367
locals: IndexVec::from_elem(None, &body.local_decls),
367368
projections: FxHashMap::default(),
368-
places: IndexVec::new(),
369+
places: IndexVec::with_capacity(capacity),
369370
value_count: 0,
370-
inner_values: IndexVec::new(),
371+
inner_values: IndexVec::with_capacity(capacity),
371372
inner_values_buffer: Vec::new(),
372373
};
373374
map.register_locals(tcx, body);

0 commit comments

Comments
 (0)