Struct rustc_mir_transform::simplify::CfgSimplifier [−][src]
pub struct CfgSimplifier<'a, 'tcx> {
basic_blocks: &'a mut IndexVec<BasicBlock, BasicBlockData<'tcx>>,
pred_count: IndexVec<BasicBlock, u32>,
}Fields
basic_blocks: &'a mut IndexVec<BasicBlock, BasicBlockData<'tcx>>pred_count: IndexVec<BasicBlock, u32>Implementations
This function will return None if
- the block has statements
- the block has a terminator other than
goto - the block has no terminator (meaning some other part of the current optimization stole it)
Collapse a goto chain starting from start
fn merge_successor(
&mut self,
merged_blocks: &mut Vec<BasicBlock>,
terminator: &mut Terminator<'tcx>
) -> bool
Auto Trait Implementations
impl<'a, 'tcx> !RefUnwindSafe for CfgSimplifier
impl<'a, 'tcx> !Send for CfgSimplifier
impl<'a, 'tcx> !Sync for CfgSimplifier
impl<'a, 'tcx> Unpin for CfgSimplifier where
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for CfgSimplifier
Blanket Implementations
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes
