pub struct CommonSubexprEliminator {
pub eliminated_count: usize,
}Expand description
Common Subexpression Elimination pass.
Fields§
§eliminated_count: usizeNumber of instructions eliminated.
Implementations§
Source§impl CommonSubexprEliminator
impl CommonSubexprEliminator
Sourcepub fn new() -> CommonSubexprEliminator
pub fn new() -> CommonSubexprEliminator
Creates a new CSE pass.
Sourcepub fn run(&mut self, func: &mut Function) -> usize
pub fn run(&mut self, func: &mut Function) -> usize
Runs CSE on a function. Returns the number of expressions eliminated.
Sourcepub fn run_to_fixpoint(&mut self, func: &mut Function) -> usize
pub fn run_to_fixpoint(&mut self, func: &mut Function) -> usize
Runs CSE iteratively until no more changes.
Trait Implementations§
Source§impl Debug for CommonSubexprEliminator
impl Debug for CommonSubexprEliminator
Source§impl Default for CommonSubexprEliminator
impl Default for CommonSubexprEliminator
Source§fn default() -> CommonSubexprEliminator
fn default() -> CommonSubexprEliminator
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for CommonSubexprEliminator
impl RefUnwindSafe for CommonSubexprEliminator
impl Send for CommonSubexprEliminator
impl Sync for CommonSubexprEliminator
impl Unpin for CommonSubexprEliminator
impl UnsafeUnpin for CommonSubexprEliminator
impl UnwindSafe for CommonSubexprEliminator
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
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more