[−][src]Struct rustc_mir::transform::generator::LivenessInfo

pub(in transform::generator) struct LivenessInfo {
    saved_locals: GeneratorSavedLocals,
    live_locals_at_suspension_points: Vec<BitSet<GeneratorSavedLocal>>,
    source_info_at_suspension_points: Vec<SourceInfo>,
    storage_conflicts: BitMatrix<GeneratorSavedLocal, GeneratorSavedLocal>,
    storage_liveness: IndexVec<BasicBlock, Option<BitSet<Local>>>,
}

Fields

saved_locals: GeneratorSavedLocals

Which locals are live across any suspension point.

live_locals_at_suspension_points: Vec<BitSet<GeneratorSavedLocal>>

The set of saved locals live at each suspension point.

source_info_at_suspension_points: Vec<SourceInfo>

Parallel vec to the above with SourceInfo for each yield terminator.

storage_conflicts: BitMatrix<GeneratorSavedLocal, GeneratorSavedLocal>

For every saved local, the set of other saved locals that are storage-live at the same time as this local. We cannot overlap locals in the layout which have conflicting storage.

storage_liveness: IndexVec<BasicBlock, Option<BitSet<Local>>>

For every suspending block, the locals which are storage-live across that suspension point.

Auto Trait Implementations

impl RefUnwindSafe for LivenessInfo

impl !Send for LivenessInfo

impl !Sync for LivenessInfo

impl Unpin for LivenessInfo

impl UnwindSafe for LivenessInfo

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]