pub struct InstGraph {
pub raw: RawInstGraph,
pub subgraphs: Subgraphs,
pub analysis: Analysis,
}
Fields§
§raw: RawInstGraph
§subgraphs: Subgraphs
§analysis: Analysis
Implementations§
Source§impl InstGraph
impl InstGraph
Sourcepub fn search_matching_loops(&mut self, parser: &mut Z3Parser) -> &MlData
pub fn search_matching_loops(&mut self, parser: &mut Z3Parser) -> &MlData
Search for matching loops in the graph.
pub fn found_matching_loops(&self) -> Option<(usize, usize)>
pub fn found_sure_matching_loop_graphs(&self) -> Option<usize>
pub fn quants_per_matching_loop( &self, ) -> Option<impl Iterator<Item = QuantPat> + '_>
pub fn nth_matching_loop_graph(&self, n: usize) -> Option<&MatchingLoop>
Source§impl InstGraph
impl InstGraph
pub fn topo_analysis<I: TopoAnalysis<FORWARD, SKIP_DISABLED>, const FORWARD: bool, const SKIP_DISABLED: bool>( &self, analysis: &mut I, ) -> TiVec<RawNodeIndex, I::Value>
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, )
pub fn initialise_transfer<I: TransferInitialiser<FORWARD, ID>, const FORWARD: bool, const ID: u8>( &mut self, initialiser: I, parser: &Z3Parser, )
Source§impl InstGraph
impl InstGraph
Sourcepub fn reset_disabled_to(
&mut self,
parser: &Z3Parser,
f: impl Fn(RawNodeIndex, &RawInstGraph) -> bool,
)
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.
pub fn disabled_nodes(&self) -> impl Iterator<Item = RawNodeIndex> + '_
Source§impl InstGraph
impl InstGraph
pub fn keep_first_n_cost(&mut self, n: usize) -> bool
pub fn keep_first_n_children(&mut self, n: usize) -> bool
pub fn keep_first_n_fwd_depth_min(&mut self, n: usize) -> bool
Source§impl InstGraph
impl InstGraph
pub fn to_visible(&self) -> VisibleInstGraph
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InstGraph
impl RefUnwindSafe for InstGraph
impl Send for InstGraph
impl Sync for InstGraph
impl Unpin for InstGraph
impl UnwindSafe for InstGraph
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> 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