pub struct DataFlowAnalysis {
pub definitions: HashMap<String, NodeId>,
pub uses: HashMap<String, Vec<NodeId>>,
pub live_variables: HashMap<NodeId, HashSet<String>>,
pub reaching_definitions: HashMap<NodeId, HashMap<String, NodeId>>,
pub available_expressions: HashMap<NodeId, HashSet<Expression>>,
pub dead_code: Vec<NodeId>,
pub common_subexpressions: Vec<CommonSubexpression>,
}Expand description
Data flow analysis for optimization opportunities
Fields§
§definitions: HashMap<String, NodeId>Variable definitions: which node defines each variable
uses: HashMap<String, Vec<NodeId>>Variable uses: which nodes use each variable
live_variables: HashMap<NodeId, HashSet<String>>Live variables at each node
reaching_definitions: HashMap<NodeId, HashMap<String, NodeId>>Reaching definitions for each node
available_expressions: HashMap<NodeId, HashSet<Expression>>Available expressions at each node
dead_code: Vec<NodeId>Dead code nodes
common_subexpressions: Vec<CommonSubexpression>Common subexpressions
Implementations§
Source§impl DataFlowAnalysis
impl DataFlowAnalysis
Sourcepub fn get_recommendations(&self) -> Vec<OptimizationRecommendation>
pub fn get_recommendations(&self) -> Vec<OptimizationRecommendation>
Get optimization recommendations
Trait Implementations§
Source§impl Clone for DataFlowAnalysis
impl Clone for DataFlowAnalysis
Source§fn clone(&self) -> DataFlowAnalysis
fn clone(&self) -> DataFlowAnalysis
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for DataFlowAnalysis
impl RefUnwindSafe for DataFlowAnalysis
impl Send for DataFlowAnalysis
impl Sync for DataFlowAnalysis
impl Unpin for DataFlowAnalysis
impl UnsafeUnpin for DataFlowAnalysis
impl UnwindSafe for DataFlowAnalysis
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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