pub struct FunctionAnalysis<'m> { /* private fields */ }
Expand description
Computes (and caches the results of) various analyses on a given Function
Implementations§
Source§impl<'m> FunctionAnalysis<'m>
impl<'m> FunctionAnalysis<'m>
Sourcepub fn new(function: &'m Function) -> Self
pub fn new(function: &'m Function) -> Self
Create a new FunctionAnalysis
for the given Function
.
This method itself is cheap; individual analyses will be computed lazily on demand.
Sourcepub fn control_flow_graph(&self) -> Ref<'_, ControlFlowGraph<'m>>
pub fn control_flow_graph(&self) -> Ref<'_, ControlFlowGraph<'m>>
Get the ControlFlowGraph
for the function.
Sourcepub fn dominator_tree(&self) -> Ref<'_, DominatorTree<'m>>
pub fn dominator_tree(&self) -> Ref<'_, DominatorTree<'m>>
Get the DominatorTree
for the function.
Sourcepub fn postdominator_tree(&self) -> Ref<'_, PostDominatorTree<'m>>
pub fn postdominator_tree(&self) -> Ref<'_, PostDominatorTree<'m>>
Get the PostDominatorTree
for the function.
Sourcepub fn control_dependence_graph(&self) -> Ref<'_, ControlDependenceGraph<'m>>
pub fn control_dependence_graph(&self) -> Ref<'_, ControlDependenceGraph<'m>>
Get the ControlDependenceGraph
for the function.
Auto Trait Implementations§
impl<'m> !Freeze for FunctionAnalysis<'m>
impl<'m> !RefUnwindSafe for FunctionAnalysis<'m>
impl<'m> Send for FunctionAnalysis<'m>
impl<'m> !Sync for FunctionAnalysis<'m>
impl<'m> Unpin for FunctionAnalysis<'m>
impl<'m> UnwindSafe for FunctionAnalysis<'m>
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