pub enum OptimizationPhase {
Show 13 variants
ApplyInlining,
BranchInversion,
CancelOps,
ConstFolding,
OptimizeMatches,
OptimizeRemappings,
ReorderStatements,
ReorganizeBlocks,
ReturnOptimization,
SplitStructs,
GasRedeposit,
LowerImplicits,
Validate,
}
Expand description
Enum of the optimization phases that can be used in a strategy.
Variants§
ApplyInlining
BranchInversion
CancelOps
ConstFolding
OptimizeMatches
OptimizeRemappings
ReorderStatements
ReorganizeBlocks
ReturnOptimization
SplitStructs
GasRedeposit
LowerImplicits
The following is not really an optimization but we want to apply optimizations before and after it, so it is convenient to treat it as an optimization.
Validate
A validation phase that checks the lowering is valid. Used for debugging purposes.
Implementations§
Source§impl OptimizationPhase
impl OptimizationPhase
Sourcepub fn apply(
self,
db: &dyn LoweringGroup,
function: ConcreteFunctionWithBodyId,
lowered: &mut FlatLowered,
) -> Maybe<()>
pub fn apply( self, db: &dyn LoweringGroup, function: ConcreteFunctionWithBodyId, lowered: &mut FlatLowered, ) -> Maybe<()>
Applies the optimization phase to the lowering.
Assumes lowered
is a lowering of function
.
Trait Implementations§
Source§impl Clone for OptimizationPhase
impl Clone for OptimizationPhase
Source§fn clone(&self) -> OptimizationPhase
fn clone(&self) -> OptimizationPhase
Returns a copy 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 moreSource§impl Debug for OptimizationPhase
impl Debug for OptimizationPhase
Source§impl Hash for OptimizationPhase
impl Hash for OptimizationPhase
Source§impl PartialEq for OptimizationPhase
impl PartialEq for OptimizationPhase
impl Eq for OptimizationPhase
impl StructuralPartialEq for OptimizationPhase
Auto Trait Implementations§
impl Freeze for OptimizationPhase
impl RefUnwindSafe for OptimizationPhase
impl Send for OptimizationPhase
impl Sync for OptimizationPhase
impl Unpin for OptimizationPhase
impl UnwindSafe for OptimizationPhase
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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