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<'a, 'tcx>
impl<'a, 'tcx> !Send for CfgSimplifier<'a, 'tcx>
impl<'a, 'tcx> !Sync for CfgSimplifier<'a, 'tcx>
impl<'a, 'tcx> Unpin for CfgSimplifier<'a, 'tcx> where
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for CfgSimplifier<'a, 'tcx>
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