Update based on review suggestions
This commit is contained in:
parent
c051f61d3c
commit
57eb29cd2d
@ -1076,20 +1076,24 @@ pub struct VarDebugInfo<'tcx> {
|
|||||||
// BasicBlock
|
// BasicBlock
|
||||||
|
|
||||||
rustc_index::newtype_index! {
|
rustc_index::newtype_index! {
|
||||||
/// The unit of the MIR [control-flow graph][CFG].
|
/// A node in the MIR [control-flow graph][CFG].
|
||||||
///
|
///
|
||||||
/// There are no branches (e.g., `if`s, function calls, etc.) within a basic block, which makes
|
/// There are no branches (e.g., `if`s, function calls, etc.) within a basic block, which makes
|
||||||
/// it easier to do [data-flow analyses] and optimizations. Instead, branches are represented
|
/// it easier to do [data-flow analyses] and optimizations. Instead, branches are represented
|
||||||
/// as an edge in a graph between basic blocks.
|
/// as an edge in a graph between basic blocks.
|
||||||
///
|
///
|
||||||
/// Basic blocks consist of a series of [statements][Statement], ending with a
|
/// Basic blocks consist of a series of [statements][Statement], ending with a
|
||||||
/// [terminator][Terminator]. Basic blocks can have multiple predecessors and successors.
|
/// [terminator][Terminator]. Basic blocks can have multiple predecessors and successors,
|
||||||
|
/// however there is a MIR pass ([`CriticalCallEdges`]) that removes *critical edges*, which
|
||||||
|
/// are edges that go from a multi-successor node to a multi-predecessor node. This pass is
|
||||||
|
/// needed because some analyses require that there are no critical edges in the CFG.
|
||||||
///
|
///
|
||||||
/// Read more about basic blocks in the [rustc-dev-guide][guide-mir].
|
/// Read more about basic blocks in the [rustc-dev-guide][guide-mir].
|
||||||
///
|
///
|
||||||
/// [CFG]: https://rustc-dev-guide.rust-lang.org/appendix/background.html#cfg
|
/// [CFG]: https://rustc-dev-guide.rust-lang.org/appendix/background.html#cfg
|
||||||
/// [data-flow analyses]:
|
/// [data-flow analyses]:
|
||||||
/// https://rustc-dev-guide.rust-lang.org/appendix/background.html#what-is-a-dataflow-analysis
|
/// https://rustc-dev-guide.rust-lang.org/appendix/background.html#what-is-a-dataflow-analysis
|
||||||
|
/// [`CriticalCallEdges`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/transform/add_call_guards/enum.AddCallGuards.html#variant.CriticalCallEdges
|
||||||
/// [guide-mir]: https://rustc-dev-guide.rust-lang.org/mir/
|
/// [guide-mir]: https://rustc-dev-guide.rust-lang.org/mir/
|
||||||
pub struct BasicBlock {
|
pub struct BasicBlock {
|
||||||
derive [HashStable]
|
derive [HashStable]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user