Skip to main content

OptimizationPass

Enum OptimizationPass 

Source
pub enum OptimizationPass {
    ConstantFolding,
    ConstantPropagation,
    AlgebraicSimplification,
    NegationNormalForm,
    ModalEquivalences,
    TemporalEquivalences,
    DistributiveAndOverOr,
    DistributiveOrOverAnd,
    DistributiveQuantifiers,
    DistributiveModal,
}
Expand description

A single optimization pass.

Variants§

§

ConstantFolding

Constant folding

§

ConstantPropagation

Constant propagation

§

AlgebraicSimplification

Algebraic simplification

§

NegationNormalForm

Convert to negation normal form

§

ModalEquivalences

Apply modal logic equivalences

§

TemporalEquivalences

Apply temporal logic equivalences

§

DistributiveAndOverOr

Apply distributive laws (AND over OR)

§

DistributiveOrOverAnd

Apply distributive laws (OR over AND)

§

DistributiveQuantifiers

Apply distributive laws for quantifiers

§

DistributiveModal

Apply distributive laws for modal operators

Implementations§

Source§

impl OptimizationPass

Source

pub fn name(&self) -> &'static str

Get the name of this pass.

Source

pub fn apply(&self, expr: TLExpr) -> TLExpr

Apply this pass to an expression.

Source

pub fn priority(&self) -> u32

Get the priority of this pass (lower = earlier in pipeline).

Source

pub fn for_level(level: OptimizationLevel) -> Vec<OptimizationPass>

Get all passes for a given optimization level.

Trait Implementations§

Source§

impl Clone for OptimizationPass

Source§

fn clone(&self) -> OptimizationPass

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OptimizationPass

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for OptimizationPass

Source§

fn eq(&self, other: &OptimizationPass) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for OptimizationPass

Source§

impl Eq for OptimizationPass

Source§

impl StructuralPartialEq for OptimizationPass

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.