pub struct DependenceInfo {
pub true_deps: Vec<DepEdge>,
pub anti_deps: Vec<DepEdge>,
pub output_deps: Vec<DepEdge>,
pub loop_carried_deps: Vec<DepEdge>,
}Expand description
Loop-dependence information for a single function/loop nest.
We use a simplified version of the standard three-class model:
- True dependence (RAW): iteration J reads a value written by iteration I < J.
- Anti dependence (WAR): iteration J writes a location read by iteration I < J.
- Output dependence (WAW): two iterations write the same location.
- Loop-carried: the dependence crosses loop iterations (distance > 0).
Fields§
§true_deps: Vec<DepEdge>Read-after-write (true) dependences.
anti_deps: Vec<DepEdge>Write-after-read (anti) dependences.
output_deps: Vec<DepEdge>Write-after-write (output) dependences.
loop_carried_deps: Vec<DepEdge>Subset of the above that are loop-carried (distance >= 1).
Implementations§
Source§impl DependenceInfo
impl DependenceInfo
Sourcepub fn is_parallelizable(&self) -> bool
pub fn is_parallelizable(&self) -> bool
Returns true when no loop-carried dependences exist (Bernstein safe).
Sourcepub fn total_deps(&self) -> usize
pub fn total_deps(&self) -> usize
Total number of dependence edges.
Trait Implementations§
Source§impl Clone for DependenceInfo
impl Clone for DependenceInfo
Source§fn clone(&self) -> DependenceInfo
fn clone(&self) -> DependenceInfo
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DependenceInfo
impl Debug for DependenceInfo
Source§impl Default for DependenceInfo
impl Default for DependenceInfo
Source§fn default() -> DependenceInfo
fn default() -> DependenceInfo
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for DependenceInfo
impl RefUnwindSafe for DependenceInfo
impl Send for DependenceInfo
impl Sync for DependenceInfo
impl Unpin for DependenceInfo
impl UnsafeUnpin for DependenceInfo
impl UnwindSafe for DependenceInfo
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