Commit Graph

21 Commits

Author SHA1 Message Date
Nicholas Nethercote ed695f4484 Separate `Analysis` and `Results`.
`Results` contains and `Analysis` and an `EntryStates`. The unfortunate
thing about this is that the analysis needs to be mutable everywhere
(`&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`.
2025-04-24 11:36:07 +10:00
Nicholas Nethercote 2d1a0479a6 Update for recent dataflow simplifications. (#2121) 2024-11-04 15:57:00 +08:00
xFrednet bacd3c57b1 Review comments <3 2024-08-07 20:32:37 -07:00
xFrednet 91f2d11e9c Correct rust code block in *Dataflow Analysis* 2024-08-07 20:32:37 -07:00
jonathanCogan 100e801b36 Fixes some typos (#1502)
* Fix some typos.

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
2022-11-02 13:11:03 -05:00
Tshepang Lekhonkhobe 8b5f9d119a make sentence more simple (#1353) 2022-05-20 21:37:01 +09:00
Yuki Okushi 0312fa6b20 Replace a broken YouTube link (#1295) 2022-05-16 11:36:40 -03:00
Samuel Moelius 34f726b933 Typo (#1313) 2022-02-22 18:22:28 -06:00
Janggun Lee d03c7b8626 Fix `rustc_mir` related links (#1228)
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
Co-authored-by: nhamovitz <18648574+nhamovitz@users.noreply.github.com>
2021-10-29 00:58:26 +09:00
Camelid d6bd146507 Fix double-word typos (#1084)
Inspired by #1079. I used this command to find these typos:

    rg --multiline --pcre2 '\b([a-zA-Z]+) \1\b' src -tmd

There were a couple false positives of the form "that that" meaning
"that it" or "that this".
2021-03-12 03:29:19 +09:00
Iñaki Garay 7a80b01e01 Add mdbook-toc, markers, and documentation (#1028)
* Add mdbook-toc to travis, book.toml  and documentation

* Add toc markers

* Whitespace cleanup and some punctuation

* Addressed comments
2021-01-20 14:33:11 -03:00
Iñaki Garay 7268945c0f rustc invocation standarized (#992)
* rustc invocation standarized

* Addressed comments

* Addressed comments

* Addressed comments

* Updated command output
2020-12-28 23:34:51 +01:00
Camelid 661ba74612 Provide a brief example of a data-flow analysis 2020-11-12 11:53:00 -05:00
Camelid 3e4c0c70f2 Explain the purpose of the bottom value 2020-11-12 11:53:00 -05:00
Camelid 6a4c0ee05f Add a section on data-flow convergence 2020-11-12 11:53:00 -05:00
Dylan MacKenzie 42be58a751 Add link for `AnalysisDomain::NAME` 2020-09-16 00:21:55 -04:00
Dylan MacKenzie ca60ec06df Describe how to generate graphviz diagrams for dataflow 2020-09-16 00:21:55 -04:00
Dylan MacKenzie 1fffd48313 Update `Visitor` and `Cursor` examples 2020-09-13 15:58:02 -04:00
Dylan MacKenzie ddc23efa5f Line edits 2020-09-13 15:58:02 -04:00
Dylan MacKenzie 0cc3a9f8f3 Add missing link to `Engine` 2020-09-13 15:58:02 -04:00
Dylan MacKenzie 3db7809e77 Initial draft of MIR dataflow framework docs 2020-09-13 15:58:02 -04:00