pub struct HoistCandidate {
pub expr: LoopInvariantExpr,
pub target_loop_header: LcnfVarId,
pub savings_estimate: u32,
}Expand description
A candidate expression ready to be hoisted to a preheader.
Fields§
§expr: LoopInvariantExprThe invariant binding to hoist.
target_loop_header: LcnfVarIdThe id of the loop this candidate should be hoisted out of.
savings_estimate: u32Estimated number of redundant evaluations saved (loop trip count heuristic; we use 10 as a conservative default).
Trait Implementations§
Source§impl Clone for HoistCandidate
impl Clone for HoistCandidate
Source§fn clone(&self) -> HoistCandidate
fn clone(&self) -> HoistCandidate
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for HoistCandidate
impl RefUnwindSafe for HoistCandidate
impl Send for HoistCandidate
impl Sync for HoistCandidate
impl Unpin for HoistCandidate
impl UnsafeUnpin for HoistCandidate
impl UnwindSafe for HoistCandidate
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