diff options
| author | Jakob Degen <jakob.e.degen@gmail.com> | 2022-06-05 16:22:54 -0700 |
|---|---|---|
| committer | Jakob Degen <jakob.e.degen@gmail.com> | 2022-06-14 19:41:58 -0700 |
| commit | bc7cd2f351ab35e0830563858e827a2d397d176d (patch) | |
| tree | 00075b320574315ef548e963a7c367c2d50937aa /compiler/rustc_mir_transform/src | |
| parent | 02916c4c75912f70b651c0b20b501444ce2ca231 (diff) | |
`BitSet` perf improvements
This commit makes two changes: 1. Changes `MaybeLiveLocals` to use `ChunkedBitSet` 2. Overrides the `fold` method for the iterator for `ChunkedBitSet`
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/generator.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/generator.rs b/compiler/rustc_mir_transform/src/generator.rs index 9eb77f60213..9b7354da841 100644 --- a/compiler/rustc_mir_transform/src/generator.rs +++ b/compiler/rustc_mir_transform/src/generator.rs @@ -495,7 +495,8 @@ fn locals_live_across_suspend_points<'tcx>( let loc = Location { block, statement_index: data.statements.len() }; liveness.seek_to_block_end(block); - let mut live_locals = liveness.get().clone(); + let mut live_locals: BitSet<_> = BitSet::new_empty(body.local_decls.len()); + live_locals.union(liveness.get()); if !movable { // The `liveness` variable contains the liveness of MIR locals ignoring borrows. |
