diff options
| author | bors <bors@rust-lang.org> | 2024-10-16 09:45:05 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-10-16 09:45:05 +0000 |
| commit | c512a221c23f3f7b98a38ab5fd81784b318d1663 (patch) | |
| tree | f4be17504b01306f49285144a13e4dfa357bbce2 | |
| parent | c16ba359b5549a31c79f6a113a06d42209e36efe (diff) | |
| parent | 5a8943649a2e0c5c11c7a8f93bcd00c7b8316c1b (diff) | |
| download | rust-c512a221c23f3f7b98a38ab5fd81784b318d1663.tar.gz rust-c512a221c23f3f7b98a38ab5fd81784b318d1663.zip | |
Auto merge of #131481 - nnethercote:rm-GenKillSet, r=cjgillot
Remove `GenKillAnalysis` There are two kinds of dataflow analysis in the compiler: `Analysis`, which is the basic kind, and `GenKillAnalysis`, which is a more specialized kind for gen/kill analyses that is intended as an optimization. However, it turns out that `GenKillAnalysis` is actually a pessimization! It's faster (and much simpler) to do all the gen/kill analyses via `Analysis`. This lets us remove `GenKillAnalysis`, and `GenKillSet`, and a few other things, and also merge `AnalysisDomain` into `Analysis`. The PR removes 500 lines of code and improves performance. r? `@tmiasko`
| -rw-r--r-- | clippy_utils/src/mir/possible_borrower.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clippy_utils/src/mir/possible_borrower.rs b/clippy_utils/src/mir/possible_borrower.rs index 6bb434a466f..a00196c4b51 100644 --- a/clippy_utils/src/mir/possible_borrower.rs +++ b/clippy_utils/src/mir/possible_borrower.rs @@ -213,7 +213,7 @@ impl<'b, 'tcx> PossibleBorrowerMap<'b, 'tcx> { self.bitset.0.clear(); let maybe_live = &mut self.maybe_live; if let Some(bitset) = self.map.get(&borrowed) { - for b in bitset.iter().filter(move |b| maybe_live.contains(*b)) { + for b in bitset.iter().filter(move |b| maybe_live.get().contains(*b)) { self.bitset.0.insert(b); } } else { @@ -238,6 +238,6 @@ impl<'b, 'tcx> PossibleBorrowerMap<'b, 'tcx> { pub fn local_is_alive_at(&mut self, local: mir::Local, at: mir::Location) -> bool { self.maybe_live.seek_after_primary_effect(at); - self.maybe_live.contains(local) + self.maybe_live.get().contains(local) } } |
