From 32ea891485292cc40e5b3b27c9217304e6bc931a Mon Sep 17 00:00:00 2001 From: Dylan MacKenzie Date: Tue, 15 Sep 2020 19:20:11 -0700 Subject: [PATCH] Describe how to generate graphviz diagrams for dataflow --- .../src/img/dataflow-graphviz-example.png | Bin 0 -> 81892 bytes src/doc/rustc-dev-guide/src/mir/dataflow.md | 16 ++++++++++++++++ src/doc/rustc-dev-guide/src/mir/debugging.md | 4 ++++ 3 files changed, 20 insertions(+) create mode 100644 src/doc/rustc-dev-guide/src/img/dataflow-graphviz-example.png diff --git a/src/doc/rustc-dev-guide/src/img/dataflow-graphviz-example.png b/src/doc/rustc-dev-guide/src/img/dataflow-graphviz-example.png new file mode 100644 index 0000000000000000000000000000000000000000..718411a8c42a81111a51c920734eb5a0b54d3967 GIT binary patch literal 81892 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 (ufH2fP9X7kdGVn6|0TvJy7;XFUGg z;O}F;iicmPWxRaNx3gKk#(@&pQ@ZHB*+3vq#>Fm$S$}8jjzpVZ)`c2OBF!#g$>#Loo9DjSP%U4`* z@@KVKReNXdpKVc|x!=@$!>;n3f9@OiKmIO!^+LMWS#>$&KnK0k7H}*OwnTb@g`P_T#5DYC=O@ z-A;uD%`d!Bn?GmQ*+*53oV)7}b#AzBV11%NaH`3YGrr&e168n~eAw`j<%Xf@yroB% zrUW14zN#%DFm0~(s%r(I#S29ELRT%^b!x59jcve6_>lm zd^Nw8xUuHcqffm+{(~EPK!fSc45`+Mof)DNsun%HAb8^2)uQJ?ubSVz_dDh9S0=c7 z-<{4E$AjmJojfLHTGiwJf7herL$Aa-t#9o!jJ+GSZaGqNV_@}hX^;&TUdhp|-?l}| z%74b9_!(vgUzq-k{c`EO#yek>+&W`s1E2D(8IdkJdT13k*NmwQ*2~gDV|8@UWKIhw z9KZ7E)fB-%P|E+S{ngy8vNE$rk00||g}pxm zD+mvqVU@F~Xz-q{_p$i$nb#AKE@xo%@o$g~zPwtv+3U%xS6#Z%+g{Y>czJQ%+LoJr zVPjSLF=l8*oTeurD%vV(ob~~#wZW2`g@t8C@yDyv=Dwe?YUx8Zc&sc~-Y}u@_J7%9 z_wN5YbT-De-}Lw0&4SgR4D?jE)1*3iW@?_SSW)z^M7dpM$)igbg?CI#d{Qz~hV@KD zgKV(zIvcUM;8vQ317onziDR8J&t6FQu>3~Z2c1V-%Y2^h*qbir_9dflR-EWV(;V(g z-kLHux8`5Gyz}SG} zo?aeD&Tl)uDJiKQG7~;NSJ|^gL&);HSVy)-!c?X=Gon(r8fU;f)1#-byHT0_{esKw zvo}1t94_!|g)RHc2VHH<%ag10`Ip%1EY<7!qgFR-7hB=fCmyHIv=+Y0U-sy`|Gvhv z9oH|c+4F6OX!R7&H>J6RaffJK4BI3t)g#;8wc75O zK7UUz^C~ATqk03_T7bt^Tr(y+bpAUzQ<&wn7d-WKsZZ#AGpA@pfa7&VnA{xB7;X7;}@=@%+5eWk)~s^D6{;@Ant`t*;a; zrL@OiK;}q=%D2!9JL)Z@L~1rF_}jGUA1e!8CV8z=#LiZNedmt&vLo&lAGdBdSe7ht zt2eq!^z!b7g_GyaC|6P4zj=Ng-|OYPF1y{n3f$Udzbt=e&l;siLhs{V#Q*kR^YiJv ziTh*>qDqYvxu$eB{_&XM)Tp~xI>S=9Q^U_ zJM)dbRc60Jwu`?%leLat`aWC6gHP&qQu{fg`{NJ&U1YxQ>Gln2A@(|FC0g>!{&r1W zyd=W5Kw?_#WaqNy`EM-4_?-96VwoRnykX&^nl*Kn;`eoK_w)Re&5^jvyLsJ~gL8VT zH$1-lys$FM{)}DRl5DM&J}m!V?9sQz=eD-_FhI{$a>%aN+U{Uk6K}^>NNwR~ddxt5|+VGB<8! zQ(dX-#IoONlVWBmoH6EFeoph=l&Oj@9kp`iXfNz?7yZ$;GLA?yyh

99#$lD$ub3^- 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 literal 0 HcmV?d00001 diff --git a/src/doc/rustc-dev-guide/src/mir/dataflow.md b/src/doc/rustc-dev-guide/src/mir/dataflow.md index 5b10afec1f37..be8d4fb98860 100644 --- a/src/doc/rustc-dev-guide/src/mir/dataflow.md +++ b/src/doc/rustc-dev-guide/src/mir/dataflow.md @@ -154,8 +154,24 @@ for (bb, block) in body.basic_blocks().iter_enumerated() { } ``` +### Graphviz Diagrams + +When the results of a dataflow analysis are not what you expect, it often helps +to visualize them. This can be done with the `-Zdump-mir` flags described in +[Debugging MIR]. Start with `-Zdump-mir=F -Zdump-mir-dataflow`, where `F` is +either "all" or the name of the MIR body you are interested in. + +These `.dot` files will be saved in your `mir_dump` directory and will have the +`NAME` of the analysis (e.g. `maybe_inits`) as part of their filename. Each +visualization will display the full dataflow state at entry and exit of each +block, as well as any changes that occur in each statement and terminator. See +the example below: + +![A graphviz diagram for a dataflow analysis](../img/dataflow-graphviz-example.png) + ["gen-kill" problems]: https://en.wikipedia.org/wiki/Data-flow_analysis#Bit_vector_problems [*Static Program Analysis*]: https://cs.au.dk/~amoeller/spa/ +[Debugging MIR]: ./debugging.html [`AnalysisDomain`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/dataflow/trait.AnalysisDomain.html [`Analysis`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/dataflow/trait.Analysis.html [`Engine`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/dataflow/struct.Engine.html diff --git a/src/doc/rustc-dev-guide/src/mir/debugging.md b/src/doc/rustc-dev-guide/src/mir/debugging.md index edb68ca72026..3a47a575d59a 100644 --- a/src/doc/rustc-dev-guide/src/mir/debugging.md +++ b/src/doc/rustc-dev-guide/src/mir/debugging.md @@ -6,6 +6,8 @@ additional output formats, including: * `-Zdump-mir-graphviz` - dumps a `.dot` file that represents MIR as a control-flow graph +* `-Zdump-mir-dataflow` - dumps a `.dot` file showing the [dataflow state] at + each point in the control-flow graph * `-Zdump-mir-spanview` - dumps an `.html` file that highlights the source spans associated with MIR elements (including mouse-over actions to reveal elements obscured by overlaps, and tooltips to view the MIR statements). @@ -87,3 +89,5 @@ rustc.main.002-006.NoLandingPads.before.mir that appeared within the `main` function.) TODO: anything else? + +[dataflow state]: ./dataflow.html#graphviz-diagrams