<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_mir_dataflow/src, branch beta</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=beta</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=beta'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-09T12:49:16+00:00</updated>
<entry>
<title>erase_regions to erase_and_anonymize_regions</title>
<updated>2025-09-09T12:49:16+00:00</updated>
<author>
<name>Boxy</name>
<email>rust@boxyuwu.dev</email>
</author>
<published>2025-08-21T15:50:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e379c7758667f900aaf5551c4553c7d4c121e3e1'/>
<id>urn:sha1:e379c7758667f900aaf5551c4553c7d4c121e3e1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #145541 - cjgillot:dest-prop-live-range, r=Amanieu</title>
<updated>2025-09-07T23:36:21+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-09-07T23:36:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2f3f27bf79ec147fec9d2e7980605307a74067f4'/>
<id>urn:sha1:2f3f27bf79ec147fec9d2e7980605307a74067f4</id>
<content type='text'>
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`
</content>
</entry>
<entry>
<title>Reimplement DestinationPropagation according to live ranges.</title>
<updated>2025-09-07T16:24:46+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2025-07-02T08:36:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9b8a719ae48db491a5f18d52fdbb802508bf75a5'/>
<id>urn:sha1:9b8a719ae48db491a5f18d52fdbb802508bf75a5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Introduce fast insertion at extremities to IntervalSet.</title>
<updated>2025-09-07T16:06:40+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2023-08-28T18:28:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2ff92e83af6d646e05218374954c6ed2ebb67b3d'/>
<id>urn:sha1:2ff92e83af6d646e05218374954c6ed2ebb67b3d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Introduce PlaceContext::may_observe_address.</title>
<updated>2025-09-07T13:51:53+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2025-06-23T16:05:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4e7a068c9a155807b40a592a092d8bc77d33d47c'/>
<id>urn:sha1:4e7a068c9a155807b40a592a092d8bc77d33d47c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Introduce `MirDumper` and `MirWriter`.</title>
<updated>2025-08-31T23:19:03+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-08-15T04:38:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5ce3797073ee5e6cc487b80effbc682533d9425c'/>
<id>urn:sha1:5ce3797073ee5e6cc487b80effbc682533d9425c</id>
<content type='text'>
MIR dumping is a mess. There are lots of functions and entry points,
e.g. `dump_mir`, `dump_mir_with_options`, `dump_polonius_mir`,
`dump_mir_to_writer`. Also, it's crucial that `create_dump_file` is
never called without `dump_enabled` first being checked, but there is no
mechanism for ensuring this and it's hard to tell if it is satisfied on
all paths. (`dump_enabled` is checked twice on some paths, however!)

This commit introduces `MirWriter`, which controls the MIR writing, and
encapsulates the `extra_data` closure and `options`. Two existing
functions are now methods of this type. It sets reasonable defaults,
allowing the removal of many `|_, _| Ok(())` closures.

The commit also introduces `MirDumper`, which is layered on top of
`MirWriter`, and which manages the creation of the dump files,
encapsulating pass names, disambiguators, etc. Four existing functions
are now methods of this type.
- `MirDumper::new` will only succeed if dumps are enabled, and will
  return `None` otherwise, which makes it impossible to dump when you
  shouldn't.
- It also sets reasonable defaults for various things like
  disambiguators, which means you no longer need to specify them in many
  cases. When they do need to be specified, it's now done via setter
  methods.
- It avoids some repetition. E.g. `dump_nll_mir` previously specifed the
  pass name `"nll"` four times and the disambiguator `&amp;0` three times;
  now it specifies them just once, to put them in the `MirDumper`.
- For Polonius, the `extra_data` closure can now be specified earlier,
  which avoids having to pass some arguments through some functions.
</content>
</entry>
<entry>
<title>Rollup merge of #145695 - cjgillot:place-elem-map, r=oli-obk,lcnr</title>
<updated>2025-08-23T02:00:54+00:00</updated>
<author>
<name>Jacob Pratt</name>
<email>jacob@jhpratt.dev</email>
</author>
<published>2025-08-23T02:00:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c80e77fa21fb9afa377783c85afbb49a50f3fc1a'/>
<id>urn:sha1:c80e77fa21fb9afa377783c85afbb49a50f3fc1a</id>
<content type='text'>
Introduce ProjectionElem::try_map.

Small utility function useful to manipulate MIR place projections.
</content>
</entry>
<entry>
<title>Correct comments.</title>
<updated>2025-08-21T23:59:20+00:00</updated>
<author>
<name>Camille Gillot</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2025-08-21T23:59:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e5bd01b533cfc85eb8a86d5f47d99e1c62d0e44d'/>
<id>urn:sha1:e5bd01b533cfc85eb8a86d5f47d99e1c62d0e44d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Introduce ProjectionElem::try_map.</title>
<updated>2025-08-21T02:06:21+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2025-07-02T11:56:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=37e7f52876e490eaec1c55dad6702f02cbe181e5'/>
<id>urn:sha1:37e7f52876e490eaec1c55dad6702f02cbe181e5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Eliminate unnecessary dependency from `rustc_mir_dataflow` to `rustc_hir`</title>
<updated>2025-08-20T22:04:00+00:00</updated>
<author>
<name>Josh Triplett</name>
<email>josh@joshtriplett.org</email>
</author>
<published>2025-08-14T09:40:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bad4f5c13fa3c48cdc888c2f38bebf8c36440ccc'/>
<id>urn:sha1:bad4f5c13fa3c48cdc888c2f38bebf8c36440ccc</id>
<content type='text'>
`rustc_mir_dataflow` only uses `DefId`, which is a re-export from
`rustc_span`.
</content>
</entry>
</feed>
