rust/compiler/rustc_mir_dataflow/src
bors 2f3f27bf79 Auto merge of #145541 - cjgillot:dest-prop-live-range, r=Amanieu
Reimplement DestinationPropagation according to live ranges.

This PR reimplements DestinationPropagation as a problem of merging live-ranges of locals. We merge locals that have disjoint live-ranges. This allows merging several locals in the same round by updating live range information.

Live ranges are mainly computed using the `MaybeLiveLocals` analysis. The subtlety is that we split each statement and terminator in 2 positions. The first position is the regular statement. The second position is a shadow, which is always more live. It encodes partial writes and dead writes as a local being live for half a statement. This half statement ensures that writes conflict with another local's writes and regular liveness.

r? `@Amanieu`
2025-09-07 23:36:21 +00:00
..
framework Introduce MirDumper and MirWriter. 2025-09-01 09:19:03 +10:00
impls Reimplement DestinationPropagation according to live ranges. 2025-09-07 16:24:46 +00:00
move_paths Correct comments. 2025-08-21 23:59:20 +00:00
debuginfo.rs rename BitSet to DenseBitSet 2025-01-11 11:34:01 +00:00
drop_flag_effects.rs use let chains in hir, lint, mir 2025-07-28 06:10:14 +05:00
errors.rs Migrate all diagnostics 2022-10-23 10:09:44 +02:00
lib.rs update cfg(bootstrap) 2025-05-12 15:33:37 +02:00
points.rs Reimplement DestinationPropagation according to live ranges. 2025-09-07 16:24:46 +00:00
rustc_peek.rs Eliminate unnecessary dependency from rustc_mir_dataflow to rustc_hir 2025-08-20 15:04:00 -07:00
un_derefer.rs Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
value_analysis.rs Introduce PlaceContext::may_observe_address. 2025-09-07 13:51:53 +00:00