pub struct AffineAccess {
pub base: String,
pub coeff: i64,
pub offset: i64,
pub is_write: bool,
}Expand description
A single affine access of the form base + coeff * loop_var + offset.
Fields§
§base: StringBase array / variable name.
coeff: i64Coefficient of the loop induction variable.
offset: i64Constant offset.
is_write: boolWhether this is a write access.
Implementations§
Source§impl AffineAccess
impl AffineAccess
Sourcepub fn independent_from(&self, other: &AffineAccess) -> bool
pub fn independent_from(&self, other: &AffineAccess) -> bool
Two accesses are independent under Bernstein’s conditions when their
access sets are provably disjoint, i.e., there is no integer i, j
(with i != j for loop-carried deps) satisfying both access functions.
For 1-D affine accesses base + c1*i + o1 vs base + c2*j + o2 we
require c1 == c2 (same stride) to get a GCD test: gcd(c1,c2) | (o1-o2).
Trait Implementations§
Source§impl Clone for AffineAccess
impl Clone for AffineAccess
Source§fn clone(&self) -> AffineAccess
fn clone(&self) -> AffineAccess
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 AffineAccess
impl Debug for AffineAccess
Source§impl PartialEq for AffineAccess
impl PartialEq for AffineAccess
impl Eq for AffineAccess
impl StructuralPartialEq for AffineAccess
Auto Trait Implementations§
impl Freeze for AffineAccess
impl RefUnwindSafe for AffineAccess
impl Send for AffineAccess
impl Sync for AffineAccess
impl Unpin for AffineAccess
impl UnsafeUnpin for AffineAccess
impl UnwindSafe for AffineAccess
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