about summary refs log tree commit diff
path: root/src/librustdoc/scrape_examples.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2025-09-07 23:36:21 +0000
committerbors <bors@rust-lang.org>2025-09-07 23:36:21 +0000
commit2f3f27bf79ec147fec9d2e7980605307a74067f4 (patch)
tree95dc358bf9879a89e9f74d97958b60d02e4d6de6 /src/librustdoc/scrape_examples.rs
parent12eb345e5593a10e61b4aef766076c8bd552fea6 (diff)
parent5d0e66d451b0da5e7a712d5f9e041e5bbbbb0255 (diff)
downloadrust-2f3f27bf79ec147fec9d2e7980605307a74067f4.tar.gz
rust-2f3f27bf79ec147fec9d2e7980605307a74067f4.zip
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`
Diffstat (limited to 'src/librustdoc/scrape_examples.rs')
0 files changed, 0 insertions, 0 deletions