<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_mir_dataflow/src/framework/direction.rs, branch try</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-07-11T08:56:50+00:00</updated>
<entry>
<title>Remove support for SwitchInt edge effects in backward dataflow analyses</title>
<updated>2025-07-11T08:56:50+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2025-07-11T06:43:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5b6d661039116ea573652393938061a9a2a2c586'/>
<id>urn:sha1:5b6d661039116ea573652393938061a9a2a2c586</id>
<content type='text'>
Those effects are untested and unused. Remove them along with
the implementation of `BasicBlocks::switch_sources`.
</content>
</entry>
<entry>
<title>Call `get_switch_int_data` on a block with SwitchInt terminator</title>
<updated>2025-07-11T06:49:11+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2025-07-11T06:10:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=011d4aa81f1d20b4923a01c7162caa5f0042b8ba'/>
<id>urn:sha1:011d4aa81f1d20b4923a01c7162caa5f0042b8ba</id>
<content type='text'>
Fix a mix-up of a block with its predecessors in handling of SwitchInt
edge effects for backward analysis. Note that this functionality is
currently unused, so change has no practical impact.
</content>
</entry>
<entry>
<title>Apply effects to otherwise edge in dataflow analysis</title>
<updated>2025-07-08T23:15:05+00:00</updated>
<author>
<name>Amogh Shivaram</name>
<email>ashivaram264@gmail.com</email>
</author>
<published>2025-07-08T23:15:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c7ef03aeb7c33825e3d020c9e1791171e71cd445'/>
<id>urn:sha1:c7ef03aeb7c33825e3d020c9e1791171e71cd445</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Separate `Analysis` and `Results`.</title>
<updated>2025-04-24T01:36:07+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-04-18T00:46:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=92799b6f89d2d9bbfcb9b11d1bac57899d0bc435'/>
<id>urn:sha1:92799b6f89d2d9bbfcb9b11d1bac57899d0bc435</id>
<content type='text'>
`Results` contains and `Analysis` and an `EntryStates`. The unfortunate
thing about this is that the analysis needs to be mutable everywhere
(`&amp;mut Analysis`) which forces the `Results` to be mutable everywhere,
even though `EntryStates` is immutable everywhere.

To fix this, this commit renames `Results` as `AnalysisAndResults`,
renames `EntryStates` as `Results`, and separates the analysis and
results as much as possible. (`AnalysisAndResults` doesn't get much use,
it's mostly there to facilitate method chaining of
`iterate_to_fixpoint`.)

`Results` is immutable everywhere, which:
- is a bit clearer on how the data is used,
- avoids an unnecessary clone of entry states in
  `locals_live_across_suspend_points`, and
- moves the results outside the `RefCell` in Formatter.

The commit also reformulates `ResultsHandle` as the generic `CowMut`,
which is simpler than `ResultsHandle` because it doesn't need the
`'tcx` lifetime and the trait bounds. It also which sits nicely
alongside the new use of `Cow` in `ResultsCursor`.
</content>
</entry>
<entry>
<title>Pass `Analysis` to `visit_*` instead of `Results`.</title>
<updated>2025-04-24T01:34:06+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-04-03T06:37:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4ff55588d33366d0572c1865b43dec8ac00237b1'/>
<id>urn:sha1:4ff55588d33366d0572c1865b43dec8ac00237b1</id>
<content type='text'>
Every `Results` contains an `Analysis`, but these methods only need the
`Analysis`. No point passing them more data than they need.
</content>
</entry>
<entry>
<title>Remove unnecessary lifetime on `ResultsVisitor`.</title>
<updated>2025-04-22T00:08:05+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-04-22T00:08:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=521b379705bcdd9ea41e8bce56bfd16ba1b90703'/>
<id>urn:sha1:521b379705bcdd9ea41e8bce56bfd16ba1b90703</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove `SwitchIntTarget`.</title>
<updated>2025-02-16T22:51:37+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-02-14T02:23:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3b81d9d42d07d3e2c4f9f0c714fb16d2527758fe'/>
<id>urn:sha1:3b81d9d42d07d3e2c4f9f0c714fb16d2527758fe</id>
<content type='text'>
It's only passed to `Analysis::apply_switch_int_edge_effect`, and the
existing impls of that method only use the `value` field. So pass that
instead.
</content>
</entry>
<entry>
<title>Add `SwitchTargetValue`.</title>
<updated>2025-02-16T22:51:37+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-02-13T22:54:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8403d39dce2b6875381974a3f413c0c610f2ca1a'/>
<id>urn:sha1:8403d39dce2b6875381974a3f413c0c610f2ca1a</id>
<content type='text'>
This is much clearer than `Option&lt;u128&gt;`.
</content>
</entry>
<entry>
<title>Refactor `apply_effects_in_block`.</title>
<updated>2025-02-16T22:36:12+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-02-11T05:33:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=13003100f803419307ada53620d00aa51ea678db'/>
<id>urn:sha1:13003100f803419307ada53620d00aa51ea678db</id>
<content type='text'>
Very minor changes that will make the next few commits easier to follow.
</content>
</entry>
<entry>
<title>Rustfmt</title>
<updated>2025-02-08T22:12:13+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-02-08T22:12:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1fcae03369abb4c2cc180cd5a49e1f4440a81300'/>
<id>urn:sha1:1fcae03369abb4c2cc180cd5a49e1f4440a81300</id>
<content type='text'>
</content>
</entry>
</feed>
