enum LazyCond {
False,
True,
MergeSelect {
control_node: ControlNode,
per_case_conds: Vec<LazyCond>,
},
}
Expand description
A recipe for computing a control-flow-sensitive (boolean) condition Value
,
potentially requiring merging through an arbitrary number of Select
s
(via per-case outputs and Value::ControlNodeOutput
, for each Select
).
This should largely be equivalent to eagerly generating all region outputs
that might be needed, and then removing the unused ones, but this way we
never generate unused outputs, and can potentially even optimize away some
redundant dataflow (e.g. if cond { true } else { false }
is just cond
).
Variants§
Auto Trait Implementations§
impl RefUnwindSafe for LazyCond
impl Send for LazyCond
impl Sync for LazyCond
impl Unpin for LazyCond
impl UnwindSafe for LazyCond
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more