summaryrefslogtreecommitdiffstats
path: root/src/test/ui/mir-dataflow/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/mir-dataflow/README.md')
-rw-r--r--src/test/ui/mir-dataflow/README.md53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/test/ui/mir-dataflow/README.md b/src/test/ui/mir-dataflow/README.md
deleted file mode 100644
index a3ab14b23..000000000
--- a/src/test/ui/mir-dataflow/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-This directory contains unit tests for the MIR-based dataflow
-analysis.
-
-These unit tests check the dataflow analysis by embedding calls to a
-special `rustc_peek` intrinsic within the code, in tandem with an
-attribute `#[rustc_mir(rustc_peek_maybe_init)]` (\*). With that
-attribute in place, `rustc_peek` calls are a signal to the compiler to
-lookup the computed dataflow state for the Lvalue corresponding to the
-argument expression being fed to `rustc_peek`. If the dataflow state
-for that Lvalue is a 1-bit at that point in the control flow, then no
-error is emitted by the compiler at that point; if it is a 0-bit, then
-that invocation of `rustc_peek` will emit an error with the message
-"rustc_peek: bit not set".
-
-(\*): Or `#[rustc_mir(rustc_peek_maybe_uninit)]`, and perhaps other
-variants in the future.
-
-The end effect is that one can write unit tests for MIR dataflow that
-perform simple-queries of the computed dataflow state, and the tests
-should be able to be robust in the face of changes to how MIR is
-represented or constructed.
-
-----
-
-Sometimes understanding the dataflow results is difficult without
-looking at the actual MIR control-flow graph being processed with the
-corresponding GEN and KILL sets.
-
-For a graphviz-rendering with dataflow annotations, add the attribute
-`#[rustc_mir(borrowck_graphviz_postflow="/path/to/suffix.dot")]` to
-the function in question. (You can change the content of
-`"suffix.dot"` to control the filenames used for the output). This
-will generate a separate file for each dataflow analysis, adding a
-prefix (corresponding to the name of the analysis) to the filename in
-each generated output path.
-
- * For example, the above attribute will currently cause two files to
- be generated: `/path/to/maybe_init_suffix.dot` and
- `/path/to/maybe_uninit_suffix.dot`.
-
- * The generated `.dot` file shows both the computed dataflow results
- on *entry* to each block, as well as the gen- and kill-sets that
- were so-called "transfer functions" summarizing the effect of each
- basic block.
-
- * (In addition to the `borrowck_graphviz_postflow` attribute-key
- noted above, there is also `borrowck_graphviz_preflow`; it has the
- same interface and generates the same set of files, but it renders
- the dataflow state after building the gen- and kill-sets but
- *before* running the dataflow analysis itself, so each entry-set is
- just the initial default state for that dataflow analysis. This is
- less useful for understanding the error message output in these
- tests.)