pub struct ConstOptimizer {
    value_hints: ValueHints,
}
Expand description

Optimizes nodes which are const-evaluatable. This optimizer tracks all const assignments to variables in a given function and replaces reads from const variables by their const value. Also contains functionality to evaluate BinaryOperation and Condition. In order to be more efficient, this optimizer optimizes an entire function. This means that the current state must always be synced correctly!

Fields§

§value_hints: ValueHints

Implementations§

source§

impl ConstOptimizer

source

pub fn optimize_node( &mut self, commands: &mut OptimizeCommandDeque<OptimizeCommand>, node_id: (BlockId, usize), node: &Node ) -> bool

Trait Implementations§

source§

impl Default for ConstOptimizer

source§

fn default() -> ConstOptimizer

Returns the “default value” for a type. Read more
source§

impl Optimizer for ConstOptimizer

source§

fn optimize(&mut self, commands: &mut Commands<'_, '_>)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.