InstGraph

Struct InstGraph 

Source
pub struct InstGraph {
    pub raw: RawInstGraph,
    pub subgraphs: Subgraphs,
    pub analysis: Analysis,
}

Fields§

§raw: RawInstGraph§subgraphs: Subgraphs§analysis: Analysis

Implementations§

Source§

impl InstGraph

Source

pub fn initialise_cdcl(&mut self, parser: &Z3Parser)

Source§

impl InstGraph

Source

pub fn search_matching_loops(&mut self, parser: &mut Z3Parser) -> &MlData

Search for matching loops in the graph.

Source

pub fn found_matching_loops(&self) -> Option<(usize, usize)>

Source

pub fn found_sure_matching_loop_graphs(&self) -> Option<usize>

Source

pub fn quants_per_matching_loop( &self, ) -> Option<impl Iterator<Item = QuantPat> + '_>

Source

pub fn nth_matching_loop_graph(&self, n: usize) -> Option<&MatchingLoop>

Source§

impl InstGraph

Source

pub fn topo_analysis<I: TopoAnalysis<FORWARD, SKIP_DISABLED>, const FORWARD: bool, const SKIP_DISABLED: bool>( &self, analysis: &mut I, ) -> TiVec<RawNodeIndex, I::Value>

Source

pub fn initialise_collect<I: CollectInitialiser<FORWARD, SKIP_DISABLED, ID>, const FORWARD: bool, const SKIP_DISABLED: bool, const ID: u8>( &mut self, initialiser: I, parser: &Z3Parser, )

Source

pub fn initialise_transfer<I: TransferInitialiser<FORWARD, ID>, const FORWARD: bool, const ID: u8>( &mut self, initialiser: I, parser: &Z3Parser, )

Source§

impl InstGraph

Source

pub fn initialise_first(&mut self, parser: &Z3Parser, n: usize)

Source

pub fn initialise_default(&mut self, parser: &Z3Parser, n: usize)

Source

pub fn analyse(&mut self, n: usize)

Source§

impl InstGraph

Source

pub fn reset_disabled_to( &mut self, parser: &Z3Parser, f: impl Fn(RawNodeIndex, &RawInstGraph) -> bool, )

Updates which nodes are disabled based on the predicate f. The hidden of all nodes is reset to false so any filters will need to be reapplied. The default analyses are also reapplied.

Source

pub fn disabled_nodes(&self) -> impl Iterator<Item = RawNodeIndex> + '_

Source§

impl InstGraph

Source

pub fn keep_first_n_cost(&mut self, n: usize) -> bool

Source

pub fn keep_first_n_children(&mut self, n: usize) -> bool

Source

pub fn keep_first_n_fwd_depth_min(&mut self, n: usize) -> bool

Source§

impl InstGraph

Source§

impl InstGraph

Source

pub fn new(parser: &Z3Parser) -> Result<Self>

Source

pub fn new_lite(parser: &Z3Parser) -> Result<Self>

Source

pub fn visible_unchanged(&self, old: &VisibleInstGraph) -> bool

Trait Implementations§

Source§

impl Debug for InstGraph

Source§

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

Formats the value using the given formatter. Read more

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> 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
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.